jdbc 封装

一, 首先需要创建文件 db.properties
deiverclassname =oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:orclyc
username=scott
password=a

二,创建Myproperties用来读取文件 db.properties中的数据
public Myproperties extends Properties{
private static Myproperties mypropreties;
private static Myproperties (){
InputStream iiis=Myproperties.class.getSourceAstream(“db.properties”);
super.load(iis);

}
public static getInstance(){
if(myproperties==null){
myproperties=new Myproperties();
}
return myproperties;
}
}

三,创建DBHelp类
public class DBHelp{
//1,首先需要加载 与oracle 的连接驱动,而且只要加载一次,所以可以定义成静态块的形式
static{
try{
Class.forName(Myproperties.getInstance().getProperty(“deiverclassname “) );
}catch………..

}
//2,获取与数据的连接
public Connection getCon(){
MyPropertes mp =new Mypropertes.getInstace();
Connection con =DirverManage.getConnection(mp.getProperty(“url”),mp.getProperty(“uesrname”,
getProperty(“password”)) );
return con;

}
//3,建立setparams 方法用来处理sql语句中的问号
public void setparams(Preparedstatement pstmt, Listparams ){
if(params!=null&&params.size()>){
for(i=1;i
pstmt.setObject(i,params.get(i-1)); //使用给定对象设置指定参数的值
}
}

}

//4,建立查询所有的查询方法
public List> findAll(String sql,Listparams){
Conncetion con=getCon( );
Preparedstatement pstmt= con.Preparedstatement(sql);
setParams(pstmt,params);
Resultset rs=pstmt.executeQuty( );//取到结果集
ResultSetMetatData rsmd =rs.getMetaData//获取结果集中的原数据
int columncount =rsmd.getColumncount(); //获取到它的列数
List conlist= new ArrayList();
for(int i=1;i<=columncount ;i++){
conlist.add(rsmd.getColumnName(i));
}
List> list=new ArrayList();
while(rs.next()){
Map map=new HashMap();
for(String cn: conlist){
//在这里 cn 已经代替了 cnlist 表示一个列名
// put 在此映射中关联指定值与指定键。
// getString( 以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列 的值。
map.put(cn,rs.getString(cn));
}
list.add(map);
}
ColseAll(con,pstmt,rs);
return list;
}
//5,查询聚合函数的方法: vag(), sum (),count()…………
public double findDouble(String sql,Listparams){
double result=0;
Conncetion con =getCon();
PreparedStatement pstmt =con.PerparedStatement(sql);
setParams(pstmt, params)
ResultSet rs=pstmt.executeQuty();
if(rs.next()){
result=rs.getDouble(1);
}
CloseAll(con,pstmt,rs);
return result;

}
//5,增删改
public int upDate(String sql, Listparams){
int result=0;
Conncetion con =getCon();
PreparedStatement pstmt =con.PreparedStatement(sql);
setParams(pstmt,params);
result=pstmt.executeUppdate();
CloseAll(con,pstmt,null);
return result;

}

public void CloseAll(Conncetion con,PreparedStatement pstmt, ResultSet rs){
if(con!=null){
con.clsoe();
}
if(pstmt!=null){
pstmt.clsoe();
}
if(rs!=null){
rs.clsoe();
}
}
}

最后请注意所有代码均没有抛异常的。。。。。。。。

你可能感兴趣的:(jdbc 封装)