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 }