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!
運行測試代碼(不需要修改), 得到的結果是一樣的, 可以明顯感覺編寫注釋開發效率更高