mybatis的开发过程

1) 新建Java工程

2) 导入mybatis的jar包以及数据库驱动(放入工程目录下的lib文件夹中,需要Build Path)

3) 创建数据库和表格

4) 添加实体类和构造函数

5) 添加mybatis的配置文件conf.xml(加载数据库驱动、连接到数据库、数据库的用户名和密码)

*在resource文件夹下添加

*conf.xml中是配置数据源的信息:即数据库的信息

1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 3 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5     <environments default="development">
 6         <environment id="development">
 7             <transactionManager type="JDBC" />
 8             <dataSource type="POOLED">
 9                 <property name="driver" value="com.mysql.jdbc.Driver" />
10                 <property name="url"
11                     value="jdbc:mysql://localhost:3306/mybatis" />
12                 <property name="username" value="root" />
13                 <property name="password" value="root" />
14             </dataSource>
15         </environment>
16     </environments>
17 </configuration>

6) 定义操作user表的sql映射文件userMapper.xml(以user表为例,映射文件即在实体类、表、sql语句之间映射关系)

*在src目录下新建mapper的包,再在该包下新建userMapper.xml文件

*id:标识该标签

*parameterType:参数的数据类型

*resultType:返回值的数据类型

*mapper:即映射

*namespace:表示命名空间,现在的目的是区分id的

*mybatis中的占位符用#{ }

#{id}:类似于EL表达式解析id

<?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.zhiyou.clg.mapper.UserMapper">
<select id="selectUser" parameterType="int"
resultType="com.zhiyou.clg.bean.User">
select * from user where id=#{id}
</select>
</mapper>

7) 在conf.xml文件中注册user Mapper.xml文件(即把映射文件引入到配置文件中)

*在mappers标签中使用mapper标签(属性:resource)

1     <mappers>
2         <mapper resource="com/zhiyou/clg/mapper/UserMapper.xml"/>
3     </mappers>

8) 进行单元测试

//解析配置文件conf.xml

Reader reader = Resources.getResourceAsReader(“conf.xml”);

//获取SessionFactory对象

SqlSessionFactory  sessionFactory = new  SqlSessionFactoryBuilder().build(reader);

//获取Session对象。这里表示jdbc中Connection.是操作数据库的

SqlSession session = sessionFactory.openSession();

User user = session.selectOne("com.zhiyou.clg.mapper.userMapper.getUser", 1);

*进行增删改的时候需要进行手动提交任务,即将数据提交到数据库中

session.commit();

手动提交可实现     事物管理:事物是由一系列动作组成,这些动作要么都执行,要么都不执行

 1 package com.zhiyou.clg.mapper;
 2 
 3 import static org.junit.jupiter.api.Assertions.*;
 4 
 5 import java.io.IOException;
 6 import java.io.Reader;
 7 
 8 import org.apache.ibatis.io.Resources;
 9 import org.apache.ibatis.session.SqlSession;
10 import org.apache.ibatis.session.SqlSessionFactory;
11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
12 import org.junit.jupiter.api.AfterAll;
13 import org.junit.jupiter.api.BeforeAll;
14 import org.junit.jupiter.api.Test;
15 
16 import com.zhiyou.clg.bean.User;
17 
18 class UserTest {
19     private static SqlSession session = null;
20     final static String str="com.zhiyou.clg.mapper.UserMapper";
21     @BeforeAll//测试前会执行
22     static void setUpBeforeClass() throws Exception {
23                 //解析配置文件
24                 Reader reader = Resources.getResourceAsReader("conf.xml");
25                 //获取SessionFactory对象
26                 SqlSessionFactory SessionFactory = new SqlSessionFactoryBuilder().build(reader);
27                 //获取Session对象
28                 session = SessionFactory.openSession();
29     }
30 
31     @AfterAll//测试后执行
32     static void tearDownAfterClass() throws Exception {
33         session.commit();
34     }
35 
36     @Test
37     void test() throws IOException {
38         User user=session.selectOne(str+".selectUser", 1);
39         System.out.println(user);
40     }
41 
42 }

猜你喜欢

转载自www.cnblogs.com/lwgok1003/p/11442629.html