Spring JDBCTemplate 增删查功能 (简单易懂)

需要的外部jar包:

mysql-connector-java
druid

配置druid

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>

  

配置JDBCTemplate对象,注入DataSource

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类,在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~

 

posted @   MineLSG  阅读(873)  评论(0编辑  收藏  举报
编辑推荐:
· 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代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示