JdbcUtils
项目结构
db.properties
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql:///myTest
username=root
password=root
JdbcUtils
package com.pers.jdbc.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* @author liangyadong
* @date 2016年10月13日 下午3:23:22
* @version 1.0
*/
public class JdbcUtils {
public static final String DRIVERCLASS;
public static final String URL;
public static final String USERNAME;
public static final String PASSWORD;
/**
* 静态代码块
*
* 步骤
* 1.创建properties对象
* 2.获取db配置文件的输入流
* 3.properties对象加载配置文件
* 4.properties对象通过key获取值
*/
static{
// 读取配置文件,将值赋给常量
// 创建properties对象
Properties pro = new Properties();
// 获取db.properties文件的输入流
InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("com/pers/jdbc/utils/db.properties");
// 加载配置文件
try {
pro.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 通过key获取值
DRIVERCLASS = pro.getProperty("driverClass");
URL = pro.getProperty("url");
USERNAME = pro.getProperty("username");
PASSWORD = pro.getProperty("password");
}
/**
* 加载驱动
*/
public static void loadDriver(){
try {
Class.forName(DRIVERCLASS);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 获取连接
* @return
*/
public static Connection getConnection() {
// TODO Auto-generated method stub
// 加载驱动
loadDriver();
try {
// 获取连接
return DriverManager.getConnection(URL,USERNAME,PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 释放资源
*
* 查询的释放资源方法
* @param conn
* @param sta
* @param rs
*/
public static void release(Connection conn,Statement sta,ResultSet rs){
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs = null;
}
if (sta!=null) {
try {
sta.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sta = null;
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
}
/**
* 释放资源
*
* 增删改的释放资源方法
* @param conn
* @param sta
*/
public static void release(Connection conn,Statement sta){
if (sta!=null) {
try {
sta.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sta = null;
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = null;
}
}
}
JdbcTest
package com.pers.jdbc.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import com.pers.jdbc.utils.JdbcUtils;
/**
* @author liangyadong
* @date 2016年10月13日 上午11:01:22
* @version 1.0
*/
public class JdbcTest2 {
/**
* 测试添加数据
*/
@Test
public void InsertTest(){
/**
* 步骤
* 1.加载驱动
* 2.获取连接
* 3.编写sql
* 4.获取执行sql的对象
* 5.执行sql
* 6.释放资源
*/
Connection conn = null;
Statement sta = null;
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root");
// 编写插入sql
String sql = "insert into t_user values (null,'ddd','123','ddd@163.com')";
// 获取执行sql的对象
sta = conn.createStatement();
// 执行sql
/*boolean b = sta.execute(sql);
if (b=true) {
System.out.println("添加数据成功!");
}*/
// 或
int i = sta.executeUpdate(sql);
if (i>0) {
System.out.println("添加数据成功!");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
/**
* 释放资源
*/
if (sta!=null) {
try {
sta.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sta=null;
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn=null;
}
}
}
/**
* 修改第四条数据名称为eee
*/
@Test
public void UpdateTest(){
/**
* 步骤
* 1.加载驱动
* 2.获取连接
* 3.编写修改数据的sql
* 4.创建执行sql的对象
* 5.执行sql
* 6.释放资源
*/
Connection conn = null;
Statement sta = null;
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root");
// 编写修改数据的sql
String sql = "update t_user set username='eee' where id = '4'";
// 创建执行sql的对象
sta = conn.createStatement();
// 执行sql
int i = sta.executeUpdate(sql);
if (i>0) {
System.out.println("修改数据成功!");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
/**
* 释放资源
*/
if (sta!=null) {
try {
sta.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sta=null;
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn=null;
}
}
}
/**
* 删除数据测试
* 删除第四条数据
*/
@Test
public void DeleteTest(){
/**
* 步骤
* 1.加载驱动
* 2.获取连接
* 3.编写sql
* 4.创建执行sql的对象
* 5.执行sql
* 6.释放资源
*/
Connection conn = null;
Statement sta = null;
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root");
// 编写sql
String sql = "delete from t_user where id = '4'";
// 创建执行sql的对象
sta = conn.createStatement();
// 执行sql
int i = sta.executeUpdate(sql);
if (i>0) {
System.out.println("删除数据成功!");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
/**
* 释放资源
*/
if (sta!=null) {
try {
sta.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sta = null;
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn=null;
}
}
}
/**
* 测试查询数据
* 使用jdbc工具类
*/
@Test
public void query(){
/**
* 步骤
* 1.加载驱动
* 2.获取连接
* 3.编写sql
* 4.创建执行sql的对象
* 5.执行sql
* 6.遍历结果
* 7.释放资源
*/
Connection conn = null;
Statement sta = null;
ResultSet rs = null;
try {
// 加载驱动获取连接
conn = JdbcUtils.getConnection();
// 编写sql
String sql = "select * from t_user";
// 创建执行sql的对象
sta = conn.createStatement();
// 执行sql
rs = sta.executeQuery(sql);
// 遍历结果
while(rs.next()){
int id = rs.getInt("id");
String username = rs.getString("username");
String email = rs.getString("email");
System.out.println(id+"-"+username+"-"+email);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.release(conn, sta, rs);
}
}
}
输入流路径: 包名/文件名
*注意:相对路径开头是没有斜杠的
作者:习惯沉淀