如何使用JDBC实现工具类抽取
这篇文章主要介绍了如何使用JDBC实现工具类抽取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1、JDBC工具类抽取
上一篇做了JDBC的基本操作,但是获取连接及释放资源是比较重复的操作,可以抽取工具类而达到代码重用的目的
工程结构如图
JDBC工具类代码
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://192.168.47.151:3306/web?useUnicode=true&characterEncoding=utf8 username=root password=root
JDBCUtils.java
packagecom.rookie.bigdata.util; importjava.io.InputStream; importjava.sql.*; importjava.util.Properties; importjava.util.ResourceBundle; /** *Createdbydellon2019/5/22. */ packagecom.rookie.bigdata.util; importjava.io.InputStream; importjava.sql.*; importjava.util.Properties; importjava.util.ResourceBundle; /** *Createdbydellon2019/5/22. */ publicclassJDBCUtils{ privatestaticStringdriver; privatestaticStringurl; privatestaticStringusername; privatestaticStringpassword; ////静态代码块加载配置文件信息 //static{ //ResourceBundledb=ResourceBundle.getBundle("db"); //driver=db.getString("driver"); //url=db.getString("url"); //username=db.getString("username"); //password=db.getString("password"); //} //静态代码块加载配置文件信息 static{ try{ //获取类加载器 ClassLoaderclassLoader=JDBCUtils.class.getClassLoader(); //通过类加载器的方法获取一个输入流 InputStreamresourceAsStream=classLoader.getResourceAsStream("db.properties"); Propertiesproperties=newProperties(); properties.load(resourceAsStream); //获取相关参数的值 driver=properties.getProperty("driver"); url=properties.getProperty("url"); username=properties.getProperty("username"); password=properties.getProperty("password"); }catch(Exceptione){ e.printStackTrace(); } } /** *获取连接 * *@return */ publicstaticConnectiongetConnection(){ Connectionconn=null; try{ Class.forName(driver); conn=DriverManager.getConnection(url,username,password); }catch(Exceptione){ e.printStackTrace(); } returnconn; } /** *释放资源 *@paramconn *@parampstmt *@paramrs */ publicstaticvoidrelase(Connectionconn,PreparedStatementpstmt,ResultSetrs){ if(rs!=null){ try{ rs.close(); }catch(SQLExceptione){ e.printStackTrace(); } } if(pstmt!=null){ try{ pstmt.close(); }catch(SQLExceptione){ e.printStackTrace(); } } if(conn!=null){ try{ conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } } }
2、批量插入数据
packagecom.rookie.bigdata; importcom.rookie.bigdata.util.JDBCUtils; importjava.sql.Connection; importjava.sql.PreparedStatement; /** *CREATETABLE`user`( *`USERNAME`varchar(30)DEFAULTNULLCOMMENT'用户名', *`PASSWORD`varchar(10)DEFAULTNULLCOMMENT'密码' *)ENGINE=InnoDBDEFAULTCHARSET=utf8; */ publicclassJDBCBatch{ publicstaticvoidmain(String[]args)throwsException{ Connectionconnection=JDBCUtils.getConnection(); //设置自动提交关闭 connection.setAutoCommit(false); PreparedStatementpreparedStatement=connection.prepareStatement("INSERTINTOUSERVALUES(?,?)"); for(inti=1;i<=5000;i++){ preparedStatement.setString(1,"张三"+i); preparedStatement.setString(2,"123"+i); preparedStatement.addBatch(); if(i%1000==0){ preparedStatement.executeUpdate(); connection.commit(); preparedStatement.clearBatch(); } } preparedStatement.executeUpdate(); connection.commit(); preparedStatement.clearBatch(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。