Spring JDBCTemplate 增删查功能 (简单易懂)
1 2 3 4 5 6 7 | <!--配置数据库连接池--> < bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> < property name="url" value="jdbc:mysql://localhost:3306/spring"/> < property name="username" value="root"/> < property name="password" value="root"/> < property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> </ bean > |
1 | <!--JDBCTemplate对象--> < br > < bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">< br > <!--注入DataSource--> < br > < property name="dataSource" ref="dataSource"/>< br > </ bean > |
创建server类,创建dao类,在dao注入JDBCTemplate对象
开启组件扫描后
Server类创建对象并且注入Dao
1 2 3 4 5 6 | @Service public class BookService { //注入dao @Autowired private BookDao bookDao; } |
Dao中注入JDBTemplate对象,用来进行数据库的操作
1 2 3 4 5 6 | @Repository public class BookDaoImpl implements BookDao { //注入jdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; } |
使用创建好的JDBCTemplate进行数据操作
创建一个数据库,在数据库中创建一个表:
1 2 3 4 5 6 | create table t_book ( user_id int not null primary key auto_increment, username varchar (100) not null , ustatus varchar (50) not null ) |
对应数据库表,创建一个实体类
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 | public class Book { private String userId; private String username; private String ustatus; public String getUserId() { return userId; } public String getUsername() { return username; } public String getUstatus() { return ustatus; } public void setUserId(String userId) { this .userId = userId; } public void setUsername(String username) { this .username = username; } public void setUstatus(String ustatus) { this .ustatus = ustatus; } } |
编写Service和dao,在dao进行数据库的添加操作
调用jdbcTemplate对象里面的update()方法来进行数据库的添加操作
有两个参数,是一个参数SQL语句,第二个参是可变参数(SQL语句中的值)
实现数据的添加:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | @Repository public class BookDaoImpl implements BookDao { //注入jdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; @Override public void add(Book book) { //创建SQL语句 String sql = "insert into t_book(username,ustatus) values(?,?)" ; //调用方法实现update.(sql,args) int update = jdbcTemplate.update(sql, book.getUsername(), book.getUstatus()); System.out.println(update); } } |
编写一个测试类(测试增加数据)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class testBook { @Test public void testJdbcTemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext( "bean.xml" ); BookService bookService = (BookService)context.getBean( "bookService" ); //创建book对象 Book book = new Book(); //传入对象中的值 book.setUsername( "测试用户名" ); book.setUstatus( "成功" ); //调用增加方法 bookService.addBook(book); } } |
测试结果(数据写入成功~)
1 2 3 | 七月 13 , 2020 4 : 35 : 17 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info 信息: {dataSource- 1 } inited 1 |
查询数据库表可看到
1 | select * from t_book |
数据库的添加操作(完成~)
实现数据的修改
创建修改方法
1 2 3 4 5 6 | @Override public void update(Book book) { String SQL = "update t_book set username=?,ustatus=? where user_id=?" ; int update = jdbcTemplate.update(SQL, book.getUsername(), book.getUstatus(), book.getUserId()); System.out.println(update); } |
编写一个测试类(测试修改数据)
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class testBook { @Test public void testJdbcTemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext( "bean.xml" ); BookService bookService = (BookService)context.getBean( "bookService" ); Book book = new Book(); book.setUserId( "1" ); book.setUsername( "修改测试" ); book.setUstatus( "yes~" ); //调用修改方法 bookService.updateBook(book); } } |
测试结果(数据修改成功~)
1 2 3 | 七月 13 , 2020 4 : 47 : 24 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info 信息: {dataSource- 1 } inited 1 |
查询数据库表可看到
1 | select * from t_book |
数据库的修改操作(完成~)
实现数据的删除
创建删除方法
1 2 3 4 5 6 | @Override public void delete(String id) { String SQL = "delete from t_book where user_id=?" ; int update = jdbcTemplate.update(SQL, id); System.out.println(update); } |
编写一个测试类(测试删除数据)
1 2 3 4 5 6 7 8 | public class testBook { @Test public void testJdbcTemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext( "bean.xml" ); BookService bookService = (BookService)context.getBean( "bookService" ); bookService.deleteBook( "1" ); } } |
测试结果(数据删除成功~)
1 2 3 | 七月 13 , 2020 4 : 56 : 58 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info 信息: {dataSource- 1 } inited 1 |
查询数据库表可看到
1 | select * from t_book |
数据库的删除操作(完成~)
以上为使用jdbctemplate进行数据库的增删改功能~
以下为全部源码
Bean.xml配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <? xml version="1.0" encoding="UTF-8"?> < beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--组件扫描服务开启--> < context:component-scan base-package="com.minelsg"/> <!--数据库连接池--> < bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> < property name="url" value="jdbc:mysql://localhost:3306/spring"/> < property name="username" value="root"/> < property name="password" value="rzt123123"/> < property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> </ bean > <!--JDBC Template对象--> < bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!--注入DataSource--> < property name="dataSource" ref="dataSource"/> </ bean > </ beans > |
dao层文件
接口
1 2 3 4 5 6 7 8 | public interface BookDao { //添加的方法 void add(Book book); void update(Book book); void delete(String id); } |
实现类
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 | @Repository public class BookDaoImpl implements BookDao { //注入jdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; //增加操作 @Override public void add(Book book) { //创建SQL语句 String sql = "insert into t_book(username,ustatus) values(?,?)" ; //调用方法实现update.(sql,args) int update = jdbcTemplate.update(sql, book.getUsername(), book.getUstatus()); System.out.println(update); } //修改操作 @Override public void update(Book book) { String SQL = "update t_book set username=?,ustatus=? where user_id=?" ; int update = jdbcTemplate.update(SQL, book.getUsername(), book.getUstatus(), book.getUserId()); System.out.println(update); } //删除操作 @Override public void delete(String id) { String SQL = "delete from t_book where user_id=?" ; int update = jdbcTemplate.update(SQL, id); System.out.println(update); } } |
entity层文件
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 | public class Book { private String userId; private String username; private String ustatus; public String getUserId() { return userId; } public String getUsername() { return username; } public String getUstatus() { return ustatus; } public void setUserId(String userId) { this .userId = userId; } public void setUsername(String username) { this .username = username; } public void setUstatus(String ustatus) { this .ustatus = ustatus; } } |
Server层文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @Service public class BookService { //注入dao @Autowired private BookDao bookDao; //添加的方法 public void addBook(Book book){ bookDao.add(book); } //修改的方法 public void updateBook(Book book){ bookDao.update(book); } //删除的方法 public void deleteBook(String id){ bookDao.delete(id); } } |
测试类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class testBook { @Test public void testJdbcTemplate(){ ApplicationContext context = new ClassPathXmlApplicationContext( "bean.xml" ); BookService bookService = (BookService)context.getBean( "bookService" ); Book book = new Book(); //book.setUsername("测试用户名"); //book.setUstatus("成功"); //bookService.addBook(book); //book.setUserId("1"); //book.setUsername("修改测试"); //book.setUstatus("yes~"); bookService.deleteBook( "1" ); } } |
Done~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!