您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > java学习笔记――使用JDBC,对数据库进行增删改查(方案二)
本文由西安白癜风医院收集,转载请注明出处本文由西安白癜风医院收集,转载请注明出处java学习笔记——使用JDBC,对数据库进行增删改查(方案二)工具类BaseDao.java[java]viewplaincopy1.packagecom.accp.jdbc;2.3.importjava.sql.Connection;4.importjava.sql.DriverManager;5.importjava.sql.PreparedStatement;6.importjava.sql.ResultSet;7.importjava.sql.ResultSetMetaData;8.importjava.sql.SQLException;9.importjava.util.ArrayList;10.importjava.util.HashMap;11.importjava.util.List;12.importjava.util.Map;13.14.importorg.apache.log4j.Logger;15.16.publicclassBaseDao{17.//使用log4j记录日志18.privatestaticLoggerlogger=Logger.getLogger(BaseDao.class);19.//连接驱动20.privatestaticfinalStringDRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver;21.//连接路径22.privatestaticfinalStringURL=jdbc:sqlserver://localhost:1433;databaseName=test;23.//用户名24.privatestaticfinalStringUSERNAME=sa;25.//密码26.privatestaticfinalStringPASSWORD=sa;27.28.//静态代码块29.static{30.try{31.//加载驱动32.Class.forName(DRIVER);33.}catch(ClassNotFoundExceptione){34.e.printStackTrace();本文由西安白癜风医院收集,转载请注明出处本文由西安白癜风医院收集,转载请注明出处35.logger.error(加载驱动失败,e);36.}37.}38.39./*40.*获取数据库连接41.*/42.publicConnectiongetConnection(){43.Connectionconn=null;44.logger.debug(开始连接数据库);45.try{46.//与数据库建立连接47.conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);48.}catch(SQLExceptione){49.e.printStackTrace();50.logger.error(数据库连接失败!,e);51.}52.logger.debug(数据库连接成功);53.returnconn;54.}55.56./*57.*关闭数据库连接,注意关闭的顺序58.*/59.publicvoidclose(ResultSetrs,PreparedStatementps,Connectionconn){60.//注意:最后打开的最先关闭61.if(rs!=null){62.try{63.rs.close();64.rs=null;65.}catch(SQLExceptione){66.e.printStackTrace();67.logger.error(关闭ResultSet失败,e);68.}69.}70.if(ps!=null){71.try{72.ps.close();73.ps=null;74.}catch(SQLExceptione){75.e.printStackTrace();76.logger.error(关闭PreparedStatement失败,e);77.}本文由西安白癜风医院收集,转载请注明出处本文由西安白癜风医院收集,转载请注明出处78.}79.if(conn!=null){80.try{81.conn.close();82.conn=null;83.}catch(SQLExceptione){84.e.printStackTrace();85.logger.error(关闭Connection失败,e);86.}87.}88.}89.90./*91.*查询多个对象的方法92.*93.*sql:要执行的sql语句94.*obj:可变参数列表95.*/96.publicListMapString,ObjectqueryList(Stringsql,Object...obj){97.ListMapString,Objectdata=newArrayListMapString,Object();98.Connectionconn=getConnection();//获得连接99.PreparedStatementps=null;100.ResultSetrs=null;101.try{102.//创建PreparedStatement对象103.ps=conn.prepareStatement(sql);104.//为查询语句设置参数105.setParameter(ps,obj);106.//获得ResultSet结果集107.rs=ps.executeQuery();108.//获得结果集信息109.ResultSetMetaDatarsmd=rs.getMetaData();110.//获得列的总数111.intcolumnCount=rsmd.getColumnCount();112.MapString,Objectrow=null;113.//遍历结果集,根据信息封装成Map114.while(rs.next()){115.row=newHashMapString,Object();116.for(inti=0;icolumnCount;i++){117.StringcolumnLabel=rsmd.getColumnLabel(i+1);118.row.put(columnLabel,rs.getObject(columnLabel));119.}120.data.add(row);121.}本文由西安白癜风医院收集,转载请注明出处本文由西安白癜风医院收集,转载请注明出处122.}catch(SQLExceptione){123.e.printStackTrace();124.logger.error(数据库操作异常,e);125.}finally{126.//关闭连接127.close(rs,ps,conn);128.logger.debug(释放资源成功);129.}130.returndata;131.}132.133./*134.*查询一个对象的方法135.*136.*sql:要执行的sql语句137.*obj:可变参数列表138.*/139.publicMapString,Objectquery(Stringsql,Object...obj){140.MapString,Objectdata=null;141.Connectionconn=getConnection();//获得连接142.PreparedStatementps=null;143.ResultSetrs=null;144.try{145.//创建PreparedStatement对象146.ps=conn.prepareStatement(sql);147.//为查询语句设置参数148.setParameter(ps,obj);149.//获得ResultSet结果集150.rs=ps.executeQuery();151.//获得结果集信息152.ResultSetMetaDatarsmd=rs.getMetaData();153.//获得列的总数154.intcolumnCount=rsmd.getColumnCount();155.//遍历结果集,根据信息封装成Map156.while(rs.next()){157.data=newHashMapString,Object();158.for(inti=0;icolumnCount;i++){159.StringcolumnLabel=rsmd.getColumnLabel(i+1);160.data.put(columnLabel,rs.getObject(columnLabel));161.}162.}163.}catch(SQLExceptione){164.e.printStackTrace();165.logger.error(数据库操作异常,e);本文由西安白癜风医院收集,转载请注明出处本文由西安白癜风医院收集,转载请注明出处166.}finally{167.//关闭连接168.close(rs,ps,conn);169.logger.debug(释放资源成功);170.}171.returndata;172.}173.174./*175.*增加、修改、删除,的方法176.*177.*obj:可变参数列表178.*/179.publicintupdate(Stringsql,Object...obj){180.Connectionconn=getConnection();//获得连接181.PreparedStatementps=null;182.introws=0;183.try{184.//创建PreparedStatement对象185.ps=conn.prepareStatement(sql);186.//为查询语句设置参数187.setParameter(ps,obj);188.//获得受影响的行数189.rows=ps.executeUpdate();190.}catch(SQLExceptione){191.e.printStackTrace();192.logger.error(数据库操作异常,e);193.}finally{194.//关闭连接195.close(null,ps,conn);196.logger.debug(释放资源成功);197.}198.returnrows;199.}200.201./*202.*为预编译对象设置参数203.*/204.publicvoidsetParameter(PreparedStatementps,Object...obj)205.throwsSQLException{206.if(obj!=null&&obj.length0){207.//循环设置参数208.for(inti=0;iobj.length;i++){209.ps.setObject(i+1,obj[i]);本文由西安白癜风医院收集,转载请注明出处本文由西安白癜风医院收集,转载请注明出处210.}211.}212.}213.}操作类,进行增删改查UserDao.java[java]viewplaincop
本文标题:java学习笔记――使用JDBC,对数据库进行增删改查(方案二)
链接地址:https://www.777doc.com/doc-1915285 .html