SpringBoot整合Mybatis注解開發(fā)的實(shí)現(xiàn)代碼
官方文檔:
https://mybatis.org/mybatis-3/zh/getting-started.html
SpringBoot整合Mybatis 引入maven依賴
(IDEA建項(xiàng)目的時(shí)候直接選就可以了)
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency>
配置application.yml文件
server: port: 8144 spring: #redis redis: host: 127.0.0.1 port: 6379 password: 123456 timeout: 3000 datasource: username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/hellomybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
建實(shí)體類、Controller類、Service類 實(shí)體類
package com.example.mybatisDemo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private long id;
private String name;
private String pwd;
}
Controller類
package com.example.mybatisDemo.controller;
import com.example.mybatisDemo.entity.User;
import com.example.mybatisDemo.service.UserService;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
@RequestMapping("api/user")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping()
public List<User> getAllUsers(){
return userService.getUsers();
}
@DeleteMapping("{id}")
public int deleteUser(@PathVariable long id){
return userService.deleteUser(id);
}
@PostMapping
public int saveUser(@RequestBody User user){
return userService.insertUser(user);
}
@PutMapping
public int updateUser(@RequestBody User user){
return userService.updateUser(user);
}
@GetMapping("{id}")
public User getUser(@PathVariable long id){
return userService.getUser(id);
}
}
Service類
package com.example.mybatisDemo.service;
import com.example.mybatisDemo.entity.User;
import com.example.mybatisDemo.repository.UserRepository;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public List<User> getUsers(){
return userRepository.getUsers();
}
public int deleteUser(long id){
return userRepository.deleteUser(id);
}
public User getUser(long id){
return userRepository.getUser(id);
}
public int updateUser(User user){
return userRepository.updateUser(user);
}
public int insertUser(User user){
return userRepository.addUser(user);
}
}
建Repository類
package com.example.mybatisDemo.repository;
import com.example.mybatisDemo.entity.User;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.*;
/**
* Mapper注解能省去以前復(fù)雜的xml配置,直接用注解寫sql語句
* 不添加Repository注解依賴注入會(huì)報(bào)錯(cuò)(不影響運(yùn)行),強(qiáng)迫癥還是加上吧
*/
@Mapper
@Repository
public interface UserRepository {
@Select("select * from user")
List<User> getUsers();
@Delete("delete from user where id = #{id}")
int deleteUser(long id);
@Insert("insert into user(id,name,pwd) values (#{id},#{name},#{pwd})")
int addUser(User user);
@Update("update user set name=#{name},pwd=#{pwd} where id = #{id}")
int updateUser(User user);
@Select("select * from user where id = #{id}")
User getUser(long id);
}
然后直接調(diào)用即可
這里有個(gè)問題,使用注解開發(fā)的話sql語句全寫在注解里,那么如果要實(shí)現(xiàn)批量更新插入要怎么寫呢,目前還沒解決,找到辦法再更
到此這篇關(guān)于SpringBoot整合Mybatis注解開發(fā)的實(shí)現(xiàn)代碼的文章就介紹到這了,更多相關(guān)SpringBoot整合Mybatis注解開發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring整合Mybatis 掃描注解創(chuàng)建Bean報(bào)錯(cuò)的解決方案
- springboot整合mybatis-plus基于注解實(shí)現(xiàn)一對(duì)一(一對(duì)多)查詢功能
- Spring Boot整合mybatis使用注解實(shí)現(xiàn)動(dòng)態(tài)Sql、參數(shù)傳遞等常用操作(實(shí)現(xiàn)方法)
- 詳解SpringBoot 快速整合Mybatis(去XML化+注解進(jìn)階)
- Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例
- Spring與Mybatis基于注解整合Redis的方法
- 純注解版spring與mybatis的整合過程
相關(guān)文章
SpringBoot整合Druid實(shí)現(xiàn)SQL監(jiān)控和數(shù)據(jù)庫密碼加密
Druid連接池是阿里巴巴開源的數(shù)據(jù)庫連接池項(xiàng)目,Druid連接池為監(jiān)控而生,內(nèi)置強(qiáng)大的監(jiān)控功能,監(jiān)控特性不影響性能,本文給大家介紹了SpringBoot整合Druid實(shí)現(xiàn)SQL監(jiān)控和數(shù)據(jù)庫密碼加密,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-06-06
Java守護(hù)線程實(shí)例詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在Java中有兩類線程:User Thread(用戶線程)、Daemon Thread(守護(hù)線程) 。下面通過本文給大家分享java守護(hù)線程實(shí)例詳解,需要的朋友參考下吧2017-06-06
Java數(shù)據(jù)結(jié)構(gòu)之雙向鏈表的實(shí)現(xiàn)
相較單鏈表,雙向鏈表除了data與next域,還多了一個(gè)pre域用于表示每個(gè)節(jié)點(diǎn)的前一個(gè)元素。這樣做給雙向鏈表帶來了很多優(yōu)勢。本文主要介紹了雙向鏈表的實(shí)現(xiàn),需要的可以參考一下2022-10-10
MyBatis的mapper.xml文件中入?yún)⒑头祷刂档膶?shí)現(xiàn)
這篇文章主要介紹了MyBatis的mapper.xml文件中入?yún)⒑头祷刂档膶?shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
java實(shí)現(xiàn)字符串匹配求兩個(gè)字符串的最大公共子串
這篇文章主要介紹了java實(shí)現(xiàn)求兩個(gè)字符串最大公共子串的方法,詳細(xì)的描述了兩個(gè)字符串的最大公共子串算法的實(shí)現(xiàn),需要的朋友可以參考下2016-10-10
MyBatis使用自定義TypeHandler轉(zhuǎn)換類型的實(shí)現(xiàn)方法
這篇文章主要介紹了MyBatis使用自定義TypeHandler轉(zhuǎn)換類型的實(shí)現(xiàn)方法,本文介紹使用TypeHandler 實(shí)現(xiàn)日期類型的轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10

