jdbc数据库连接之jdbcUtils工具类抽取
Posted lyj-justdoit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc数据库连接之jdbcUtils工具类抽取相关的知识,希望对你有一定的参考价值。
JDBC数据库连接
1.准备数据库
初始化数据库和表:
CREATE DATABASE day07;
USE day07;
create table category(
cid varchar(20) primary key,
cname varchar(20)
);
insert into category values(‘c001‘,‘电器‘);
insert into category values(‘c002‘,‘服饰‘);
insert into category values(‘c003‘,‘化妆品‘);
insert into category values(‘c004‘,‘书籍‘);
db.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=123
2.新建一个测试类
3.对jdbc进行抽取工具类
package com.demo.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ResourceBundle; public class jdbcUtils { public static final String DRIVERCLASS; public static final String URL; public static final String USERNAME; public static final String PASSWORD; static{ //加载配置文件 ResourceBundle bundle = ResourceBundle.getBundle("db"); DRIVERCLASS= bundle.getString("jdbc.driverClass"); URL = bundle.getString("jdbc.url"); USERNAME = bundle.getString("jdbc.username"); PASSWORD = bundle.getString("jdbc.password"); } //静态方法加载驱动 static{ try { Class.forName(DRIVERCLASS); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //获取连接 public static Connection getConnection() throws Exception{ return DriverManager.getConnection(URL,USERNAME,PASSWORD); } //释放资源 public static void closeReasoure(Connection conn,Statement st,ResultSet rs ){ closeResultSet(rs); closeStatement(st); closeConn(conn); } /** * 释放连接 * @param conn 连接 */ public static void closeConn(Connection conn){ if(conn != null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ conn=null; } } } /** * 释放语句执行者 * @param st 执行者 */ public static void closeStatement(Statement st){ if(st != null){ try { st.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ st=null; } } } /* * * * @param rs * * */ /** * 释放结果集 * @param rs 结果集 */ public static void closeResultSet(ResultSet rs){ if(rs != null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ rs=null; } } } }
1 package com.demo.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 import java.util.ResourceBundle; 9 10 11 12 public class jdbcUtils { 13 14 //获取连接 15 public static Connection getConnection() throws Exception{ 16 17 ResourceBundle bundle = ResourceBundle.getBundle("db"); 18 String driverClass = bundle.getString("jdbc.driverClass"); 19 String url = bundle.getString("jdbc.url"); 20 String username = bundle.getString("jdbc.username"); 21 String password = bundle.getString("jdbc.password"); 22 23 Class.forName(driverClass); 24 Connection conn = DriverManager.getConnection(url,username,password); 25 return conn; 26 27 } 28 //释放资源 29 public static void closeReasoure(Connection conn,Statement st,ResultSet rs ){ 30 closeResultSet(rs); 31 closeStatement(st); 32 closeConn(conn); 33 34 35 } 36 37 38 /** 39 * 释放连接 40 * @param conn 连接 41 */ 42 public static void closeConn(Connection conn){ 43 if(conn != null){ 44 try { 45 conn.close(); 46 } catch (SQLException e) { 47 // TODO Auto-generated catch block 48 e.printStackTrace(); 49 }finally{ 50 conn=null; 51 } 52 } 53 } 54 55 56 57 /** 58 * 释放语句执行者 59 * @param st 执行者 60 */ 61 public static void closeStatement(Statement st){ 62 if(st != null){ 63 try { 64 st.close(); 65 } catch (SQLException e) { 66 // TODO Auto-generated catch block 67 e.printStackTrace(); 68 }finally{ 69 st=null; 70 } 71 } 72 } 73 74 /* 75 * 76 * 77 * @param rs 78 * 79 * */ 80 81 /** 82 * 释放结果集 83 * @param rs 结果集 84 */ 85 public static void closeResultSet(ResultSet rs){ 86 if(rs != null){ 87 try { 88 rs.close(); 89 } catch (SQLException e) { 90 // TODO Auto-generated catch block 91 e.printStackTrace(); 92 }finally{ 93 rs=null; 94 } 95 } 96 } 97 }
1 package com.demo.jdbc; 2 3 import static org.junit.Assert.*; 4 5 import java.sql.Connection; 6 import java.sql.DriverManager; 7 import java.sql.PreparedStatement; 8 import java.sql.ResultSet; 9 10 import org.junit.Test; 11 12 import com.mysql.jdbc.Driver; 13 14 /** 15 * @author Administrator 16 * 17 */ 18 /** 19 * @author Administrator 20 * 21 */ 22 /** 23 * @author Administrator 24 * 25 */ 26 public class hello { 27 @Test 28 public void testjdbc() throws Exception { 29 //注册驱动 30 Class.forName("com.mysql.jdbc.Driver"); 31 //获取连接对象 32 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123"); 33 //编写SQL语句 34 String sql = "select * from category"; 35 //创建执行者对象 36 PreparedStatement prepareStatement = con.prepareStatement(sql); 37 //设置参数 38 39 //执行sql 40 ResultSet rs = prepareStatement.executeQuery(); 41 //处理结果集 42 while(rs.next()){ 43 System.out.println(rs.getString("cid")+"::"+rs.getString("cname")); 44 } 45 //释放资源 46 rs.close(); 47 prepareStatement.close(); 48 con.close(); 49 50 } 51 52 //插入数据() 53 @Test 54 public void testjdbcUtils(){ 55 Connection conn=null; 56 ResultSet rs=null; 57 PreparedStatement st = null; 58 59 //获取连接 60 try { 61 conn= jdbcUtils.getConnection(); 62 63 String sql = "insert into category values(?,?)"; 64 65 st = conn.prepareStatement(sql); 66 67 st.setString(1,"c005"); 68 st.setString(2, "户外"); 69 70 int i=st.executeUpdate(); 71 72 if(i==1){ 73 System.out.println("success"); 74 }else{ 75 System.out.println("fail"); 76 } 77 78 } catch (Exception e) { 79 80 e.printStackTrace(); 81 82 }finally{ 83 //释放资源 84 jdbcUtils.closeReasoure(conn, st, rs); 85 } 86 } 87 }
package com.demo.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
public class jdbcUtils {
public static final String DRIVERCLASS;
public static final String URL;
public static final String USERNAME;
public static final String PASSWORD;
static{
ResourceBundle bundle = ResourceBundle.getBundle("db");
DRIVERCLASS= bundle.getString("jdbc.driverClass");
URL = bundle.getString("jdbc.url");
USERNAME = bundle.getString("jdbc.username");
PASSWORD = bundle.getString("jdbc.password");
}
//获取连接
public static Connection getConnection() throws Exception{
Class.forName(DRIVERCLASS);
Connection conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
return conn;
}
//释放资源
public static void closeReasoure(Connection conn,Statement st,ResultSet rs ){
closeResultSet(rs);
closeStatement(st);
closeConn(conn);
}
/**
* 释放连接
* @param conn 连接
*/
public static void closeConn(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
conn=null;
}
}
}
/**
* 释放语句执行者
* @param st 执行者
*/
public static void closeStatement(Statement st){
if(st != null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
st=null;
}
}
}
/*
*
*
* @param rs
*
* */
/**
* 释放结果集
* @param rs 结果集
*/
public static void closeResultSet(ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
rs=null;
}
}
}
}
以上是关于jdbc数据库连接之jdbcUtils工具类抽取的主要内容,如果未能解决你的问题,请参考以下文章
Java实现关系型数据库工具类JdbcUtils系列一 :JDBC连接关系型数据库
玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入
玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入