使用配置文件 目的:方便后期维护,只需要更改配置文件 不需要改源代码
在src文件中(可任意选)新建一个配置文件 后缀名必须为properties 并在里面写入数据
使用ResourceBundle类加载配置文件
使用JDBC模板 写好连接方法和释放资源的方法 完整代码如下
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
public class JdbcUtils {
//工具类,一个获取连接的方法和一个释放资源的方法
//使用配置文件的目的:方便后期维护,只需要更改配置文件 不需要改源代码
private static String dirver;
private static String url;
private static String user;
private static String password;
//静态代码块,加载配置文件 , 使用ResourceBundle类
static{
ResourceBundle bundle = ResourceBundle.getBundle("db");//不用后缀名
dirver = bundle.getString("jdbc.driver"); //获取配置文件中的字符串
url = bundle.getString("jdbc.url");
user = bundle.getString("jdbc.user");
password = bundle.getString("jdbc.password");
}
//获取连接
public static Connection getConn()
{
Connection conn =null;
try {
Class.forName(dirver);
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//释放资源
public static void release(ResultSet rs,PreparedStatement pstmt,Connection conn)
{
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
写好模板后 可以用模板进行代码重用
进行cid的查询
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
public class Test1 {
@Test
public void lookid()
{
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn =null;
try {
//获取连接
conn = JdbcUtils.getConn();
//查询:
String sql = "select * from product where cid = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "1");
rs = pstmt.executeQuery();
while(rs.next())
{
System.out.println("pid:"+rs.getObject(1)+" name:"+rs.getObject(2)+" cid:"+rs.getObject(5));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtils.release(rs, pstmt, conn);
}
}
}
进行数据更新 删除 添加
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;
public class Test2 {
@Test
public void lookid()
{
ResultSet rs = null;
Statement st = null;
Connection conn =null;
try {
//获取连接
conn = JdbcUtils.getConn();
//获得语句执行者
st = conn.createStatement();
//添加:
//int r = st.executeUpdate("insert into product values(null,'王',200,null,3)");
//System.out.println(r);
//更新
//int r = st.executeUpdate("update product set pname = '陈' , price = 1500 where pid = 8");
//System.out.println(r);
//删除
int r = st.executeUpdate("delete from product where pid =9");
System.out.println(r);
} catch (Exception e) {
e.printStackTrace();
}finally{
//JdbcUtils.release(rs, pstmt, conn);写好模板,输入的没有pstmt 而是st Statement类型
}
}
}