mybatis學習之根據id查詢使用者例子
阿新 • • 發佈:2019-02-05
1、建立po類
根據資料庫欄位一一生成表的po類 在此處我們生成一個User類 //屬性名和資料庫表的欄位一一對應
private int id;
private String username;// 使用者姓名
private String sex;// 性別
private Date birthday;// 生日
private String address;// 地址
get and set...
2、配置對映檔案(User.xml)
對映檔案命名:mapper代理的對映檔名稱格式為xxxMapper.xml,比如:UserMapper.xml,ItemsMapper.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="test">
</mapper>
我們在mapper中插入如下程式碼:
<!-- 在對映檔案中配置很多sql語句 --> <!-- 需求:通過id查詢使用者資料 --> <!-- 通過select來執行資料庫的查詢操作 ID:標識對映檔案中的sql,成為statementid 將sql語句封裝到mappedStatement物件中 parameterType: 指定輸入引數的型別,這裡指定為int型 #{}表示一個佔位符 #{id},其中的id表示接受輸入的引數,引數名稱為id resultType : 指定sql輸出結果所對映的java物件型別,這裡select指定resultType表示單條記錄所對映成的java物件 --> <select id="findUserById" parameterType="int" resultType="pojo.User"> SELECT * FROM USER WHERE id = #{id} </select>
3、在SqlMapConfig.xml中載入對映檔案
在SqlMapConfig.xml中載入User.xml <!-- 載入對映檔案 -->
<mappers>
<mapper resource="sqlmap/User.xml"></mapper>
</mappers>
4、程式編寫
在這裡我們先用Junit單元測試測試一下, 新建一個測試類,在測試類下加入如下程式碼(過程可看註釋)//根據id查詢使用者的資訊,得到一條記錄 @Test public void findUserByIdTest(){ //mybatis配置檔案 String resource = "SqlMapConfig.xml"; SqlSession sqlSession = null; try { InputStream inputStream = Resources.getResourceAsStream(resource); //建立會話工廠,傳入mybatis的配置資訊 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //通過工廠得到SqlSession sqlSession = sqlSessionFactory.openSession(); //通過SqlSession來操作資料庫 //第一個引數:對映檔案中的statementID 等於namespace + "." + ID //第二個引數:和對映檔案中所匹配的parameterType型別的引數 //sqlSession.selectOne 的結果型別就是你對映檔案中所匹配的resultType型別 User user = sqlSession.selectOne("test.findUserById", 1); System.out.print(user); }catch (IOException e){ e.printStackTrace(); }finally { //釋放資源 sqlSession.close(); } }
測試執行後可看結果
對映檔案命名:
mapper代理的對映檔名稱格式為xxxMapper.xml,比如:UserMapper.xml,ItemsMapper.xml