新建Spring工程,使用JdbcTemplate实现对数据库的查询批量添加修改删除(二)

首先请参阅我的关于JdbcTemplate操作数据库的第一篇文章新建Spring工程,用Spring的JdbcTemplate实现对数据库的增删改(小白都能看懂的手把手教程)

①查询数据库表中的记录条数(即一个表目前有多少条数据)
PersonService.java

//查询表中的记录条数
    public void count(){
        personDao.count();
    }

PersonDaoImpl.java

   @Override
    public void count() {
        String sql="select count(*) from information";
        Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
        System.out.println(integer);
    }

PersonTest.java

@Test
    public void testCount(){
    ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
    PersonService personService = context.getBean("personService", PersonService.class);
    personService.count();
}

②查询数据库表返回一个对象,即一整行的数据
PersonService.java

    //查询返回一整行
    public void queryOne(String username){
        personDao.queryOne(username);
    }

PersonDaoImpl.java

    @Override
    public void queryOne(String username) {
        String sql="select * from information where name=?";
        Person person = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Person>(Person.class),username);
        System.out.println(person);//打印对象信息需要在Person类中重写toString 方法
    }

PersonTest.java

@Test
    public void testQueryOne(){
    ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
    PersonService personService = context.getBean("personService", PersonService.class);
    String username="Jerry";
    personService.queryOne(username);
}

结果

信息: {dataSource-1} inited
Person{name='Jerry', sex='male', age='21'}

③查询数据库返回一个集合,即数据库表中的所有数据
PersonService.java

//查询返回一个集合
    public List<Person>queryAll(){
    return personDao.queryAll();
    }

PersonDaoImpl.java

    @Override
    public List<Person> queryAll() {
        String sql="select * from information";
        List<Person>  personList  = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Person>(Person.class));
        return personList;
    }

PersonTest.java

@Test
    public void testQueryAll(){
    ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
    PersonService personService = context.getBean("personService", PersonService.class);
    List<Person> people = personService.queryAll();
    System.out.println(people);
}

结果

信息: {dataSource-1} inited
[Person{name='Tom', sex='female', age='24'}, Person{name='Jerry', sex='male', age='21'}, Person{name='curry', sex='male', age='30'}]

在这里插入图片描述
这是我的数据库中的表,可以看出返回了全部对象,一行即为一个对象

④往数据库中批量添加数据
PersonService.java

//批量添加数据
    public void batchAdd(List<Object[]>batchArgs)
    {
        personDao.batchAdd(batchArgs);
    }

PersonDaoImpl.java

    @Override
    public void batchAdd(List<Object[]> batchArgs) {
        String sql="insert into information values(?,?,?)";
        jdbcTemplate.batchUpdate(sql, batchArgs);
    }

PersonTest.java

@Test
    public void testCount(){
    ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
    PersonService personService = context.getBean("personService", PersonService.class);
    personService.count();
}

结果
在这里插入图片描述
批量插入数据成功

⑤批量修改数据库中的数据
PersonService.java

    //批量修改数据
    public void batchModify(List<Object[]>batchArgs)
    {
        personDao.batchModify(batchArgs);
    }

PersonDaoImpl.java

    @Override
    public void batchModify(List<Object[]> batchArgs) {
        String sql="update information set sex=?,age=?where name=?";
        jdbcTemplate.batchUpdate(sql, batchArgs);
    }

PersonTest.java

    @Test
    public void testBatchModify(){
        ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
        PersonService personService = context.getBean("personService", PersonService.class);
        List<Object[]>batchArgs=new ArrayList<>();
        Object[]o1={"female11","26","Mary"};
        Object[]o2={"male11","28","Peter"};
        Object[]o3={"male11","27","James"};
        batchArgs.add(o1);
        batchArgs.add(o2);
        batchArgs.add(o3);
        personService.batchModify(batchArgs);
    }

结果
在这里插入图片描述
批量修改成功

⑥批量删除数据库数据
PersonService.java

    //批量删除数据
    public void batchDelete(List<Object[]>batchArgs)
    {
        personDao.batchDelete(batchArgs);
    }

PersonDaoImpl.java

   @Override
    public void batchDelete(List<Object[]> batchArgs) {
        String sql="delete from information where name=?";
        jdbcTemplate.batchUpdate(sql, batchArgs);
    }

PersonTest.java

    @Test
    public void testBatchDelete(){
        ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");
        PersonService personService = context.getBean("personService", PersonService.class);
        List<Object[]>batchArgs=new ArrayList<>();
        Object[]o1={"Mary"};
        Object[]o2={"Peter"};
        Object[]o3={"James"};
        batchArgs.add(o1);
        batchArgs.add(o2);
        batchArgs.add(o3);
        personService.batchDelete(batchArgs);
    }

结果
在这里插入图片描述
批量删除成功
附工程源代码
链接:https://pan.baidu.com/s/1A96OquDHIO8a3Cpd7c8Jrg
提取码:2br2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值