博主目前大三,一个编程菜鸟,写博客是为了记录自己的学习成长 如果文章有错误的地方,请指正!我们大家一起学习一起进步 如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
前言
MyBatis 是一款优秀的支持定制化 SQL、存储过程以及高级映射的持久层框架。开发人员可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录,使得java通过JDBC操作数据库变得更加方便。
一、环境准备
我用maven、idea、mybatis的版本
maven : Maven 3.8.1 idea :IntelliJ IDEA 2020.3.4 (Ultimate Edition) mybatis:mybatis 3.5.7 MySQL5.5.52
二、新建数据库
我的数据库名为:mybatis
在mybatis数据库新建一张表:user
CREATE TABLE `user` (
`id` int(20) NOT NULL,
`name` varchar(30) DEFAULT NULL,
`pwd` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
三、创建项目
打开idea,New Project新建一个maven项目, 这里填写项目名称,项目存放位置 接下来等待即可。
四、导入导 Mybatis用到的相关依赖
在项目的pom.xml 文件中<dependencies> </dependencies>中间加入以下依赖: 1、连接mysql的依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.5</version>
</dependency>
2、测试用到的junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
3、mybatis依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
4、由于maven构建的项目,有严格的约定,我们到时候写的相关配置可能不会被自动加载到target目录下,所以在这里,我们同时还要在pom.xml文件中加上以下内容
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
最后如下图
五、编写工具类、实体、接口、Mapper.xml配置文件
整个项目文件结构如下:
1、编写MyBatis工具类 mybatis-config.xml,
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="asia/xiaojiang/mybatis/dao/UserMapper.xml"/>
</mappers>
</configuration>
2、编写实体类 User.java
package asia.xiaojiang.mybatis.pojo;
public class User {
private int id;
private String name;
private String pwd;
public User() {
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
3、接口 UserDao.java
package asia.xiaojiang.mybatis.dao;
import asia.xiaojiang.mybatis.pojo.User;
import java.util.List;
public interface UserDao {
List<User>getUserlist();
}
4、Mapper.xml配置文件 UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="asia.xiaojiang.mybatis.dao.UserDao">
<select id="getUserlist" resultType="asia.xiaojiang.mybatis.pojo.User">
select * from mybatis.user
</select>
</mapper>
六、测试
在Test测试文件目录下编写测试类 新建一个UserDaoTest.java测试类
package asia.xiaojiang.mybatis.dao;
import asia.xiaojiang.mybatis.pojo.User;
import asia.xiaojiang.mybatis.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void Test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userlist = mapper.getUserlist();
for (User user : userlist) {
System.out.println(user);
}
sqlSession.close();
}
}
运行测试结果如下
结束!!!
|