使用mybatis框架連接mysql數(shù)據(jù)庫的超詳細步驟
和我之前寫的通過導(dǎo)入jdbc驅(qū)動jar包來連接mysql數(shù)據(jù)庫而言,用mybatis來說可以有很多好處呀,首先mybatis,就是對jdbc的優(yōu)化方案對吧,,jdbc的硬編碼和一些繁瑣的操作在使用mybatis的時候我就徹底拋擲腦后了哈哈哈。
同時,mybatis在國內(nèi)使用的持久層框架中占比也很高啊
所以對mybatis的學(xué)習(xí),對我們也很有用處嘞。
接下來我就把我在學(xué)習(xí)過程中的一些心得啥的下來,方便大家,同時也是鞏固自己,我創(chuàng)建的是maven項目加上mybatis來實現(xiàn)對mysql數(shù)據(jù)庫的連接,這個過程并不復(fù)雜,但也正是第一步,我們也要格外仔細。
mybatis的一些xml文件配置我參考了:mybatis – MyBatis 3 | 入門
maven項目中導(dǎo)入的jdbc驅(qū)動jar包和mybatis的jar包的依賴我從這里找的:https://mvnrepository.com/artifact/mysql/mysql-connector-java
https://mvnrepository.com/artifact/org.mybatis/mybatis
大家如果在maven項目中不知道怎么寫依賴坐標(biāo),可以從這里直接拿來用。ok,下來開始了。
第一步 在pom.xml中寫好依賴坐標(biāo)
這是我導(dǎo)的jdbc驅(qū)動
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency>
這是我導(dǎo)的mybatis
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency>
pom.xml的整體為:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>demo2</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> </dependencies> </project>
第二步 mybatis的核心配置文件
我們需要在resources目錄下編寫好mybatis的核心配置文件Mybatis-config.xml,這個配置文件的模板在上面發(fā)的mybatis入門的網(wǎng)站里有,大家可以去直接copy過來,好好研究一下。
Mybatis-config.xml的整體代碼為:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!-- 這里要寫入我們連接mysql數(shù)據(jù)庫的信息--> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="1234"/> </dataSource> </environment> </environments> <!-- 這里要寫sql映射--> <mappers> <mapper resource="com/kinroy/Mapper/userMapper.xml"/> </mappers> </configuration>
在<datasource>標(biāo)簽下便要求寫入我們的mysql數(shù)據(jù)庫的連接信息,包括url、name、password老三樣,而在<mappers>標(biāo)簽下待會要寫下我們接下要寫的userMapper.xml,待會通過它來實現(xiàn)mapper代理。
第三步 寫好實體類
我們需要把用來演示的user表中存的數(shù)據(jù)把它們封裝成一個對象,這個時候就要寫一個User的實體類啦,user表中存的數(shù)據(jù)有id、name、age這些簡單數(shù)據(jù)。
User類的整體代碼如下:
package com.kinroy.pojo; public class User { private int id; private String name; private int age; public User() { } public User(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } /** * 獲取 * @return id */ public int getId() { return id; } /** * 設(shè)置 * @param id */ public void setId(int id) { this.id = id; } /** * 獲取 * @return name */ public String getName() { return name; } /** * 設(shè)置 * @param name */ public void setName(String name) { this.name = name; } /** * 獲取 * @return age */ public int getAge() { return age; } /** * 設(shè)置 * @param age */ public void setAge(int age) { this.age = age; } public String toString() { return "User{id = " + id + ", name = " + name + ", age = " + age + "}"; } }
第四步 XXXMapper.xml
這次我在mysql里建立一個test數(shù)據(jù)庫,在test數(shù)據(jù)庫里有一個user表,我們演示的時候是對user表進行操作的,所以在Mapper.xml文件這命名時,就用userMapper.xml
因為要實現(xiàn)Mapper代理,所以在后面我們會建一個和userMapper.xml同名的接口,在接口中便會存放與userMapper.xml中sql語言一樣的抽象方法,來實現(xiàn)mapper代理,我不知道我說得是否清楚,而這就得要這個接口和userMapper.xml所在的目錄要相同,如下圖:
這是userMapper.xml的整體代碼:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.kinroy.Mapper.userMapper"> <select id="selectall" resultType="com.kinroy.pojo.User"> select * from user; </select> <select id="selectzhangsan" resultType="com.kinroy.pojo.User"> select * from user where name='張三'; </select> </mapper>
這是與其同名接口的整體代碼:
package com.kinroy.Mapper; import com.kinroy.pojo.User; import java.util.List; public interface userMapper { List<User> selectall(); User selectzhangsan(); }
這里推薦大家去下一個插件啊,就是mybatisX,在寫mapper代理時,別提有多方便了
第五步 連接mysql數(shù)據(jù)庫
如何大家在寫Mapper.xml的時候會發(fā)現(xiàn)有爆紅的,比如沒有識別表名啊之類的,這是因為我們還沒有和數(shù)據(jù)庫建立連接,連接成功后就不會報錯了
這這里也寫好url、name、password還有要連接的數(shù)據(jù)庫就好了。
第六步 開始test!
我寫了一個測試案例:
import com.kinroy.Mapper.userMapper; import com.kinroy.pojo.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 test { public static void main(String[] args) throws IOException { String resource = "Mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); userMapper users = sqlSession.getMapper(userMapper.class); /*List<User> selectall = users.selectall(); System.out.println(selectall);*/ User zhangsan = users.selectzhangsan(); String s = zhangsan.toString(); System.out.println(s); } }
測試了一下,看成功沒有,果然沒啥問題,這樣我們就完成整個mybatis的連接mysql,并執(zhí)行一下簡單sql語言的過程啦。
總結(jié)
到此這篇關(guān)于使用mybatis框架連接mysql數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)mybatis連接mysql數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)Executors類創(chuàng)建常見線程池
本文主要介紹了Java實現(xiàn)Executors類創(chuàng)建常見線程池,在Java中,可以通過Executors工廠類提供四種常見類型的線程池,下面就來介紹一下這四種的方法實現(xiàn),感興趣的可以了解一下2023-11-11Spring?EnableAsync注解異步執(zhí)行源碼解析
這篇文章主要為大家介紹了Spring?EnableAsync注解源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11Spring mvc工作原理_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了Spring mvc工作原理的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Classloader隔離技術(shù)在業(yè)務(wù)監(jiān)控中的應(yīng)用詳解
這篇文章主要為大家介紹了Classloader隔離技術(shù)在業(yè)務(wù)監(jiān)控中的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08