1、JDBCUtils
package com.yinggu.demo1;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
* 一定要加文档注释
* 彰显我们出身高贵,曾拜高人为师
* 此类用于演示jdbc的连接的工具类 方法1:获取连接 方法2:关闭资源
*
* @author:黑猴子的家
* @博客 :https://www.jianshu.com/u/37fd8e2dff4c
public class JDBCUtils {
static String driverClass;
static String url;
static String user;
static String password;
static {
try {
// 加载配置文件
Properties pro = new Properties();
pro.load(new FileInputStream("src/db.properties"));
//反射加载读取项目配置文件
//pro.load(JDBCUtils.class.getClassLoader().
// getResourceAsStream("db.properties"));
// 读取配置文件
driverClass = pro.getProperty("driverClass");
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
// 1.加载驱动
Class.forName(driverClass);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 功能:获取连接
* 异常抛就行,可根据自己的方式处理异常
* @return 可用的连接对象
* @throws IOException
* @throws FileNotFoundException
*/
public static Connection getConnection() throws Exception {
return DriverManager.getConnection(url, user, password);
}
/**
* 功能:关闭资源
* @param set
* @param statement
* @param connection
* @throws SQLException
*/
public static void closeConnection(
ResultSet set,
Statement statement,
Connection connection) throws SQLException {
if (set != null)
set.close();
if (statement != null)
statement.close();
if (connection != null)
connection.close();
}
}
2、TestConnection4 抽取冗余代码
package com.yinggu.demo1;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;
* 此类用于演示访问数据库,执行增删改查操作,使用JDBCUtils
*
* @author:黑猴子的家
* @博客 :https://www.jianshu.com/u/37fd8e2dff4c
public class TestConnection4 {
/*
* 执行查询
*/
@Test
public void testQuery() throws Exception {
// 1.获取连接
Connection connection = JDBCUtils.getConnection();
// 2.访问数据库,执行查询
// 2-1.获取命令对象
Statement statement = connection.createStatement();
// 2-2.执行查询
ResultSet set = statement.executeQuery("select * from beauty");
// set.afterLast();
while (set.next()) {
// 方式一:根据列索引获取该列的值
int id = set.getInt(1);// 获取该1列的值
String name = set.getString(2);// 获取该2列的值
String sex = set.getString("sex");
// 方式二:根据列名获取该列的值
int id2 = set.getInt("id");
String name2 = set.getString("Name");
// 方式三:根据列名获取该列的值,返回Object类型
Object id3 = set.getObject("id");
Object name3 = set.getObject("Name");
System.out.println(id + "\t" + name + "\t" + sex);
}
// 3.关闭连接
JDBCUtils.closeConnection(set, statement, connection);
}
/*
* 执行增删改
*/
@Test
public void testUpdate() throws Exception {
// 1.获取连接
Connection connection = JDBCUtils.getConnection();
// 3.访问数据库,执行增删改的操作 ★
// 3-1. 获取命令对象
Statement statement = connection.createStatement();
// 3-2.执行sql命令并返回
// statement.execute(sql);//执行任何sql语句,返回是否结果为结果集
// statement.executeQuery(sql);//执行查询语句,返回结果集对象
// 执行增删改语句,返回受影响的行数
int update = statement.executeUpdate(
"update beauty set sex='女' where name='小明明'");
// 3-3.处理结果
System.out.println(update);
// 4.关闭连接
JDBCUtils.closeConnection(null, statement, connection);
}
}
网友评论