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代碼高度耦合,無(wú)論是學(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語(yǔ)句完成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 語(yǔ)句。
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-11
Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Java多線程+鎖機(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-02
Python安裝Jupyter Notebook配置使用教程詳解
這篇文章主要介紹了Python安裝Jupyter Notebook配置使用教程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Java通過socket客戶端保持連接服務(wù)端實(shí)現(xiàn)代碼
這篇文章主要介紹了Java通過socket客戶端保持連接服務(wù)端實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Java整合Jackson實(shí)現(xiàn)反序列化器流程
Jackson是一個(gè)開源的Java序列化和反序列化工具,可以將Java對(duì)象序列化為XML或JSON格式的字符串,以及將XML或JSON格式的字符串反序列化為Java對(duì)象。由于其使用簡(jiǎn)單,速度較快,且不依靠除JDK外的其他庫(kù),被眾多用戶所使用2023-01-01

