網站首頁 編程語言 正文
IDEA新建maven項目,使用mybatis操作數據庫完整過程
- 一、IDEA新建maven項目
- 二、配置mybatis
- 三、創建表對應實體類
- 四、創建mapper接口
- 五、使用mybatis操作數據庫
前提: 這個教程是在maven項目中使用mybatis進行數據庫操作,不是在spring boot項目中。
一、IDEA新建maven項目
- 打開idea,新建maven項目
- 在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配置文件,然后輸入數據庫的配置項,如下所示:
# mysql8的驅動
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo
username=root
password=root
- 然后新建mybatis-config.xml文件,配置mybatis的數據庫連接,以及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}"/>
<!--數據庫地址-->
<property name="url" value="${url}"/>
<!--數據庫賬號-->
<property name="username" value="${username}"/>
<!--數據庫密碼-->
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--映射文件路徑 對于其他的mapper,按照如下格式即可-->
<mapper resource="mapper/SeatMapper.xml"/>
<mapper resource="mapper/UserInfoMapper.xml"/>
</mappers>
</configuration>
三、創建表對應實體類
- 然后根據數據庫表創建數據庫實體類,示例表創建語句如下所示:
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
);
大家參照這個格式,然后使用自己的表即可
2. 然后根據數據庫表創建實體類,如下所示:
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;
}
}
四、創建mapper接口
- 根據自己想要的操作,創建mapper接口,這里只寫了一個插入方法,如下所示:
@Mapper
public interface UserInfoMapper {
int insert(UserInfo record);
}
- 創建該mapper對應的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:這里填寫對應的mapper的路徑
- insert:這一塊是編寫的對應的插入語句,
- id是為了標識方法,用于mybatis查找所調用的方法,
- parameterType表示的是方法的參數類型
注意: 以上就是mybatis的主要使用過程,mapper和對應的xml映射文件結合使用,用來操作數據庫。mybatis也可以使用注解對數據庫進行操作。但xml文件能夠實現更為復雜的語句,所以一般我在開發過程中是xml文件和注解配合使用的。
五、使用mybatis操作數據庫
上面只給出了mybatis的配置和xml文件的編寫,這里給出具體如何使用mybatis操作數據庫。具體代碼如下所示:
public class Test01 {
public static SqlSessionFactory getSqlSessionFactory() throws IOException {
//注意此處路徑不要寫錯
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實例
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//2、打開一個會話
SqlSession openSession = sqlSessionFactory.openSession();
try {
// 3、獲取接口的實現類對象,會為接口自動的創建一個代理對象,代理對象去執行增刪改查方法
UserInfoMapper mapper = openSession.getMapper(UserInfoMapper.class);
int count = 0;
// 4、調用接口的方法
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.提交事務,核心配置文件中的事物方式為JDBC,因此需要手動提交
//這里需要加上commit(),否則能夠實現功能,但不能將修改持久化到數據庫,也就是說,沒有commit不會真正的改變數據庫,而是會回滾的執行前
openSession.commit();
} finally {
//4、使用完畢后關閉會話
openSession.close();
}
}
}
上面就是maven項目使用mybatis的過程,大概就是這樣一個模板。可以根據自己的需要進行修改,而且上面的創建工廠和會話可以進行封裝,不用每次都再去寫這一部分的代碼。
原文鏈接:https://blog.csdn.net/weixin_45915647/article/details/134089860
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-12-12 Go語言開發前后端不分離項目詳解_Golang
- 2022-09-15 教你如何將應用從docker-compose遷移到k8s中_docker
- 2023-01-12 python可迭代類型遍歷過程中數據改變會不會報錯_python
- 2022-06-01 Python使用xlrd和xlwt批量讀寫excel文件的示例代碼_python
- 2022-06-11 python?針對在子文件夾中的md文檔實現批量md轉word_python
- 2024-03-18 JedisDataException: READONLY You can‘t write again
- 2022-09-17 詳解redis集群的三種方式_Redis
- 2024-03-03 layui 表格select下拉不顯示全的問題
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支