3. mysql的注解驅動的三種方式_上手spring boot項目(三)之spring boot整合mybatis進行增刪改查的三種方式。...

 2023-11-30 阅读 19 评论 0

摘要:1.引入依賴org.springframework.bootspring-boot-starter-weborg.mybatis.spring.bootmybatis-spring-boot-starter2.1.0mysqlmysql-connector-javaruntime2.entity實體類@TableName(value = "tb_user")//使用mybatis-plus時需要添加,與數據庫中的表建

1.引入依賴

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.0

mysql

mysql-connector-java

runtime

2.entity實體類

@TableName(value = "tb_user")//使用mybatis-plus時需要添加,與數據庫中的表建立關系

public class SysUser implementsSerializable {

@TableId(type = IdType.AUTO)//使用mybatis-plus時需要添加,主鍵生成策略

privateLong id;

privateString username;

privateString password;

privateString salt;

privateString avatar;

privateString introduce;

privateString remark;

//省略get,set方法

}

3.創建application.properties配置文件

#DB Configuration數據庫信息:

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql:///test

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

#spring集成Mybatis環境

#pojo別名掃描包

mybatis.type-aliases-package=cn.zhq.system.entity

#加載Mybatis映射文件

mybatis.mapper-locations=classpath:mapper/*Mapper.xml

# 打印sql

#打印sql到控制臺

logging.level.cn.zhq.system.mapper=debug

mybatis.type-aliases-package是實體所在包的位置,mybatis.mapper-locations是配置文件所在的位置。初次使用的時候最好加上打印sql的配置,如果出現錯誤的話,這樣容易找出錯誤原因。

4.創建UserMapper類

@Mapper

public interfaceUserMapper {

}

5.在spring boot的application加上注解

@EntityScan("cn.zhq.system.entity")//填寫 entity類所在包的位置。

加上這個注解后,springboot就可以掃描能實體類。

6.進行增刪改查

6.1 使用mapper.xml進行增刪改查

6.1.1 編寫UserMapper類中的方法

/**

* 根據Name查詢用戶數據

*

* @param username

* @return

*/

SysUser findByName(String username);

6.1.2? 在resources的mapper目錄下創建UserMapper.xml配置文件

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

select * from tb_user where username = #{username}

使用select標簽執行查詢語句,使用update標簽進行 增,刪,改操作。其中 id是UserMapper類中方法的名稱,resultType是返回值的類型,parameterType是接收的參數類型。

6.2 使用注解進行增刪改查

/**

* 更新用戶名

* @param username

*/@Update("update tb_user set username= #{username} where id = #{id}")

void updateByAvatar(String username,Long id);

使用@Update注解后,就無需再編寫UserMapper配置文件了,同理@Updae可以進行增刪改操作。此外使用@Select進行查詢。當進行一對多,多對多關系的查詢時,還可以使用@Results注解指定返回結果的數據類型,這里就不細說了。

以上兩種方式各有利弊,使用配置文件編寫sql語句好處是耦合度低但過于麻煩,使用注解的方式相對于配置文件來說比較簡單,但是耦合度高。如果是簡單語句,建議是使用注解,如果是復雜語句,使用配置文件的方式。具體使用哪種方式,可以視實際情況而定。

6.3 使用mybatis-plus進行增刪改查

mybatis-plus類似于spring data jpa , 內置查詢,更新,刪除,插入語句,使我們無需再寫那些簡單的sql語句。

6.3.1 引入依賴

com.baomidou

mybatis-plus-boot-starter

3.2.0

6.3.2?application.yml配置文件

# mybatis-plus

mybatis-plus:

type-aliases-package: cn.zhq.system.entity

mapper-locations: classpath:mapper/*.xml

configuration:

jdbc-type-for-null: null

global-config:

banner: false

type-aliases-package填寫Entity實體類所在包的位置。mapper-locations:填寫映射文件所在的位置,如果不寫的話,在你的resources下的mapper配置文件會報錯。

6.3.3?相關service,serviceImpl,mapper類

service:

public interface UserService extends IService{

/**

* 更新

*

* @param sysUser

*/

voidupdate(SysUser sysUser);

}

serviceImpl:

@Service

public class UserServiceImpl extends ServiceImpl implementsUserService {

@Autowired

privateUserMapper userMapper;

@Override

@Transactional

public voidupdate(SysUser sysUser) {

userMapper.updateById(sysUser);

}

}

mapper:

@Mapper

public interface UserMapper extends BaseMapper{

}

雖然我們在UserMapper中沒有定義任何方法,但是mybatisPlus集成了很多方法可供我們使用。

執行后,打印的sql語句結果如下

a49099ce2de77d84b126bd6ae2e8f532.png

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/186374.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息