JDBC工具类

当完成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;
}

}


现在的主代码就特别的简单。。。。

 

posted @   周+⑦  阅读(184)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示