DAO-JDBC的封装

在JAVA中JDBC的访问是比较麻烦的,为此可以使用封装的方法构建一个封装性较好的JDBC工具类,提高编程的可复用性。

具体思路:3个类一个接口,1.一个类封装Connection对象、增删改、读(ResulSet)、资源

释放。2.一个接口封装增删查改方法。3.一个实体类封装数据库字段。4.一个类继承父类实现接口。

1.返回Connection对象、增删改、读、释放(父类)

Connection conn = null;

首先新建一个jdbc.property文件存放jdbc的相关属性

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/myjdbc
user=root
password=root

通过PropertyUtil类可以获得jdbc的属性

//实例化一个Properties对象
Properties pp = new Properties();
//配置文件路径
String proUrl = "database.properties";
//得到输入流
InputStream is = BaseDao.Class.getClassLoader().getResourceAsStream(proUrl);
pp.load(is);
//获取对应
Private static String driver = pp.getProperty("driver");
Private static String url = pp.getProperty("url");
Private static String userName = pp.getProperty("user");
Private static String passWord = pp,getProperty("password");

返回Connertion对象

Connection conn = new Connection();
public Connection getConnection(){
Class.forName(driver);
conn=DriverManager.getConnection(url,userName,passWord);
return conn;
}

返回增删改结果

PreparedStatement pa = null;
public int Update(String sql,Objects[] objects){
conn = getConnection();
ps = conn.prepareStatement(sql)
if(objects!=null){
for(int i = 0;i<objects.length;i++){
ps.setObject(i+1,objects[i]);
}
}
int num = ps.executeUpdate();
return num;
}

返回读取ResultSet对象

public ResultSet select(String sql){
  conn = getConnection();
  ps = conn.prepareStatement(sql);
  ResultSet read = ps,executeQuery();
  return read;
}

关闭资源

public void close(Connection conn,ResultSet read,RreparedStatement ps){
  if(conn!=null){
      conn.colese();
  }
  if(read!=null){
    read.close();
  }
  if(ps!=null){
    ps.close();
  }
}
接口封装增删查改方法
public interface Dogimp{
  //增加
  int addDog(Dog dog);
  //修改
  int updateDog(Dog dog);
  //删除
  int deleteDog(Dog dog);
  //查询
  List<Dog> list();
}
一个类封装数据库各字段
private int ID;
private String name;
publc int getID(){
  return ID;
}
public void setID(int iD){
  ID = iD;
}
public String getName(){
  return name;
}
public void setName(String name){
  this.name = name;
}
一个类继承父类实现接口
//实例化实体类
Dog dog = new Dog();
public int addDog(Dog dog){
  String sql = "insert int Dog values(?,?)";
Object[] objects = {dog.getID(),dog.getName};
}
int num = this.Update(sql,objects);
return num;
//修改,删除省略
public List<Dog> list{
List list2 = new ArrayList();
Dog dog = null;
String sql = "select ID,name from dog";
ResultSet read = this.select(sql);
whilr(read.next){
dog = new Dog();
dog.setName(read.getString("name"));
list2.add(dog);
}
return list2;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值