mybatis快速上手并運(yùn)行程序
1.Mybatis概述
????????MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過程以及高級(jí)映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過簡(jiǎn)單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對(duì)象)為數(shù)據(jù)庫(kù)中的記錄。
可能大家讀不太懂上面的話,覺得寫的很官方,但這也確實(shí)是mybatis官方目錄對(duì)于mybatis的解釋。我們暫時(shí)還不了解mybatis,但相信大家都學(xué)過JDBC,它的操作方式繁雜,SQL代碼和Java代碼高度耦合,無論是學(xué)習(xí)的人還是使用的人都覺得繁瑣,所以mybatis應(yīng)用而生(當(dāng)然還有hibernate這個(gè)框架,不過已經(jīng)被淘汰了)。正如官方文檔加深字體所說,mybatis就是一個(gè)為了來優(yōu)化JDBC代碼的持久層框架。
2.Mybatis快速入門
Mybatis環(huán)境搭建步驟:
? ? ? ? 1.創(chuàng)建maven項(xiàng)目,導(dǎo)入對(duì)應(yīng)需要的jar包
? ? ? ? 2.編寫mapper映射文件和mybatis全局配置文件
? ? ? ? 3.創(chuàng)建一個(gè)pojo類,在數(shù)據(jù)庫(kù)中建立對(duì)應(yīng)表,編寫mapper配置文件
? ? ? ? 4.編寫mybatisUtils工具類,得到sqlSessionFactory對(duì)象
?? ? ? ?5.進(jìn)行test測(cè)試,通過工具類sqlSession實(shí)例來獲得mapper,調(diào)用映射文件中的SQL語句完成CRUD操作
1.創(chuàng)建maven項(xiàng)目
在pom.xml中導(dǎo)入依賴
mybatis需要的依賴
<dependencies> <!--MySQL驅(qū)動(dòng)--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!--mybatis包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
2.編寫mapper映射文件和mybatis全局配置文件
編寫Mapper文件(也就是接口)
編寫對(duì)應(yīng)的Mapper.xml文件
在resource下建立一個(gè)mybatis—config.xml
導(dǎo)入核心配置信息,注意我標(biāo)注的地方需要根據(jù)自己數(shù)據(jù)庫(kù)的地方進(jìn)行更改???????????
<?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!--configuration核心配置文件--> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--每一個(gè)Mapper.XML都需要在Mybatis核心配置文件中注冊(cè)--> <mappers> <mapper resource="com/kaung/dao/UserMapper.xml"/> </mappers> </configuration>
3.編寫一個(gè)User類
public class User { private int id; private String name; private String password; public User() { } public User(int id, String name, String password) { this.id = id; this.name = name; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}'; } }
在數(shù)據(jù)庫(kù)中建立對(duì)應(yīng)的表(CRUD自己手寫)
4.編寫一個(gè)mybatis工具類,獲得SqlSession對(duì)象
在java下建一個(gè)utils包,建立一個(gè)MybatisUtils工具類
//工具類 sqlSessionFactory -->sqlSession public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { //使用mybatis獲取sqlSessionFactory對(duì)象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //既然有了 SqlSessionFactory,顧名思義, // 我們可以從中獲得 SqlSession 的實(shí)例。SqlSession 提供了在數(shù)據(jù)庫(kù)執(zhí)行 SQL 命令所需的所有方法。 // 你可以通過 SqlSession 實(shí)例來直接執(zhí)行已映射的 SQL 語句。 public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
5.test進(jìn)行測(cè)試,查詢所有User
public class UserDaoMapperTest { @Test public void test(){ //1.獲得sqlSession對(duì)象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //方法1:getMapper UserDaoMapper userDaoMapper = sqlSession.getMapper(UserDaoMapper.class); List<User> userList= userDaoMapper.getUserList(); for (User user:userList){ System.out.println(user); } //關(guān)閉sqlSession sqlSession.close(); } }
到此這篇關(guān)于mybatis快速上手并運(yùn)行程序的文章就介紹到這了,更多相關(guān)mybatis 入門內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot擴(kuò)展SpringMVC原理并實(shí)現(xiàn)全面接管
這篇文章主要介紹了SpringBoot擴(kuò)展SpringMVC原理并實(shí)現(xiàn)全面接管,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Java多線程+鎖機(jī)制實(shí)現(xiàn)簡(jiǎn)單模擬搶票的項(xiàng)目實(shí)踐
鎖是一種同步機(jī)制,用于控制對(duì)共享資源的訪問,在線程獲取到鎖對(duì)象后,可以執(zhí)行搶票操作,本文主要介紹了Java多線程+鎖機(jī)制實(shí)現(xiàn)簡(jiǎn)單模擬搶票的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Python安裝Jupyter Notebook配置使用教程詳解
這篇文章主要介紹了Python安裝Jupyter Notebook配置使用教程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Java通過socket客戶端保持連接服務(wù)端實(shí)現(xiàn)代碼
這篇文章主要介紹了Java通過socket客戶端保持連接服務(wù)端實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Java整合Jackson實(shí)現(xiàn)反序列化器流程
Jackson是一個(gè)開源的Java序列化和反序列化工具,可以將Java對(duì)象序列化為XML或JSON格式的字符串,以及將XML或JSON格式的字符串反序列化為Java對(duì)象。由于其使用簡(jiǎn)單,速度較快,且不依靠除JDK外的其他庫(kù),被眾多用戶所使用2023-01-01