如何使用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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。