一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot整合Mybatis并完成CRUD操作的實現示例

Spring Boot整合Mybatis并完成CRUD操作的實現示例

2021-06-23 13:45Goat-James Java教程

這篇文章主要介紹了Spring Boot整合Mybatis并完成CRUD操作的實現示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

mybatis 是一款優秀的持久層框架,被各大互聯網公司使用,本文使用spring boot整合mybatis,并完成crud操作。

為什么要使用mybatis?我們需要掌握mybatis嗎?

說的官方一點:

mybatis 是一款優秀的持久層框架,它支持定制化 sql、存儲過程以及高級映射。mybatis 避免了幾乎所有的 jdbc 代碼和手動設置參數以及獲取結果集。mybatis 可以使用簡單的 xml 或注解來配置和映射原生信息,將接口和 java 的 pojos(plain ordinary java object,普通的 java對象)映射成數據庫中的記錄。

說的功利一點:

據說目前各大互聯網公司通常使用mybatis,還不趕快學習一下嗎?

怎么使用?

這才是本文的重點。

新建spring boot工程和導入eclipse這些在這里就不啰嗦了,不會的可以查看只需兩步!eclipse+maven快速構建第一個spring boot項目。

1. pom.xml添加依賴

spring boot整合mybatis需要引入 mybatis-spring-boot-starter;我使用的是mysql數據庫,需要引入ysql-connector-java。

?
1
2
3
4
5
6
7
8
9
10
11
12
<!-- mysql驅動 -->
    <dependency>
      <groupid>mysql</groupid>
      <artifactid>mysql-connector-java</artifactid>
    </dependency>
      
    <!-- spring-boot整合mybatis -->
    <dependency>
      <groupid>org.mybatis.spring.boot</groupid>
      <artifactid>mybatis-spring-boot-starter</artifactid>
      <version>1.1.1</version>
    </dependency>

2. application.property配置mybatis和數據源

?
1
2
3
4
5
6
7
8
mybatis.config-location=classpath:mapper/mybatis_config.xml
mybatis.mapper-locations=classpath:mapper/*mapper.xml
mybatis.type-aliases-package=com.shangguan.mybatis.entity
 
spring.datasource.driverclassname = com.mysql.cj.jdbc.driver
spring.datasource.url = jdbc:mysql://localhost:3306/spring_boot?servertimezone=gmt%2b8
spring.datasource.username = root
spring.datasource.password = 123456

例如我的mybatis_config.xml的路徑為/mybatis/src/main/resources/mapper/mybatis_config.xml(下面是目錄結構圖),那么我的mybatis.config-location配置為classpath:mapper/mybatis_config.xml,請注意一定要根據自己項目的目錄結構進行配置mybatis。數據庫也一樣。

mapper包里面是mybatis的映射類。

interceptor包是攔截器,如果還有疑問請參考之前的博文:spring boot配置攔截器及實現跨域訪問

Spring Boot整合Mybatis并完成CRUD操作的實現示例

3. mybatis全局配置文件

mybatis 的配置文件包含了會深深影響 mybatis 行為的設置(settings)和屬性(properties)信息。關于配置文件的詳解請看 xml映射配置文件

mybatis_config.xml

?
1
2
3
4
5
<?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>
 
</configuration>

4. 實體類user

user使用的和之前使用的一樣,沒有修改。

user:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class user implements serializable {
 
  private static final long serialversionuid = 1l;
  private long id;
  private string username;
  private string password;
 
  public user() {
    super();
  }
 
  public user(string username, string password) {
    super();
    this.username = username;
    this.password = password;
  }
 
  public long getid() {
    return id;
  }
 
  public void setid(long id) {
    this.id = id;
  }
 
  public string getusername() {
    return username;
  }
 
  public void setusername(string username) {
    this.username = username;
  }
 
  public string getpassword() {
    return password;
  }
 
  public void setpassword(string password) {
    this.password = password;
  }
 
  @override
  public string tostring() {
    return "username " + this.username + ", pasword " + this.password;
  }
}

5. 添加user的映射文件和映射類

sql 映射文件有很少的幾個頂級元素(按照它們應該被定義的順序):

  • cache – 給定命名空間的緩存配置。
  • cache-ref – 其他命名空間緩存配置的引用。
  • resultmap – 是最復雜也是最強大的元素,用來描述如何從數據庫結果集中來加載對象。
  • parametermap – 已廢棄!老式風格的參數映射。內聯參數是首選,這個元素可能在將來被移除,這里不會記錄。
  • sql – 可被其他語句引用的可重用語句塊。
  • insert – 映射插入語句
  • update – 映射更新語句
  • delete – 映射刪除語句
  • select – 映射查詢語句

更多信息請參考 xml映射文件 。

增刪改查的sql語句在usermapper.xml里面書寫,具體的看代碼,里面有注釋。

有幾點需要注意的地方:

①<select id="getall" resulttype="user">,這里的id的名字是自己取的,但是要和usermapper.java里面的名字相同public list<user> getall();

②當sql語句中有多個參數的時候,需要在映射類方法里面加@param的注解,不然會拋出異常說找不到參數。例如:

?
1
2
public void updateuser(@param("id") long id, @param("username") string username,
      @param("password") string password);

③主鍵自增,需要設置usegeneratedkeys="true" keyproperty="id"

usermapper.xml:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?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.shangguan.mybatis.mapper.usermapper">
   <resultmap id="baseresultmap" type="com.shangguan.mybatis.mapper.usermapper" >
    <id column="id" property="id" jdbctype="bigint" />
    <result column="username" property="username" jdbctype="varchar" />
    <result column="password" property="password" jdbctype="varchar" />
  </resultmap>
  
  <!--查詢所有-->
  <select id="getall" resulttype="user">
    select * from user
  </select>
  
  <!--保存用戶-->
  <insert id="saveuser" usegeneratedkeys="true" keyproperty="id">
    insert into user(username,password) values(#{username},#{password})
  </insert>
  
  <!--通過id刪除用戶-->
  <delete id="deleteuserbyid">
    delete from user where id =#{id}
  </delete>
  
  <!--更新該用戶信息-->
  <update id="updateuser">
    update user set username = #{username},password = #{password}
    where id = #{id}
  </update>
  
</mapper>

映射類usermapper.java:

?
1
2
3
4
5
6
7
8
@mapper
public interface usermapper {
  public list<user> getall();
  public void saveuser(user user);
  public void deleteuserbyid(long id);
  public void updateuser(@param("id") long id, @param("username") string username,
      @param("password") string password);
}

6. service層實現

userservice里面有四個方法:增刪改查。查詢所有的用戶,保存用戶,通過id刪除用戶,更新用戶信息。

userservice:

?
1
2
3
4
5
6
7
8
public interface userservice {
 
  public list<user> getalluser();
  public void saveuser(user user);
  public void deleteuserbyid(long id);
  public void updateuser(long id, string username, string password);
 
}

userserviceimpl:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@service
public class userserviceimpl implements userservice {
 
  @autowired
  private usermapper usermapper;
 
  @override
  public list<user> getalluser() {
    list<user> list = usermapper.getall();
    return list;
  }
 
  @override
  public void saveuser(user user) {
    usermapper.saveuser(user);
  }
 
  @override
  public void deleteuserbyid(long id) {
    usermapper.deleteuserbyid(id);
  }
 
  @override
  public void updateuser(long id, string username, string password) {
    usermapper.updateuser(id, username, password);
  }
}

7. controller層實現

usercontroller里面對接口進行封裝:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@restcontroller
@springbootapplication
@requestmapping("/mybatis")
public class usercontroller {
 
  @autowired
  private userservice userservice;
 
  @requestmapping("/getalluser")
  public list<user> getalluser() {
    list<user> list = userservice.getalluser();
    return list;
  }
 
  @requestmapping("/saveuser")
  public void saveuser(user user) {
    userservice.saveuser(user);
  }
 
  @requestmapping("/deleteuserbyid")
  public void deleteuserbyid(long id) {
    userservice.deleteuserbyid(id);
  }
 
  @requestmapping("/updateuser")
  public void updateuser(long id, string username, string password) {
    userservice.updateuser(id, username, password);
  }
}

8. 測試

啟動spring boot項目,使用postman進行測試:

① http://localhost:8080/mybatis/getalluser 獲取所有的用戶信息

 Spring Boot整合Mybatis并完成CRUD操作的實現示例

對比數據庫無誤:

 Spring Boot整合Mybatis并完成CRUD操作的實現示例

② http://localhost:8080/mybatis/saveuser?username=啊哈&password=123321 添加一個名字為啊哈,密碼為123321的用戶

Spring Boot整合Mybatis并完成CRUD操作的實現示例

添加成功:

Spring Boot整合Mybatis并完成CRUD操作的實現示例

③ http://localhost:8080/mybatis/deleteuserbyid?id=6 刪除id為6的用戶

Spring Boot整合Mybatis并完成CRUD操作的實現示例

刪除成功:

 Spring Boot整合Mybatis并完成CRUD操作的實現示例

④ http://localhost:8080/mybatis/updateuser?id=7&username=三只松鼠&password=three 設置id為7的用戶的用戶名和密碼

Spring Boot整合Mybatis并完成CRUD操作的實現示例

設置成功:

 Spring Boot整合Mybatis并完成CRUD操作的實現示例

總結

許多事情總是看起來簡單做起來難,看著網上的spring boot整合教程覺得太簡單了,自己動手實踐的過程中依然會發現有一些需要注意的細節。

完整代碼:github地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/sgh1023/p/10134110.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99精品热线在线观看免费视频 | 久久亚洲网站 | 奇米影视77777 | 日本三级香港三级久久99 | 五月婷婷丁香色 | 国产精品免费看久久久香蕉 | 香蕉草莓视频 | 黄动漫车车好快的车车双女主 | 男生同性啪视频在线观看 | 欧美影院天天5g天天爽 | 亚洲精品第三页 | 99久久免费看国产精品 | 被强上后我成瘾了小说 | 日本精品一区二区在线播放 | 九九热在线视频观看这里只有精品 | 天天综合色天天综合 | 国内精品国语自产拍在线观看55 | 国产在线麻豆波多野结衣 | 国产精品短视频 | 国产午夜亚洲精品不卡 | 日本人添下面的全过程 | a黄色 | 高清一区 | 精品一区久久 | 亚洲色图.com | 国产情侣啪啪 | 男人和女人日比 | 欧美一区二区三区免费观看视频 | 亚洲性网 | 免费一看一级欧美 | 无码中文字幕热热久久 | 亚洲天堂2013 | 60岁了天天要小伙子 | 亚洲视频在线一区二区 | 视频一区久久 | 国产黄频| 91亚洲精品久久91综合 | 狠狠插入 | 含羞草传媒一天免费看下 | 国产成人在线影院 | 国产伦精品一区二区三区免费迷 |