1.创建新的工程,并选择maven,直接next即可
pom.xml为maven的配置文件,并导入依赖, mybatis测试的工程,需要mybatis包,数据库mysql的连接,junit用于测试,log4j日志组件

<packaging>jar</packaging> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.48</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> </dependencies>
2.在domain中根据表user添加我们需要的实体类

public class User { private Integer id; private String username; private String address; private Character sex; private Date birthday; //并设置相应的get和set方法 //设置toString方法 }
3.并编写持久层接口IUerDao;其中定义一个查询所有用户的方法

public interface IUserDao { List<User> findAll(); }
4.编写持久层接口的映射文件(xml文件),要求:必须和持久层在相同的包中,名称与持久层接口相同.
IUserDao.xml文件内容为:

<?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.cdut.dao.IUserDao"> <select id="findAll" resultType="com.cdut.domain.User"> select * from user </select> </mapper>
5.在resources根目录下,直接创建mybatis的配置文件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> <environments default="mysql"> <environment id="mysql"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"></property> <property name="username" value="root"></property> <property name="password" value="liao1024"></property> </dataSource> </environment> </environments> <mappers> <mapper resource="com/cdut/dao/IUserDao.xml"></mapper> </mappers> </configuration>
6.编写测试类
明确流程 1. 读取mybatis配置文件
2.创建SqlSessionFactory的构建者对象
3.使用构建者创建工厂对象SqlSessionFactory
4.使用SqlSessionFactory生产SqlSession对象
5.使用SqlSession生产代理对象
6.使用代理对象执行方法
7.释放资源

import com.cdut.dao.IUserDao; import com.cdut.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; import java.util.List; public class IUserDaoTest { public static void main(String[] args) throws IOException { // 1. 读取mybatis配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); // 2.创建SqlSessionFactory的构建者对象 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); // 3.使用构建者创建工厂对象SqlSessionFactory SqlSessionFactory sessionFactory = sqlSessionFactoryBuilder.build(in); // 4.使用SqlSessionFactory生产SqlSession对象 SqlSession sqlSession = sessionFactory.openSession(); // 5.使用SqlSession生产代理对象 IUserDao userDao = sqlSession.getMapper(IUserDao.class); // 6.使用代理对象执行方法 List<User> users = userDao.findAll(); for (User user : users) { System.out.println(user); } // 7.释放资源 in.close(); sqlSession.close(); } }
注意引入的包
以上为配置XML的,需要编写Dao接口,并且按照mybatis要求配置两个配置文件,就可以实现功能
使用注解之后,会变得更加简单
注意: 使用注解就需要删除之前的配置文件IUserDao.xml
1.修改接口文件:
package com.cdut.dao; import com.cdut.domain.User; import org.apache.ibatis.annotations.Select; import java.util.List; public interface IUserDao { @Select("select * from user") List<User> findAll(); }
2.修改mybatis配置文件
<mappers>
<mapper class="com.cdut.dao.IUserDao"></mapper>
</mappers>
能够发现 刚刚使用的是resource,也就是导入的是xml配置文件
而这里用的是class!
运行测试代码(不需要修改), 得到的结果是一样的, 可以明显感觉编写注释开发效率更高