首页 > 编程知识 正文

jdbc建立数据库连接,jdbc访问数据库的七个步骤

时间:2023-05-05 18:41:12 阅读:110259 作者:1120

/**由于此代码与IO流和数据库连接相关,并且需要关闭资源,因此对异常的正确处理*方法是try.catch.finally。 但是,这样做会反转步骤的顺序,代码主体会被隐藏在*不必要的捕获异常中。 为了确保步骤前后的一致性,代码使用throws *抛出异常。 */import java.io.InputStream; import java.sql.*; import java.util.Properties; /** * @Description操作数据库的刀具类*/public class JDBCUtils { //连接获取数据库publicstaticconnectiongetconnection (throws exception { inputstream is=class loader.getsystemclassloader () ).getrettion Properties pros=new Properties (; PROS.load(is; string user=pros.getproperty (' user ); string password=pros.getproperty (' password ); string URL=pros.getproperty (' URL ); stringdriverclass=pros.getproperty (' driver class ); //加载驱动器class.forname (驱动程序类); //获取连接connection conn=驱动程序管理器. getconnection (URL、user、password ); return conn; //关闭资源公共声明资源(connection conn,PreparedStatement ps )//关闭资源if ) PS!=null () try (PS.close ); }catch(sqlexceptionthrowables ) { throwables.printStackTrace ); }if(Conn!=null () try (conn.close ); }catch(sqlexceptionthrowables ) { throwables.printStackTrace ); }//查询语句中用于结果集的资源是publicstaticvoidcloseresource1(connection conn,PreparedStatement ps,ResultSet rs ) try ) conn . } try { ps.close (; }catch(sqlexceptionthrowables ) { throwables.printStackTrace ); } try { rs.close (; }catch(sqlexceptionthrowables ) { throwables.printStackTrace ); } } public class test1 ((publictlisttgetforlist ) classtclazz,String sql,Object.args ) Throwsexception ) connectionconcon //填充占位符for (inti=0; i args.length; I ) ) PS.setobject(I1,args[i]; //结果集ResultSet rs=ps.executeQuery (; //获取结果集的元数据。 从结果集元数据中选择结果集中的列数resultsetmetadatarsmd=RS.get metadata (; ResultSetMetaData中结果集中的列数int column count=rsmd.getcolumn count (; //集合对象ArrayListT list=new ArrayListT (; wile(RS.next ) ) { T t=clazz.newInstance ); //用于处理结果集的第一行中的数据的每列:针对t对象中指定的属性指定for(intI=0; i columnCount; I ) ) { //columnValue是此列中的值object column value=RS.getobject (i1 ); //获取每列的列名stringcolumnlabel=rsmd.getcolumn label (i1 ); 将columnValue:代入cust对象中指定的columnName属性,然后返回反射field field=clazz.getdeclaredfield (column label ); Field.setaccessible(true; field.set(t,columnValue ); (list.add ) t; }JDBCutils.closeresource1(conn,ps,rs ); 返回列表; }} 原数据库

//测试代码1 @ testpublicvoidtest3(throws exception (string SQL=' select id,name,email from customers where id=?) ; listcustomerlist=getforlist (customer.class,sql,12 ); list.foreach (system.out :3360 println; } 测试代码1的结果

//测试代码2 @ testpublicvoidtest2(throws exception { string SQL=' select id,name,email from customers where id?' ; listcustomerlist=getforlist (customer.class,sql,12 ); list.foreach (system.out :3360 println; } 测试代码2的结果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。