jdbc框架3-动态编写sql语句

我们在jdbc框架-应用程序分层中介绍了JDBC框架的分层,我们掌握了在XxxDaoImpl实现类中添加Dog类的方法,那么通过同样的方式,我们也可以添加List集合,代码如下:

XxxDao接口-添加方法

public interface DogDao {
    Integer saveDog(Dog dog);
    Integer saveDog(List<Dog> dogs);
    Integer updateDog(Dog dog);
    Integer updateDog(List<Dog> dogs);
    Integer delById(Integer id);
    Integer delById(List<Integer> id);
}

XxxDaoImpl实现类-添加单条数据

public class DogDaoImpl extends BaseDao implements DogDao{
    // 新增宠物信息
    public Integer saveDog(Dog dog) {
        String sql = "insert into dog(name,health,love,strain,lytm) values(?,?,?,?,now())";
        int num = super.executeUpdate(sql, dog.getName(), dog.getHealth(), dog.getLove(), dog.getStrain());
        if(num>0){
            System.out.println("修改成功");
        }
        return num;
    }

    // 修改宠物信息
    public Integer updateDog(Dog dog) {
        String sql = "update dog set name=?, health=?, love=?,strain=? where id=?";
        int num = super.executeUpdate(sql, dog.getName(), dog.getHealth(), dog.getLove(), dog.getStrain(), dog.getId());
        if(num>0){
            System.out.println("修改成功");
        }
        return num;
    }
    
    // 根据id删除宠物信息
    public Integer delById(Integer id) {
        String sql = "delete from dog where id=?";
        int num = super.executeUpdate(sql,id);
        if(num>0){
            System.out.println("id为"+id+"的狗子删除成功");
        }
        return num;
    }
}

XxxDaoImpl实现类-添加List集合

public class DogDaoImpi2 extends BaseDao2<T> implements DogDao{
    // 新增宠物集合信息
    public Integer saveDog(List<Dog> dogs) {
        String sql = "insert into dog(name,health,love,strain,lytm) values";
        for(Dog dog : dogs){
            sql+="('"+dog.getName()+"',"+dog.getHealth()+","+dog.getLove()+",'"+dog.getStrain()+"',now()),";
        }
        sql = sql.substring(0,sql.length()-1);
        System.out.println(sql);

        return super.executeUpdate(sql);
    }

    // 修改宠物集合信息
    public Integer updateDog(List<Dog> dogs) {
    String sql="";
        int num = 0;
        for(Dog dog:dogs){
            sql = "update dog set ";
            if(dog.getName()!=null && dog.getName()!=""){
                sql+="name='"+dog.getName()+"',";
            }
            if(dog.getHealth()!=null){
                sql+="health="+dog.getHealth()+",";
            }
            if(dog.getLove()!=null){
                sql+="love="+dog.getLove()+",";
            }
            if(dog.getStrain()!=null && dog.getStrain()!=""){
                sql+="strain='"+dog.getStrain()+"',";
            }
            sql=sql.substring(0,sql.length()-1) + " where id="+dog.getId()+";";
            System.out.println(sql);
            super.executeUpdate(sql);
            num++;

        }
        return num;
    }

    // 删除宠物集合信息
    public Integer delById(List<Integer> ids) {
        String sql = "delete from dog where id in(";
        for (Integer id :
                ids) {
            sql+=id.toString()+",";
        }
        sql = sql.substring(0,sql.length()-1);
        sql +=")";
        System.out.println(sql);
        return super.executeUpdate(sql);
    }
}

Test测试类

// 批量新增dog
    public void testsaveListDog2(){
        DogDao dogDao = new DogDaoImpl2();
        List<Dog> dogs = new ArrayList<>();
        Dog dog1 = new Dog("a1",20,67,"哈士奇");
        Dog dog2 = new Dog("a2",24,21,"腊肠");
        Dog dog3 = new Dog("a3",32,80,"巴哥");

        dogs.add(dog1);
        dogs.add(dog2);
        dogs.add(dog3);
        System.out.println(dogDao.saveDog(dogs));
    }
// 批量修改dog信息
    public void testupdateListDog2(){
        DogDao dogDao = new DogDaoImpl2();
        List<Dog> dogs = new ArrayList<>();
        Dog dog1 = new Dog(16,"一一",20,67,"哈士奇");
        Dog dog2 = new Dog(17,"二二",24,21,"腊肠");
        Dog dog3 = new Dog(18,"三三",32,80,"巴哥");
        Dog dog4 = new Dog(19,"四四",58,17,"雪纳瑞");
        dogs.add(dog1);
        dogs.add(dog2);
        dogs.add(dog3);
        dogs.add(dog4);
        System.out.println(dogDao.updateDog(dogs));
    }
// 批量删除dog信息
    public void testDeleteListDog2(){
        DogDao dogDao = new DogDaoImpl2();
        List<Integer> dogsID=new ArrayList<>();
        dogsID.add(25);
        dogsID.add(26);
        dogDao.delById(dogsID);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值