IDEA使用Maven和MyBatis簡化數(shù)據(jù)庫連接的詳細(xì)過程
一、引入MyBatis:
1.后端對于前端數(shù)據(jù)的處理和反饋大致分為三個層:controller層負(fù)責(zé)前后端交互,service層負(fù)責(zé)進行邏輯處理,Dao層也叫持久層,負(fù)責(zé)連接數(shù)據(jù)庫。

2.打開數(shù)據(jù)庫,創(chuàng)建一個新的數(shù)據(jù)庫并創(chuàng)建一個新的表來方便實驗(我取的數(shù)據(jù)庫名為“newtest”,表名為“student”的學(xué)生表)。在表中添加id、name、sex、age幾個字段并填寫數(shù)據(jù):

3.打開pom.配置文件,在dependencies標(biāo)簽中導(dǎo)入mybatis和mysql的相關(guān)包(不需要實際導(dǎo)入,只需要拿到“坐標(biāo)”):
具體引入的內(nèi)容:
(1). 引入MyBatis的3.4.5的版本的坐標(biāo),保證是MyBatis
(2). 引入MySQL驅(qū)動的jar包,5.1.6版本,保證能夠連接到數(shù)據(jù)庫
(3). 引入Junit單元測試的jar包
(4). 引入log4j的jar包,1.2.12版本(需要引入log4j.properties的配置文件)
在dependencies中填寫:
<dependencies> <!--mybatis核心包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!--mysql驅(qū)動包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!-- 單元測試 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> <!-- 日志 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
導(dǎo)入成功后,點擊右上角的M標(biāo)志刷新:

二、測試:
1.創(chuàng)建實體類:數(shù)據(jù)庫映射到程序中還需要借助entity層,用于存儲對應(yīng)數(shù)據(jù)庫中的信息(類對表,屬性對應(yīng)字段)。在main-->java-->com.newFile目錄下創(chuàng)建一個“dao”包和“entity”包。在entity中創(chuàng)建students實體類(表名與類名無關(guān),但字段名與屬性名相關(guān))。
填寫屬性和封裝方法:
private int id;
private String name;
private int age;
private String sex;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
//toString方法
@Override
public String toString() {
return "students{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}2.在dao中編寫一個接口作為規(guī)范:在dao目錄下創(chuàng)建一個名為“StudentDao”的接口文件(名字可以任?。覀兿染帉懸粋€findAll方法測試:
package com.newFile.dao;
//引入students包
import com.newFile.entity.students;
//引入list
import java.util.List;
public interface StudentDao {
//定義findAll方法查找所有內(nèi)容
public List<students> findAll();
}3.創(chuàng)建接口的實現(xiàn)類:在main目錄下創(chuàng)建一個resources資源目錄,資源目錄中存放著所有接口的實現(xiàn)類。再在resources中創(chuàng)建一個mapper目錄存放接口的實現(xiàn)類(方便后續(xù)配置),在mapper目錄下創(chuàng)建一個xml配置文件并通過配置文件創(chuàng)建接口的實現(xiàn)類,將配置文件命名為“StudentDao”并寫入:
<?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="com.newFile.dao.StudentDao"></mapper>
再在resources目錄下創(chuàng)建一個主配置文件命名為“SqlMapConfig.xml”并填入:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="mysql">
<environment id="mysql">
<!--配置事務(wù)的類型,使用本地事務(wù)策略-->
<transactionManager type="JDBC"></transactionManager>
<!--是否使用連接池 POOLED表示使用鏈接池,UNPOOLED表示不使用連接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!--student為數(shù)據(jù)庫名-->
<property name="url" value="jdbc:mysql://localhost:3306/newtest"/>
<!--這里寫你mysql數(shù)據(jù)庫的用戶名和密碼-->
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--實現(xiàn)類的路徑-->
<mapper resource="mapper/StudentDao.xml"></mapper>
</mappers>
</configuration>在接口實現(xiàn)文件的“mapper”標(biāo)簽中就可以寫sql語句了,實現(xiàn)的是findAll方法:
<select id="findAll" resultType="com.newFile.entity.students">
select * from student
</select>其中:(應(yīng)該傳入包裝類型的類全名)
1.id表示接口中定義的對應(yīng)方法
2.parameterType表示方法需要傳入的參數(shù)
3.resultType表示返回值的類型
4.測試:
MyBatis官網(wǎng):從 XML 中構(gòu)建 SqlSessionFactory
每個基于 MyBatis 的應(yīng)用都是以一個 SqlSessionFactory 的實例為核心的。SqlSessionFactory 的實例可以通過 SqlSessionFactoryBuilder 獲得。而 SqlSessionFactoryBuilder 則可以從 XML 配置文件或一個預(yù)先配置的 Configuration 實例來構(gòu)建出 SqlSessionFactory 實例。
從 XML 文件中構(gòu)建 SqlSessionFactory 的實例非常簡單,建議使用類路徑下的資源文件進行配置。 但也可以使用任意的輸入流(InputStream)實例,比如用文件路徑字符串或 file:// URL 構(gòu)造的輸入流。MyBatis 包含一個名叫 Resources 的工具類,它包含一些實用方法,使得從類路徑或其它位置加載資源文件更加容易。
SqlSession 是 MyBatis 框架的核心接口,用于執(zhí)行 SQL 語句、管理事務(wù)以及獲取映射器(Mapper)實例,是應(yīng)用程序與持久層交互的直接入口。
1.在Test測試類中創(chuàng)建run方法:
public void run() throws IOException {
//主配置文件路徑
String resourcePath = "SqlMapConfig.xml";
//加載主配置文件,為了拿到SqlSessionFactory
InputStream inputStream = Resources.getResourceAsStream(resourcePath);
//拿到SqlSessionFactory對象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//創(chuàng)建SqlSession
SqlSession session = sqlSessionFactory.openSession();
//通過SqlSession對象創(chuàng)建studentDao接口的代理對象
studentDao mapper = session.getMapper(studentDao.class);
//通過代理訪問接口中的方法
List<students> arr = mapper.findAll();
//打印輸出
for(students student : arr){
System.out.println(student);
}
}2.創(chuàng)建Test對象并執(zhí)行run方法:
Test test = new Test();test.run();
輸出結(jié)果:

第一個sql查詢就成功了。
到此這篇關(guān)于IDEA使用Maven和MyBatis簡化數(shù)據(jù)庫連接的詳細(xì)過程的文章就介紹到這了,更多相關(guān)idea簡化數(shù)據(jù)庫連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 對10個數(shù)進行排序的實現(xiàn)代碼
可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換, 下次類推,即用第二個元素與后8個進行比較,并進行交換2017-02-02
Java實現(xiàn)批量導(dǎo)出導(dǎo)入數(shù)據(jù)及附件文件zip包
這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)批量導(dǎo)出導(dǎo)入數(shù)據(jù)及附件文件zip包的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一2022-09-09
Swagger2配置Security授權(quán)認(rèn)證全過程
這篇文章主要介紹了Swagger2配置Security授權(quán)認(rèn)證全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
如何通過Java監(jiān)聽MySQL數(shù)據(jù)的變化
對于二次開發(fā)來說,很大一部分就找找文件和找數(shù)據(jù)庫的變化情況,下面這篇文章主要給大家介紹了關(guān)于如何通過Java監(jiān)聽MySQL數(shù)據(jù)的變化的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03

