Mybatis 入门学习(一)
一、mybatis的环境搭建
-
创建maven工程,操作pom.xml文件导入坐标
1.1.1 加入打包方式<packaging>jar</packaging>
1.1.2 导入mybatis的依赖
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies>
-
创建实体类,操作实体类的持久层接口
实体类:新建domain包下的User.java文件
持久层接口:dao包下的IUserDao.java文件 -
创建按Mybatis的主配置文件,仓库文件夹下新建SqlMapConfig.xml文件
-
创建映射配置文件,IUserDao.xml文件仓库文件下新建配置每个dao的文件
二、环境搭建注意事项
- mybatis的映射配置文件必须和dao接口的包结构相同
- 映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
- 映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名
**上述三点都满足了之后,我们在开发中就无须再写dao的实现类!
三、Mybatis开发步骤
-
读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
-
创建一个SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(in);
-
使用工厂生产一个SqlSession对象
/*因为我们只有dao的接口(里面有一个findAll方法),没有具体功能的实现 * 想在不改变源码的基础上对已有方法增强:动态代理* */ SqlSession session = factory.openSession();
-
使用SqlSession创建Dao接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
-
使用代理对象执行方法
List<User> users = userDao.findAll(); for (User user:users ) { System.out.println(user); }
-
释放资源
session.close(); in.close();