網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
IDEA新建maven項(xiàng)目,使用mybatis操作數(shù)據(jù)庫(kù)完整過(guò)程
- 一、IDEA新建maven項(xiàng)目
- 二、配置mybatis
- 三、創(chuàng)建表對(duì)應(yīng)實(shí)體類(lèi)
- 四、創(chuàng)建mapper接口
- 五、使用mybatis操作數(shù)據(jù)庫(kù)
前提: 這個(gè)教程是在maven項(xiàng)目中使用mybatis進(jìn)行數(shù)據(jù)庫(kù)操作,不是在spring boot項(xiàng)目中。
一、IDEA新建maven項(xiàng)目
- 打開(kāi)idea,新建maven項(xiàng)目
- 在pom文件中添加mybatis和mysql依賴
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
二、配置mybatis
- 在resources目錄下,新建jdbc.properties配置文件,然后輸入數(shù)據(jù)庫(kù)的配置項(xiàng),如下所示:
# mysql8的驅(qū)動(dòng)
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo
username=root
password=root
- 然后新建mybatis-config.xml文件,配置mybatis的數(shù)據(jù)庫(kù)連接,以及mapper映射文件,如下所示:
<?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>
<!-- 引入配置文件properties -->
<properties resource="jdbc.properties">
</properties>
<!-- 配置log4j-->
<!-- <settings>-->
<!-- <setting name="loglmpl" value="LOG4J"/>-->
<!-- </settings>-->
<typeAliases>
<package name="com.cc.demo.model"/>
</typeAliases>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<!--數(shù)據(jù)庫(kù)地址-->
<property name="url" value="${url}"/>
<!--數(shù)據(jù)庫(kù)賬號(hào)-->
<property name="username" value="${username}"/>
<!--數(shù)據(jù)庫(kù)密碼-->
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--映射文件路徑 對(duì)于其他的mapper,按照如下格式即可-->
<mapper resource="mapper/SeatMapper.xml"/>
<mapper resource="mapper/UserInfoMapper.xml"/>
</mappers>
</configuration>
三、創(chuàng)建表對(duì)應(yīng)實(shí)體類(lèi)
- 然后根據(jù)數(shù)據(jù)庫(kù)表創(chuàng)建數(shù)據(jù)庫(kù)實(shí)體類(lèi),示例表創(chuàng)建語(yǔ)句如下所示:
create table userinfo
(
userId int auto_increment
primary key,
username varchar(50) not null,
userSex tinyint not null,
userPhone varchar(50) not null,
email varchar(50) not null
);
大家參照這個(gè)格式,然后使用自己的表即可
2. 然后根據(jù)數(shù)據(jù)庫(kù)表創(chuàng)建實(shí)體類(lèi),如下所示:
public class UserInfo implements Serializable {
private Integer userId;
private String username;
private Byte usersex;
private String userphone;
private String email;
public UserInfo() {
}
public UserInfo(Integer userId, String username, Byte usersex, String userphone, String email) {
this.userId = userId;
this.username = username;
this.usersex = usersex;
this.userphone = userphone;
this.email = email;
}
private static final long serialVersionUID = 1L;
public Integer getuserId() {
return userId;
}
public void setuserId(Integer userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Byte getUsersex() {
return usersex;
}
public void setUsersex(Byte usersex) {
this.usersex = usersex;
}
public String getUserphone() {
return userphone;
}
public void setUserphone(String userphone) {
this.userphone = userphone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
四、創(chuàng)建mapper接口
- 根據(jù)自己想要的操作,創(chuàng)建mapper接口,這里只寫(xiě)了一個(gè)插入方法,如下所示:
@Mapper
public interface UserInfoMapper {
int insert(UserInfo record);
}
- 創(chuàng)建該mapper對(duì)應(yīng)的xml映射文件,如下所示:
<?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.cc.demo.mapper.UserInfoMapper">
<resultMap id="BaseResultMap" type="com.zzj.webservlet.model.UserInfo">
<id column="userId" jdbcType="INTEGER" property="userId" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="userSex" jdbcType="TINYINT" property="usersex" />
<result column="userPhone" jdbcType="VARCHAR" property="userphone" />
<result column="email" jdbcType="VARCHAR" property="email" />
</resultMap>
<sql id="Base_Column_List">
userId, username, userSex, userPhone, email
</sql>
<insert id="insert" keyColumn="userId" keyProperty="userId" parameterType="com.cc.demo.model.UserInfo" useGeneratedKeys="true">
insert into userinfo (username, userSex, userPhone,
email)
values (#{username,jdbcType=VARCHAR}, #{usersex,jdbcType=TINYINT}, #{userphone,jdbcType=VARCHAR},
#{email,jdbcType=VARCHAR})
</insert>
</mapper>
- namespace:這里填寫(xiě)對(duì)應(yīng)的mapper的路徑
- insert:這一塊是編寫(xiě)的對(duì)應(yīng)的插入語(yǔ)句,
- id是為了標(biāo)識(shí)方法,用于mybatis查找所調(diào)用的方法,
- parameterType表示的是方法的參數(shù)類(lèi)型
注意: 以上就是mybatis的主要使用過(guò)程,mapper和對(duì)應(yīng)的xml映射文件結(jié)合使用,用來(lái)操作數(shù)據(jù)庫(kù)。mybatis也可以使用注解對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。但xml文件能夠?qū)崿F(xiàn)更為復(fù)雜的語(yǔ)句,所以一般我在開(kāi)發(fā)過(guò)程中是xml文件和注解配合使用的。
五、使用mybatis操作數(shù)據(jù)庫(kù)
上面只給出了mybatis的配置和xml文件的編寫(xiě),這里給出具體如何使用mybatis操作數(shù)據(jù)庫(kù)。具體代碼如下所示:
public class Test01 {
public static SqlSessionFactory getSqlSessionFactory() throws IOException {
//注意此處路徑不要寫(xiě)錯(cuò)
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inputStream);
}
public static void main(String[] args) throws IOException {
//1、獲取SqlSessionFactory實(shí)例
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//2、打開(kāi)一個(gè)會(huì)話
SqlSession openSession = sqlSessionFactory.openSession();
try {
// 3、獲取接口的實(shí)現(xiàn)類(lèi)對(duì)象,會(huì)為接口自動(dòng)的創(chuàng)建一個(gè)代理對(duì)象,代理對(duì)象去執(zhí)行增刪改查方法
UserInfoMapper mapper = openSession.getMapper(UserInfoMapper.class);
int count = 0;
// 4、調(diào)用接口的方法
for (int i = 0; i < 30; i++) {
if(i % 2 == 0){
count += mapper.insert(new UserInfo(i,"xiao" + i, (byte) 1,"156382260" +i,"xiao" + i +"@qq.com"));
}else {
count +=mapper.insert(new UserInfo(i,"xiao" + i, (byte) 0, "156382260" +i,"xiao" + i +"@qq.com"));
}
}
System.out.println(count);
//7.提交事務(wù),核心配置文件中的事物方式為JDBC,因此需要手動(dòng)提交
//這里需要加上commit(),否則能夠?qū)崿F(xiàn)功能,但不能將修改持久化到數(shù)據(jù)庫(kù),也就是說(shuō),沒(méi)有commit不會(huì)真正的改變數(shù)據(jù)庫(kù),而是會(huì)回滾的執(zhí)行前
openSession.commit();
} finally {
//4、使用完畢后關(guān)閉會(huì)話
openSession.close();
}
}
}
上面就是maven項(xiàng)目使用mybatis的過(guò)程,大概就是這樣一個(gè)模板。可以根據(jù)自己的需要進(jìn)行修改,而且上面的創(chuàng)建工廠和會(huì)話可以進(jìn)行封裝,不用每次都再去寫(xiě)這一部分的代碼。
原文鏈接:https://blog.csdn.net/weixin_45915647/article/details/134089860
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-04-14 解決Goland錯(cuò)誤:$GOPATH/go.mod exists but should not
- 2022-02-17 RuntimeError: CUDA error: device-side assert trigg
- 2022-08-22 Pycharm報(bào)錯(cuò)Non-zero?exit?code?(2)的完美解決方案_python
- 2022-10-25 React?中?setState?的異步操作案例詳解_React
- 2023-07-07 TP6的服務(wù)在自定義composer包中如何使用
- 2022-10-17 C++STL教程之vector模板的使用_C 語(yǔ)言
- 2022-07-10 css中border屬性設(shè)置
- 2022-06-15 golang中net的tcp服務(wù)使用_Golang
- 欄目分類(lèi)
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支