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

spring——JdbcTemplate

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

spring——JdbcTemplate

JdbcTemplate操作数据库 概述和准备
  1. 什么是JdbcTemplate

    Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作

  2. 准备工作

    引入相关jar包

在spring配置文件中配置数据库连接池


    
    
    
    

配置JdbcTemplate对象,注入DataSource


	

创建service类,创建dao类,在dao注入JdbcTemplate对象

public interface bookDao {
}

@Repository
public class bookDaoImpl implements bookDao{
    //注入JdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
}

@Service
public class service {
    //注入dao
    @Autowired
    private bookDao bookDao;
}
添加记录
  1. 对相应数据库表创建实体类

public class book {
    private int id;
    private String name;
    private int status;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
}
  1. 编写service和dao

    在dao进行操作

    update(String sql,Object…args)

    参数1:sql语句

    参数2:可变参数,设置sql语句值

    @Service
    public class service {
        //注入dao
        @Autowired
        private bookDao bookDao;
        //添加新方法
        public void bookAdd(book book){
            bookDao.bookAdd(book);
        }
    }
    
    public interface bookDao {
        public void bookAdd(book book);
    }
    
    @Repository
    public class bookDaoImpl implements bookDao{
        //注入JdbcTemplate
        @Autowired
        private JdbcTemplate jdbcTemplate;
        @Override
        public void bookAdd(book book) {
            //创建sql语句
            String sql="insert into book values(?,?,?)";
            Object[] args={book.getId(),book.getName(),book.getStatus()};
            //调用方法实现
            int update=jdbcTemplate.update(sql,args);
            System.out.println(update);
        }
    }
    
  2. 测试类

public class test1 {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("src/jdbcTemplate/bean1.xml");
        service bookService=context.getBean("service",service.class);
        book book1=new book();
        book1.setId(2);
        book1.setName("MySql");
        book1.setStatus(1);
        bookService.bookAdd(book1);
    }
}

结果

修改和删除记录

修改和删除操作一样,唯一改变的地方为sql语句的改变以及参数值的改变

//bookDaoImpl
@Override
    public void updateBook(book book) {
        String sql="update book set name=?,status=? where id=?";
        Object[] args={book.getName(),book.getStatus(),book.getId()};
        //调用方法实现
        int update=jdbcTemplate.update(sql,args);
        System.out.println(update);
    }

    @Override
    public void deleteBook(String id) {
        String sql="delete from book where id=?";
        Object[] args={id};
        //调用方法实现
        int update=jdbcTemplate.update(sql,args);
        System.out.println(update);
    }
查询
  1. 查询返回某个值

    场景:查询数据库有多少条记录

    实现

    //service    
    //查询返回某个值
        public int findCount(){
            return bookDao.selectCount();
        }
    //bookDao
    int selectCount();
    
    //bookDaoImpl
        @Override
        public int selectCount() {
            String sql="select count(*) from book";
            int count=jdbcTemplate.queryForObject(sql,Integer.class);
            return count;
        }
    

    调用的函数jdbcTemplate.queryForObject(String sql, class requiredType);

    参数1:sql语句

    参数2:返回类型class

  2. 查询返回对象

    场景:查询图书详情

    实现

    //service 
    //查询返回对象
        public book findOne(String id){
            return bookDao.findObj(id);
        }
    //bookDao
    book findObj(String id);
    //bookDaoImpl
     @Override
    public book findObj(String id) {
        String sql="select * from book where id=?";
        return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper(book.class),"2");
        }
    
    

    调用函数jdbcTemplate.queryForObject(String sql,RowMapper rowMapper,Object…args);

    参数1:sql语句

    参数2:RowMapper是接口,返回不同类型数据,使用这个接口里面实现类完成数据封装

    参数3:sql语句值

  3. 查询返回集合

    场景:查询图书列表

    实现

    //service    
    //查询返回集合
        public List findList(){
            return bookDao.findAll();
        }
    
    //bookDao
    List findAll();
    //bookDaoImpl
    @Override
    public List findAll() {
        String sql="select * from book";
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper(book.class));
        }
    

    调用函数jdbcTemplate.query(String sql,RowMapper rowMapper,Object…args)

    参数同2,参数3可省略

  4. 测试类

    public class test1 {
        public static void main(String[] args) {
            ApplicationContext context=new ClassPathXmlApplicationContext("src/jdbcTemplate/bean1.xml");
            service bookService=context.getBean("service",service.class);
    
    //        int count=bookService.findCount();
    //        System.out.println(count);
    
    //        System.out.println(bookService.findOne("2"));
            System.out.println(bookService.findList());
        }
    
批量操作
  1. 批量操作

    操作表里的多条数据

  2. 实现过程

    //service
    //批量添加
        public void batchAdd(List batchArgs){
            bookDao.batchAdd(batchArgs);
        }
        //批量修改
        public void batchUpdate(List batchArgs){
            bookDao.batchUpdateBook(batchArgs);
        }
        //批量删除
        public void batchDelete(List batchArgs){
            bookDao.batchDeleteBook(batchArgs);
        }
    //bookDao
    	void batchAdd(List batchArgs);
        void batchUpdateBook(List batchArgs);
    
        void batchDeleteBook(List batchArgs);
    //bookDaoImpl
        @Override
        public void batchAdd(List batchArgs) {
            String sql="insert into book values(?,?,?)";
            int arr[]=jdbcTemplate.batchUpdate(sql,batchArgs);
            System.out.println(Arrays.toString(arr));
        }
        @Override
        public void batchUpdateBook(List batchArgs) {
            String sql="update book set name=?,status=? where id=?";
            jdbcTemplate.batchUpdate(sql,batchArgs);
        }
    
        @Override
        public void batchDeleteBook(List batchArgs) {
            String sql="delete from book where id=?";
            int[] ints=jdbcTemplate.batchUpdate(sql,batchArgs);
            System.out.println(ints);
        }
    

    调用函数jdbcTemplate.batchUpdate(String sql,java.util.List batchArgs);

    参数1:sql语句

    参数2:数据集合

  3. 测试类

        public static void main(String[] args) {
            ApplicationContext context=new ClassPathXmlApplicationContext("src/jdbcTemplate/bean1.xml");
            service bookService=context.getBean("service",service.class);
    //        book book1=new book();
    //        book1.setId(2);
    //        book1.setName("C++");
    //        book1.setStatus(2);
    //        bookService.deleteBook("2");
    
    //        int count=bookService.findCount();
    //        System.out.println(count);
    
    //        System.out.println(bookService.findOne("2"));
    //        System.out.println(bookService.findList());
            //批量增加
    //        List batchArgs=new ArrayList<>();
    //        Object[] o1={"3","Python","2"};
    //        Object[] o2={"4","C#","2"};
    //        Object[] o3={"5","PHP","2"};
    //        batchArgs.add(o1);
    //        batchArgs.add(o2);
    //        batchArgs.add(o3);
    //        bookService.batchAdd(batchArgs);
            //批量修改
    //        List batchArgs=new ArrayList<>();
    //        Object[] o1={"Python32","2","3"};
    //        Object[] o2={"C#324","2","4"};
    //        Object[] o3={"PHP452","2","5",};
    //        batchArgs.add(o1);
    //        batchArgs.add(o2);
    //        batchArgs.add(o3);
    //        bookService.batchUpdate(batchArgs);
            //批量删除
            List batchArgs=new ArrayList<>();
            Object[] o1={"3"};
            Object[] o2={"4"};
            batchArgs.add(o1);
            batchArgs.add(o2);
            bookService.batchDelete(batchArgs);
        }
    }
    

    batchArgs.add(o2);
    // batchArgs.add(o3);
    // bookService.batchUpdate(batchArgs);
    //批量删除
    List batchArgs=new ArrayList<>();
    Object[] o1={“3”};
    Object[] o2={“4”};
    batchArgs.add(o1);
    batchArgs.add(o2);
    bookService.batchDelete(batchArgs);
    }
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010271.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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