当完成JDBC操纵时,代码重复度特别高
这是之前代码
内容非常的繁琐,每一次都需要重新数据库,每一次都得释放资源。
所以有一个工具类
package util;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
/*
JDBC工具类
*/
public class JDBCutils {
private static String url;
private static String user;
private static String password;
private static String driver;
/**
*文件的读取,只需要读取一次即可拿到这些值。使用静态代码块
*/
static{
//读取资源文件,获取值
try {
//1.创建Properties集合类。
Properties pro = new Properties();
//获取src路劲瞎的文件方式--->ClassLoader 类加载器
ClassLoader classLoader = JDBCutils.class.getClassLoader();
URL res = classLoader.getResource("JDBC.properties");
String path = res.getPath();
System.out.println(path);
//2.加载文件。
// pro.load(new FileReader("E:\\denglu\\src\\JDBC.properties"));
pro.load(new FileReader(path));
//3.获取属性,赋值
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//4.注册驱动
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
/*
*获取链接
* 返回链接对象
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,user,password);
}
/*
*释放资源
*
*/
public static void close(Statement stmt,Connection conn){
if(stmt !=null){
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn != null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
/*
*释放资源
*
*/
public static void close(ResultSet rs,Statement stmt, Connection conn){
if(stmt !=null){
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn != null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(rs !=null){
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
这里需要重新创建一个包
这是资源包内容
package Login;
import util.JDBCutils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class login {
public boolean login(String username,String password){
if(username == null||password == null){
return false;
}
//链接数据库判断是否登录成功
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
//1.获取链接
try {
conn = JDBCutils.getConnection();
//2.定义sql
String sql = "select * from test3 where username = '"+username+"'and password = '"+password+"'";
//3.获取执行sql的对象
stmt = conn.createStatement();
//4.执行查询
rs = stmt.executeQuery(sql);
//5.判断
return rs.next();
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JDBCutils.close(rs,stmt,conn);
}
return false;
}
}
现在的主代码就特别的简单。。。。
标签:JDBC,java,throwables,stmt,import,工具,null,conn From: https://www.cnblogs.com/zjq164/p/17139389.html