您的位置:首页 > 其它

jdbc 封装

2015-09-13 09:32 281 查看
一, 首先需要创建文件 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&¶ms.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();

}

}

}

最后请注意所有代码均没有抛异常的。。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: