栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring5-09-jdbcTemplate

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring5-09-jdbcTemplate

文章目录
  • 一、什么是JdbcTemplate
  • 二、jdbcTemplate 操作数据库(添加)
  • 三、jdbcTemplate 操作数据库(修改和删除)
  • 四、jdbcTemplate 操作数据库(查询返回某个值)
  • 五、jdbcTemplate 操作数据库(查询返回对象)
  • 六、jdbcTemplate 操作数据库(查询返回集合)
  • 七、JdbcTemplate操作数据库(批量添加操作)
  • 八、JdbcTemplate操作数据库(批量删除、修改)

一、什么是JdbcTemplate

Spring框架对JDBC进行封装,使用jdbcTemplate方便对数据库操作
(1)准备工作(引入相关jar包)



    4.0.0

    groupId
    Spring5_jdbcTemplate
    1.0-SNAPSHOT

    
    
        org.springframework
        spring-context
        5.3.15
    

    
    
        org.springframework
        spring-jdbc
        5.3.15
    

    
    
        org.springframework
        spring-orm
        5.2.5.RELEASE
    

    
    
        com.alibaba
        druid
        1.2.8
    

    
    
        mysql
        mysql-connector-java
        8.0.26
    

    
    
        org.springframework
        spring-tx
        5.3.15
    

    

(2)spring配置文件中配置数据库连接池

    
    
        
        
        
        
    

(3)配置JdbcTemplate对象,注入DataSource

    
    
        
        
    

(4)创建service类,创建dao、dao实现类。在实现类里注入jdbcTemplate

二、jdbcTemplate 操作数据库(添加)

jdbcTemplate 操作数据库(添加)
(1)对应数据库的实体类

package com.yzh.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String name;
    private String pwd;
}

(2)编写service和dao

(3)调用JdbcTemplate对象里的update方法实现添加操作

update(String sql, Object args)

有两个参数,一个是sql语句,第二个参数是可变参数

 public void addBook(Book book) {
        //创建sql语句
        String sql = "insert into user values(?,?)";
        //创建sql语句参数
        Object[] args = {book.getName(),book.getPwd()};
        int update = jdbcTemplate.update(sql,args);
        System.out.println(update);
    }

(4)测试

import com.yzh.entity.Book;
import com.yzh.service.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testDemo {
    @Test
    public void TestJDBC(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = context.getBean("bookService", BookService.class);
        Book book = new Book("乐乐","999999");
        bookService.addBook(book);
    }


}

三、jdbcTemplate 操作数据库(修改和删除)

BookDao

    public void updateBook(Book book);
    public void deleteBook(String name);

BookDaoImpl

public void updateBook(Book book) {
        String sql = "update user set pwd=? where name=?";
        Object[] args = {book.getPwd(),book.getName()};
        int update = jdbcTemplate.update(sql,args);
        System.out.println(update);
    }

    public void deleteBook(String name) {
        String sql = "delete from user where name=?";
        int update = jdbcTemplate.update(sql,name);
        System.out.println(update);
    }

BookService

 public void updateBook(Book book){
        bookDao.updateBook(book);
    }

    public void deleteBook(String name){
        bookDao.deleteBook(name);
    }

测试类

@Test
    public void testUpdate(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = context.getBean("bookService", BookService.class);
        Book book = new Book("西瓜","888888");
        bookService.updateBook(book);
    }

    @Test
    public void testDelete(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = context.getBean("bookService", BookService.class);
        bookService.deleteBook("西瓜");
    }
四、jdbcTemplate 操作数据库(查询返回某个值)

(1)查询表里有多少条记录,返回某个值

(2)使用iJdbcTemplate实现查询返回某个值的代码

queryForObject(String sql,Class requiredType )

两个参数,第一个参数,sql语句,第二个参数,返回类型Class

// 查询表记录数
    public Integer selectCount() {
        String sql = "select count(*) from user ";
        int Count = jdbcTemplate.queryForObject(sql,Integer.class);
        return Count;
    }
五、jdbcTemplate 操作数据库(查询返回对象)

JdbcTemplate实现查询返回对象

queryForObject(String sql, RowMapper rowMapper, Object… args)

第一个参数,sql语句,
第二个参数,RowMapper,是接口,返回不同类型数据,使用这个接口里面实现完成数据封装
第三个参数,sql语句值

public Book findBookInfo(String name) {
        String sql = "select * from user where name=?";
        Book book = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper(Book.class),name);
        return book;
    }
六、jdbcTemplate 操作数据库(查询返回集合)

JdbcTemplate实现查询返回集合

query(String sql, RowMapper rowMapper, Object… args )

第一个参数:sql语句
第二个参数:RowMapper,是接口,返回不同类型数据,使用这个接口里面实现完成数据封装
第三个参数:sql语句值

    public List findAllBook() {
        String sql = "select * from user ";
        List bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper(Book.class));
        return bookList;
    }
七、JdbcTemplate操作数据库(批量添加操作)

JdbcTemplate实现批量操作

batchUpdate(String sql,List batchArgs)

第一个参数:sql语句
第二个参数:List集合

 public void batchAddBook(List batchArgs) {
        String sql = "insert into user values(?,?)";
        int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
        System.out.println(Arrays.toString(ints));
    }
八、JdbcTemplate操作数据库(批量删除、修改)
// 批量修改
    public void batchUpdateBook(List batchArgs) {
        String sql = "update user set name=? where pwd=?";
        int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
        System.out.println(Arrays.toString(ints));
    }

    // 批量删除
    public void batchDeleteBook(List batchArgs) {
        String sql = "delete from user where name=?";
        int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
        System.out.println(Arrays.toString(ints));
    }
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号