封装jdbc

封装jdbc

对jdbc的封装主要是对实体对象进行封装,封装后只需传入实体对象或实体对象类等即可对其进行简单操作。
目的是:减少代码重复,提高代码重用。首先在WEB-INF文件夹导入jar包,要对应自己的版本号,再加载这个包。
之后新建几个包分别
存储不同类型的类。以下代码仅对新手有用,老鸟略过。代码如下:


工具包:

代码块语法遵循标准markdown代码,例如:

package com.bdqn.utils;

public  class Connaiti {

    public static final String use="root";
    public static final String pwd="root";
     public static final String driver="com.mysql.jdbc.Driver";

     public static final String url="jdbc:mysql://localhost:3306/dept";
                                                                 自己的数据库
}

实体包:


package com.bdqn.entity;
//插入get、set、有参无参、toString的方法
public class Dept {
    private int did;
    private String dname;
    private String dpwd;
    private String dmesc;
    public int getDid() {
        return did;
    }
    public void setDid(int did) {
        this.did = did;
    }
    public String getDname() {
        return dname;
    }
    public void setDname(String dname) {
        this.dname = dname;
    }
    public String getDpwd() {
        return dpwd;
    }
    public void setDpwd(String dpwd) {
        this.dpwd = dpwd;
    }
    public String getDmesc() {
        return dmesc;
    }
    public void setDmesc(String dmesc) {
        this.dmesc = dmesc;
    }

    public Dept() {

    }
    public Dept(int did, String dname, String dpwd, String dmesc) {

        this.did = did;
        this.dname = dname;
        this.dpwd = dpwd;
        this.dmesc = dmesc;
    }
    @Override
    public String toString() {
        return "Dept [did=" + did + ", dname=" + dname + ", dpwd=" + dpwd
                + ", dmesc=" + dmesc + "]";
    }

实体类下的Text类(最后再写):

package com.bdqn.entity;

import com.bdqn.dao.BaseDao;
import com.bdqn.dao.DestDao;
import com.bdqn.dao.impl.DeptImpl;

public class Text {
    public static void main(String[] args) {
        DeptImpl dao =new DeptImpl();    //可以父类调用子类
        Dept dept =new Dept();
        dept.setDname("fujiajun2");
        dept.setDid(2);
        int num =dao.updateDept(dept);
        System.out.println(num);
    }

}

DAO包,数据访问接口:

package com.bdqn.dao;

import java.util.List;

import com.bdqn.entity.Dept;

//实现类
public interface DestDao {
    //增加
    int insertDept(Dept dept);
        //修改
    int updateDept(Dept dept);
    //删除
    int deleteDept(int did);

    //全查
    List<Dept> selectAllDept();
    //根据id查询
    List<Dept> selectDept(int did);
}

提供从数据库增、删、改、查等的操作

package com.bdqn.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.bdqn.utils.Connaiti;

public class BaseDao {

    private static Connection contion =null;
    private static PreparedStatement ps=null;
    //获取连接
    public static Connection getConnection() {
        //加载驱动
        try {
            Class.forName(Connaiti.driver);
            contion=DriverManager.getConnection(Connaiti.url, Connaiti.use, Connaiti.pwd);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        return contion;
    }

    //关闭资源
    public static void close(Connection contion,Statement st,ResultSet rs){
        try {
            if (rs!=null) {
                rs.close();
            }
            if (st!=null) {
                st.close();

            }
            if (contion!=null) {
                contion.close();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    //实现增删改
    public static int update(String sql,Object[] objects){
        int num =0;
        contion=getConnection();

         try {
            ps=contion.prepareStatement(sql);

             if (objects !=null && objects.length>0) {
                for (int i = 0; i < objects.length; i++) {
                    ps.setObject((i+1), objects[i]);
                }
            }
             num=ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            close(contion, ps, null);
        }
        return num;
    }

    //查询
    public static ResultSet getResultSet(String sql,Object[] objects) {
        ps=null;
        ResultSet rs=null;

        try {
            contion= getConnection();
            ps=contion.prepareStatement(sql);

            if (objects!=null &&objects.length>0) {
                for (int i = 0; i < objects.length; i++) {
                    ps.setObject((i+1), objects[i]);
                }
            }
            rs=ps.executeQuery();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            close(contion, ps, rs);
        }

        return rs;      
    }       
}

DAO的实现包:

package com.bdqn.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bdqn.dao.BaseDao;
import com.bdqn.dao.DestDao;
import com.bdqn.entity.Dept;

public class DeptImpl extends BaseDao implements DestDao{

    @Override   //插入、增加
    public int insertDept(Dept dept) {

        String sql="insert into dept1 valuse(?,?,?,?)";
        Object[] objects ={dept.getDid(),dept.getDname(),dept.getDpwd(),dept.getDmesc()};
        int num =this.update(sql, objects);
        return num;
    }

    @Override //修改
    public int updateDept(Dept dept) {
        String sql="update dept1 set dname=? where did=?";
        Object[] objects={dept.getDname(),dept.getDid()};
        int num =this.update(sql, objects);
        return num;
    }

    @Override //删除
    public int deleteDept(int did) {
        String sql ="delete from dept1 where did=?";
        Object[] objects={did};
        int num =this.update(sql, objects);
        return num;
    }

    @Override  //查询所有
    public List<Dept> selectAllDept() {
        String sql="select *from dept1";
        List<Dept> list=null;
        try {
            ResultSet rs=this.getResultSet(sql, null);
            list =new ArrayList<Dept>();

            while (rs.next()) {
                Dept dept =new Dept();
                int did=rs.getInt("did");
                String dname=rs.getString("dname");
                String dpwd=rs.getString("dpwd");
                String dmesc=rs.getString("dmesc");

                dept.setDid(did);
                dept.setDname(dname);
                dept.setDpwd(dpwd);
                dept.setDmesc(dmesc);
                list.add(dept);

            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return list;
    }

    @Override //根据id查询
    public List<Dept> selectDept(int did) {
        String sql="select *from dept where did=?";
        Object[] objects=null;
        List<Dept> list=null;
        try {
            ResultSet rs=this.getResultSet(sql, objects);
            list =new ArrayList<Dept>();

            while (rs.next()) {
                Dept dept =new Dept();
                int did1=rs.getInt("did");
                String dname=rs.getString("dname");
                String dpwd=rs.getString("dpwd");
                String dmesc=rs.getString("dmesc");

                dept.setDid(did);
                dept.setDname(dname);
                dept.setDpwd(dpwd);
                dept.setDmesc(dmesc);
                list.add(dept);

            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return list;
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值