SpringBoot用JdbcTemplates操作Mysql實例代碼詳解
覺得有幫助或需要源碼請點贊關(guān)注收藏后評論區(qū)留言或者私信
JDBC模板是Spring對數(shù)據(jù)庫的操作再JDBC基礎(chǔ)上做了封裝,建立了一個JDBC存取框架,在Spring Boot應(yīng)用中,如果使用JdbcTemplate操作數(shù)據(jù)庫,那么只需要在pom.xml文件中添加spring-boot-starter-jdbc模塊,即可通過@Autowired注解依賴注入JdbcTemplate對象,然后調(diào)用JdbcTemplate提供的方法操作數(shù)據(jù)庫
下面通過實例講解如何在Spring Boot應(yīng)用中使用JdbcTemplate操作數(shù)據(jù)庫
1、創(chuàng)建Spring Boot Web應(yīng)用
此處不再贅述 詳情可參考我這篇構(gòu)建Spring Boot應(yīng)用
2、修改pom.xml文件
在文件中添加MYSQL連接器和spring-boot-starter-jdbc模塊 具體代碼如下
<?xml version="1.0" encoding="UTF-8"?> -<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"> <modelVersion>4.0.0</modelVersion> -<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.ch</groupId> <artifactId>ch6_5</artifactId> <version>0.0.1-SNAPSHOT</version> <name>ch6_5</name> <description>Demo project for Spring Boot</description> -<properties> <java.version>11</java.version> </properties> -<dependencies> -<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 添加MySQL依賴 --> -<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> <!-- MySQL8.x時,請使用8.x的連接器 --> </dependency> <!-- 添加jdbc依賴 --> -<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> -<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> -<build> -<plugins> -<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
3、設(shè)置Web應(yīng)用的上下文路徑以及數(shù)據(jù)源配置信息
在application.properties文件中配置如下內(nèi)容
server.servlet.context-path=/ch6_5
###
##數(shù)據(jù)源信息配置
###
#數(shù)據(jù)庫地址
spring.datasource.url=jdbc:mysql://localhost:3306/springbootjpa?characterEncoding=utf8
#數(shù)據(jù)庫MySQL為8.x時,url為jdbc:mysql://localhost:3306/springbootjpa?useSSL=false&serverTimezone=Asia/Beijing&characterEncoding=utf-8
#數(shù)據(jù)庫用戶名
spring.datasource.username=root
#數(shù)據(jù)庫密碼
spring.datasource.password=root
#數(shù)據(jù)庫驅(qū)動
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#數(shù)據(jù)庫MySQL為8.x時,驅(qū)動類為com.mysql.cj.jdbc.Driver
spring.jackson.serialization.indent-output=true
#讓控制器輸出的JSON字符串格式更美觀
4、創(chuàng)建實體類
創(chuàng)建名為com.ch.ch6_5.entity的包 并在該包中出啊關(guān)鍵MyUser實體類 代碼如下
package com.ch.ch6_5.entity; public class MyUser { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer 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; } }
5、創(chuàng)建數(shù)據(jù)訪問層
創(chuàng)建名為com.ch.ch6_5.repository的包 并創(chuàng)建接口和其實現(xiàn)類
接口代碼如下
package com.ch.ch6_5.repository; import java.util.List; import com.ch.ch6_5.entity.MyUser; public interface MyUserRepository { public int saveUser(MyUser myUser); public int deleteUser(Integer id); public int updateUser(MyUser myUser); public List<MyUser> findAll(); public MyUser findUserById(Integer id); }
實現(xiàn)類代碼如下
package com.ch.ch6_5.repository; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import com.ch.ch6_5.entity.MyUser; @Repository public class MyUserRepositoryImpl implements MyUserRepository{ @Autowired private JdbcTemplate jdbcTemplate; @Override public int saveUser(MyUser myUser) { String sql = "insert into user (username, password) values (?,?)"; Object args[] = { myUser.getUsername(), myUser.getPassword() }; return jdbcTemplate.update(sql, args); } @Override public int deleteUser(Integer id) { String sql = "delete from user where id = ? "; Object args[] = { id }; return jdbcTemplate.update(sql, args); } @Override public int updateUser(MyUser myUser) { String sql = "update user set username = ?, password = ? where id = ? "; Object args[] = { myUser.getUsername(), myUser.getPassword(), myUser.getId() }; return jdbcTemplate.update(sql, args);
6、創(chuàng)建業(yè)務(wù)層
創(chuàng)建名為com.ch.ch6_5.service的包 并創(chuàng)建接口和實現(xiàn)類
接口代碼如下
package com.ch.ch6_5.service; import java.util.List; import com.ch.ch6_5.entity.MyUser; public interface MyUserService { public int saveUser(MyUser myUser); public int deleteUser(Integer id); public int updateUser(MyUser myUser); public List<MyUser> findAll(); public MyUser findUserById(Integer id); }
實現(xiàn)類代碼如下
package com.ch.ch6_5.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ch.ch6_5.entity.MyUser; import com.ch.ch6_5.repository.MyUserRepository; @Service public class MyUserServiceImpl implements MyUserService{ @Autowired private MyUserRepository myUserRepository; @Override public int saveUser(MyUser myUser) { public List<MyUser> findAll() { return myUserRepository.findAll(); } @Override public MyUser findUserById(Integer id) { return myUserRepository.findUserById(id); } }
7、創(chuàng)建控制器類
創(chuàng)建名為com.ch.ch6_5.controller的包 并創(chuàng)建MyUserController控制器類
代碼如下
package com.ch.ch6_5.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; im public int updateUser(MyUser myUser) { return myUserService.updateUser(myUser); } @RequestMapping("/findAll") public List<MyUser> findAll(){ return myUserService.findAll(); } @RequestMapping("/findUserById") public MyUser findUserById(Integer id) { return myUserService.findUserById(id); } }
接下來運行Ch65Application主類然后訪問http://localhost:8080/ch6_5即可
到此這篇關(guān)于SpringBoot用JdbcTemplates操作Mysql實例代碼詳解的文章就介紹到這了,更多相關(guān)JdbcTemplates操作Mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring JdbcTemplate執(zhí)行數(shù)據(jù)庫操作詳解
- SpringBoot整合JdbcTemplate的示例代碼
- Spring?Boot整合持久層之JdbcTemplate多數(shù)據(jù)源
- Spring Boot 整合持久層之JdbcTemplate
- Spring操作JdbcTemplate數(shù)據(jù)庫的方法學(xué)習(xí)
- Spring學(xué)習(xí)JdbcTemplate數(shù)據(jù)庫事務(wù)參數(shù)
- Spring框架JdbcTemplate數(shù)據(jù)庫事務(wù)管理完全注解方式
- Spring JdbcTemplate實現(xiàn)添加與查詢方法詳解
相關(guān)文章
Java獲取resources下文件路徑的幾種方法及遇到的問題
這篇文章主要給大家介紹了關(guān)于Java獲取resources下文件路徑的幾種方法及遇到的問題,在Java開發(fā)中經(jīng)常需要讀取項目中resources目錄下的文件或獲取資源路徑,需要的朋友可以參考下2023-12-12SpringBoot實現(xiàn)多端口監(jiān)聽的代碼示例
當(dāng)你需要在同一個Spring Boot應(yīng)用中,通過不同的端口來提供不同的服務(wù)或功能時,就需要實現(xiàn)多端口監(jiān)聽,所以本文給大家介紹了SpringBoot實現(xiàn)多端口監(jiān)聽的方法示例,并有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-09-09SpringBoot集成redis實現(xiàn)共享存儲session
這篇文章主要介紹了SpringBoot集成redis實現(xiàn)共享存儲session的流程步驟,文中通過代碼示例介紹的非常詳細(xì),并總結(jié)了一些常見的錯誤及解決方法,需要的朋友可以參考下2024-03-03關(guān)于LinkedList集合對元素進行增查刪操作
LinkedList集合內(nèi)部包含有兩個Node類型的first和last屬性維護一個雙向循環(huán)鏈表,在鏈表中的每一個元素都使用引用的方式來記住它的前一個元素和后一個元素,從而可以將所有的元素彼此連接起來,需要的朋友可以參考下2023-04-04Java拷貝數(shù)組方法Arrays.copyOf()是地址傳遞的證明實例
今天小編就為大家分享一篇關(guān)于Java拷貝數(shù)組方法Arrays.copyOf()是地址傳遞的證明實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10Java中String和StringBuffer及StringBuilder?有什么區(qū)別
這篇文章主要介紹了Java中String和StringBuffer及StringBuilder?有什么區(qū)別,String?是?Java?語言非常基礎(chǔ)和重要的類,更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容2022-06-06