druid连接池的使用

今天很开心,,,用德鲁伊把增删改查做出来嘞,果然需要多练,并且总结。

首先,看一下基本的结构 

                      

解释:我这里用到一个表Course 在condao包里(因为之前在这个类里用到过,懒得再写了),connpool包下有一个接口CourseDao和一个类Druid(我设计的不好,因为对包的分类不明白,其实应该放在test包下),connpool包下又创建了一个包,其下有一个类CourseDaoImpl,来实现CourseDao接口。

简单的包结构

代码展示:

Course类  (这个要与数据库对应,才能操作)

package com.august.condao;

public class Course {
    private String cno;
    private String cname;
    private int credit;
    private int semester;

    public Course() {
    }

    public Course(String cno, String cname, int credit, int semester) {
        this.cno = cno;
        this.cname = cname;
        this.credit = credit;
        this.semester = semester;
    }

    public String getCno() {
        return cno;
    }

    public void setCno(String cno) {
        this.cno = cno;
    }

    public String getCname() {
        return cname;
    }

    public void setCname(String cname) {
        this.cname = cname;
    }

    public int getCredit() {
        return credit;
    }

    public void setCredit(int credit) {
        this.credit = credit;
    }

    public int getSemester() {
        return semester;
    }

    public void setSemester(int semester) {
        this.semester = semester;
    }

    @Override
    public String toString() {
        return "Course{" +
                "cno='" + cno + '\'' +
                ", cname='" + cname + '\'' +
                ", credit=" + credit +
                ", semester=" + semester +
                '}';
    }
}

 CourseDao

public interface CourseDao {
    int delete(String cno);
    int insert(Course c);
    int update(Course c);
    List<Course> select();
}

CourseDaoImpl

public class CourseDaoImpl implements CourseDao {
    @Override
    public int delete(String cno) {
        int row=0;
        try {
            Connection conn= Druid.getDruid().getConnection();
            PreparedStatement ps=conn.prepareStatement("delete from course where cno=?");
            ps.setString(1,cno);
            row=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return row;
    }

    @Override
    public int insert(Course c) {
        int row=0;
        try {
            Connection conn=Druid.getDruid().getConnection();
            PreparedStatement ps=conn.prepareStatement("insert into course values (?,?,?,?);");
            ps.setString(1,c.getCno());
            ps.setString(2,c.getCname());
            ps.setInt(3,c.getCredit());
            ps.setInt(4,c.getSemester());
            row=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return row;
    }

    @Override
    public int update(Course c) {
        int row=0;
        try {
            Connection conn=Druid.getDruid().getConnection();
            PreparedStatement ps=conn.prepareStatement("update course set cname=?,credit=? where cno=?");
            ps.setString(1,c.getCname());
            ps.setInt(2,c.getCredit());
            ps.setString(3,c.getCno());
            row=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return row;
    }

    @Override
    public List<Course> select() {
        List<Course> list=new ArrayList<>();
        try {
            Connection conn=Druid.getDruid().getConnection();
            PreparedStatement ps=conn.prepareStatement("select * from course");
            ResultSet rs=ps.executeQuery();
            while (rs.next()) {
                Course c=new Course(rs.getString("cno"),rs.getString("cname"),
                        rs.getInt("credit"),rs.getInt("semester"));
                list.add(c);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
}

Druid   测试类+工具类

public class Druid {
    private static final DruidDataSource druid=new DruidDataSource();
    private Druid(){
        druid.setDriverClassName("com.mysql.jdbc.Driver");
        druid.setUrl("jdbc:mysql://localhost:3306/demo3" +
                "?useUnicode=true&characterEncoding=utf-8&useSSL=false");
        druid.setUsername("root");
        druid.setPassword("root");
    }
    public static DruidDataSource getDruid(){
        return druid;
    }

    public static void main(String[] args) {
        CourseDao dao=new CourseDaoImpl();
        /*delete的测试*/
//        System.out.println(dao.delete("c011"));
        /*insert的测试*/
//        System.out.println(dao.insert(new Course("c003","大创",2,2)));
        /*update的测试*/
//        System.out.println(dao.update(new Course("c003","体育课",4,2)));
        /*select的测试*/
        List<Course> list=dao.select();
        for (Course course : list) {
            System.out.println(course);
        }
    }

}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值