在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;
}