该篇纪录java使用JDBC操作数据库
首先记住使用JDBC的操作步骤(已经配置好mysql):
一. 导入jar包:在eclipse项目中新建一个lib文件夹,将相应的JDBC的jar包复制到该文件夹下,选中右键单击Build Path-Add to Build Path,之后会再在文件夹下面出现一个小奶瓶,表示添加成功:
二. 创建一个包:cn.itclass.jdbc.utils,然后在该包下新建一个Class文件:JDBCUtils,输入以下代码。
package cn.itclass.jdbc.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.sql.Connection;
import java.sql.DriverManager;
import java.lang.Exception;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBCUtils {
private static String driver;
private static String url;
private static String username;
private static String password;
/**
* 静态代码块,直接加载,速度更快 这里是创建并获取连接的步骤 并且需要一个名为db.properties:配置文件: 后缀固定,名字自取
*/
static {
try {
// 1.通过当前类获取加载器
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
// 2.通过类加载器的方法获得一个输入流
InputStream is = classLoader.getResourceAsStream("db.properties");
// 3.创建一个properties对象
Properties props = new Properties();
// 4.加载输入流
props.load(is);
// 5.获取相关参数的值
driver = props.getProperty("driver");
url = props.getProperty("url");
username = props.getProperty("username");
password = props.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 这里还需要一个获取连接的方法
*/
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 打开资源入口之后就要关闭 所以这里最后需要关闭资源
*/
public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
三. 上面提到了需要一个db.properties的配置文件,这里面也就写着我们的数据库地址和用户名等内容。这个配置文件需要放在src目录下
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf8
username=root
password=123456
四. 我们接下来创建一个测试类来测试一下,新建一个包:cn.itclass.jdbc.test,然后新建一个类:JDBCUtilsTest.class
package cn.itclass.jdbc.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import cn.itclass.jdbc.utils.JDBCUtils;
public class JDBCUtilsTest {
@Test
public void testFindUserById() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 1.获取连接
conn = JDBCUtils.getConnection();
// 2.编写sql语句
String sql = "select * from tbl_user where uname = ?";
// 3.获取执行sql语句对象
pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setString(1, "张三");
// 5.执行查询操作
rs = pstmt.executeQuery();
// 6.处理结果集
while (rs.next()) {
System.out.println("uid:"+rs.getInt(1)+"---uname:"+rs.getString(2)+"---upassword"+rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 7.释放资源
JDBCUtils.release(conn, pstmt, rs);
}
}
}
注:这里用到了Junit4,所以在一开始导入包之后,我们需要再点击Build Path-Add libraries…-Junit4,这样就可以了,测试的时候选中方法名,右键-Run as-Junit Test
总结:使用JDBC操作数据库,基本步骤为以下几步:
1) 加载JDBC驱动
2) 建立连接
3) 书写sql语句
4) 执行语句
5) 处理结果
6) 关闭连接
在这里,加载驱动和建立连接基本都是死步骤,我们可以抽取出来封装成一个工具类,以后每次直接调用,不用重复书写,节省开发成本。
对于数据库的url、用户名、密码这些数据,都是随时可能需要变动的,所以直接抽出来用配置文件的方式保存,方便修改,更合情合理,这就是db.properties存在的意义。
最后,贴上文件结构图: