mybatis第一讲:初探mybatis实现简单的查询
一、知識要點
(1)MyBatis是支持普通SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的 JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射, 將接口和Java的POJOs(Plan Old Java Objects,普通的Java對象)映射成數據庫中的記錄。
(1)無論是Hibernate還是MyBatis,你會發現它們的共同點:
從配置文件(通常是XML配置文件)得到SQL會話工廠對象。
由SQL會話工廠對象產生SQL會話對象。
利用SQL會話對象完成對數據的增刪改查和事務提交等。
在用完之后關閉SQL會話對象。
在Java對象和數據庫之間有做映射的XML配置文件
3. 項目3
二、實例項目步驟
創建項目
在pom文件里添加相關的文件
附上相關的代碼:<?xml version="1.0" encoding="UTF-8"?>
4.0.0
點擊刷新按鈕
查看下載到本地的jar包
打開Maven Repository網
在搜索框里輸入待查的jar包名
將紅框里的依賴元素復制到pom文件里的元素里
創建與用戶表對應的用戶實體類 - User
代碼附上:
public class User {
private int id;
private String name;
private int age;
private String address;
}
創建用戶實體關系映射配置文件
在resources目錄里創建mapper子目錄,然后在里面創建實體關系映射配置文件 - UserMapper.xml
創建MyBatis配置文件
在resources目錄里創建mybatis-config.xml
到這一步我們的mybatis-config.xml文件就鍵好了
附上代碼:
簡要說明
mybatis-config.xml 是 MyBatis 用來建立 sessionFactory 用的,里面主要包含了數據庫連接相關內容,還有 Java 類所對應的別名,比如,這個別名非常重要,在具體類的映射中,比如UserMapper.xml 中 resultType 就是對應這里的User。要保持一致。
mybatis-config.xml 里面 的是包含要映射的類的實體關系映射配置文件。
在UserMapper.xml 文件里面主要是定義各種SQL 語句,以及這些語句的參數,以及要返回的類型等。
創建日志屬性文件
在resources目錄里創建log4j.properties文件
創建測試類測試用戶操作
1、創建測試類 - TestUserOperation
在test/java目錄里創建net.hw.mybatis.bean包,然后在包里創建測試類 - TestUserOperation
運行測試方法 - testFindById()
修改testFindById()代碼,再運行查看結果
運行測試方法 - testFindAll()
采用接口方式使用MyBatis
前面,我們采用SqlSession實例來直接執行已映射的SQL語句:sqlSession.selectOne( “net.lbd.mybatis.mapper.UserMapper.findById”, id); 其實還有更好更簡潔的方式,使用合理描述參數和SQL語句返回值的接口(比如UserMapper.class),這樣代碼更簡單,不容易發生字符串文字和轉換的錯誤。
創建用戶映射器接口
創建net.hw.mybatis.mapper包,然后在包里創建用戶映射器接口 - UserMapper
意思就是圈出來的語句的作用是相同的,知識從圖中也可以看出,第一個方法是要簡單許多,所以我們平時用的時候應該是經常用到第一種方法
注意:UserMapper接口的完整路路徑(包名+接口名)必須是\元素的namespace屬性值 net.hw.mybatis.mapper.UserMapper,并且里面定義的方法名必須與UserMapper.xml里定義的SQL語句的id值保持一致,比如 findById、findAll。
創建測試類測試用戶映射器接口
1、創建測試類 - TestUserMapper
在test/java里創建net.hw.mybatis.mapper包,然后在包里創建測試類 - TestUserMapper
附上代碼:
package net.lbd.mybatis.mapper;
import net.lbd.mybatis.bean.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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
/**
-
功能:測試用戶映射器接口
-
作者:李補都
-
日期:2021年03月06日
*/
public class TestUserMapper {private SqlSession sqlSession; // SQL會話
private UserMapper userMapper; // 用戶映射器@Before
public void init() {
try {
// 讀取MyBatis配置文件作為字符輸入流
Reader reader = Resources.getResourceAsReader(“mybatis-config.xml”);
// 基于MyBatis配置文件構建SQL會話工廠
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
// 利用SQL會話工廠獲取SQL會話
sqlSession = factory.openSession();
// 利用SQL會話獲取用戶映射器對象
userMapper = sqlSession.getMapper(UserMapper.class);
// 提示用戶SQL會話對象創建成功
System.out.println(“sqlSession對象已創建?!?;
} catch (IOException e) {
e.printStackTrace();
}
}@Test
public void testFindById() {
int id = 1;
User user = userMapper.findById(id);
if (user != null) {
System.out.println(user);
} else {
System.out.println(“編號為[” + id + “]的用戶未找到?!?;
}
}@Test
public void testFindAll() {
List users = userMapper.findAll();
users.forEach(user -> System.out.println(user));
}@After
public void destroy() {
// 關閉SQL會話
sqlSession.close();
// 提示用戶SQL會話對象關閉
System.out.println(“sqlSession對象已關閉?!?;
}
}
運行測試方法 - testFindById()
運行測試方法 - testFindAll()
整體運行
三、遇到的問題
遇到的問題很多,但是都比較小,都是一些版本小,或者是MySQL的秘密沒有對,粗細導致的單詞打錯,我覺得比較大的問題呢是,對此門課程還不是很熟悉,所以操作起來的時候難免發一些非常低級的錯誤,希望能越來越熟悉!
四、學習心得
要認真上課,下來花時間認真操作,多練習!
總結
以上是生活随笔為你收集整理的mybatis第一讲:初探mybatis实现简单的查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shijchuli
- 下一篇: mybitis第三讲:关联查询