一、 集成mybatis
- 在pom.xml中导入jar文件 (此处导入运行样例所用的所有的包)
<!-- mybatis框架包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<!-- log -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--servlet所需要的jar-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!--JSON-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
- 在resources下创建mybatis.xml主配置文件(在resource目录文件下右键->file->输入mybatis.xml)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ME8Fwc6e-1599831256383)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911191145916.png)]](https://img-blog.csdnimg.cn/20200911213443188.png#pic_center)
该文件内容为空,首先要添加识别该文件特有的头部,
<?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>
</configuration>
- 创建实体类User(首先要创建一个实体类的包com.cs.pojo)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9c8Sbuxq-1599831181630)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911193327028.png)]](https://img-blog.csdnimg.cn/2020091121351064.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODk5MTY0,size_16,color_FFFFFF,t_70#pic_center)
- 在resources下创建database.properties 数据库连接配置文件
jdbc.driver=com.mysql.jdbc.Driver
#在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
jdbc.username=root
jdbc.password=admin
编写mybatis.xml主配置文件
<!--读取properties配置文件--> <properties resource="db.properties"></properties> <!--创建数据源 default默认加载哪个数据源--> <environments default="csDataSource"> <!--可以创建多个数据源 获取数据库连接--> <environment id="csDataSource"> <!--事务 JDBC方式加载事务--> <transactionManager type="JDBC"></transactionManager> <!--数据源 type属性、其有三种取值: POOLED:使用Mybatis自带的数据库连接池来管理数据库连接 UNPOOLED:不使用任何数据库连接池来管理数据库连接 JNDI:jndi形式使用数据库连接、主要用于项目正常使用的时候 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments>创建UserDao接口(在com.cs.dao里创建)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOWVwXAb-1599831181632)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911193419252.png)]](https://img-blog.csdnimg.cn/20200911213545580.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODk5MTY0,size_16,color_FFFFFF,t_70#pic_center)
- 创建mapper文件(本人习惯于在resource下创建)
<?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="com.cs.dao.UserDao">
</mapper>
此时的目录结构为
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DSsgqDOe-1599831181633)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911193846969.png)]](https://img-blog.csdnimg.cn/20200911213604906.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODk5MTY0,size_16,color_FFFFFF,t_70#pic_center)
- 修改mybatis文件
<?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>
<properties resource="db.properties"></properties>
<settings>
<!--配置log4j 日志 一定要导入log的jar包-->
<setting name="logImpl" value="LOG4J"/>
<!-- 在mybatis主配置文件中关闭自动映射-->
<!-- <setting name="autoMappingBehavior" value="NONE"/>-->
</settings>
<typeAliases>
<package name="com.cs.pojo"/>
</typeAliases>
<environments default="cs">
<environment id="cs">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--扫描mapper文件-->
<mappers>
<mapper resource="mapper\UserMapper.xml"></mapper>
</mappers>
</configuration>
- 在UserMapper.xml文件编写查询语句
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fU9YT4lK-1599831181634)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911194352024.png)]](https://img-blog.csdnimg.cn/20200911213627271.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODk5MTY0,size_16,color_FFFFFF,t_70#pic_center)
- 创建一个test测试类
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U866UeSD-1599831181635)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911194855600.png)]](https://img-blog.csdnimg.cn/2020091121364386.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODk5MTY0,size_16,color_FFFFFF,t_70#pic_center)
- 回到UserDao快捷键Ctrl+alt+t添加测试类
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WcWDZd52-1599831181636)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911194516315.png)]](https://img-blog.csdnimg.cn/20200911213702722.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODk5MTY0,size_16,color_FFFFFF,t_70#pic_center)
- 填写测试类
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xKTxxQCp-1599831181636)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911195124255.png)]](https://img-blog.csdnimg.cn/20200911213719107.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODk5MTY0,size_16,color_FFFFFF,t_70#pic_center)
@Test
public void findUserById() {
try {
InputStream is = Resources.getResourceAsStream("mybatis.xml");
//将is流转换为 sqlSessionFactory 工厂类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//打开数据库连接
/**
* true 自动提交 (默认)
* false 关闭自动提交
*/
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//指定加载哪个mapper 实例化类
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.findUserById(1);
//打印
System.out.println(user.toString());
//释放资源
sqlSession.close();
} catch (Exception e) {
e.printStackTrace();
}
}
- 结果如下,和数据库对应
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jXdBsPoU-1599831181637)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20200911195235240.png)]](https://img-blog.csdnimg.cn/20200911213743926.png#pic_center)
版权声明:本文为qq_39899164原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。