(1)导包:mybatis包,数据库驱动包
(2)实体类,字段与数据库列一致,getter/setter方法
(3)接口,dao.I实体类名Dao
(4)xml,SqlMapConfig.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>
</configuration>
(5)配置数据库环境
<!--mybatis主配置文件-->
<configuration>
<!--配置环境-->
<environments default="mysql">
<!--配置MySQL的环境-->
<environment id="mysql">
<!--事务类型-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源,连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/rzpt"/>
<property name="user" value="root"/>
<property name="password" value="xxxxxxx"/>
</dataSource>
</environment>
</environments>
</configuration>
(6)配置映射配置文件的位置
<!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
<mappers>
<mapper resource="cn.rzpt.dao.IUserDao.xml"></mapper>
</mappers>
(7)创建映射配置文件
<?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="cn.rzpt.dao.IUserDao"> <!--配置查询所有,id就是接口中的方法名称--> <select id="findAll" resultType="cn.rzpt.domain.User"> select * from user </select>
</mapper>
(8)mybatis的映射配置文件位置必须与dao接口的包结构相同;映射配置文件的mapper标签namespace属性 取值必须是dao接口的全限定类名;映射配置文件的操作配置,id属性的取值必须是dao接口的方法名;这样就不用再写dao接口的实现类。
(9)创建过程:
- 读取配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
- 创建SQLSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = builder.build(inputStream);
- 使用工厂生产SQLSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
- 使用SQLSession创建Dao接口的代理对象
IUserDao userDao = sqlSession.getMapper(IUserDao.class);
- 使用代理对象执行方法
List<User> users = userDao.findAll();
for(User user : users){
System.out.println("u:=" + user.getUsername());
}
- 释放资源
sqlSession.close();
inputStream.close();
(10)