一、用 JDBC 连接 mysql 数据库基本流程
- // 1.注册驱动
- Class.forName("com.mysql.jdbc.Driver");
- // 2.建立连接
- String url = "jdbc:mysql://localhost:3306/jdbc";
- String user = "root";
- String password = "";
- Connection conn = DriverManager.getConnection(url, user, password);
- // 3.创建语句
- Statement st = conn.createStatement();
- // 4.执行语句
- ResultSet rs = st.executeQuery("select id,name,age,money from user");
- // 5.处理结果
- while(rs.next())
- {
- System.out.print(rs.getObject("id") + "---");
- System.out.print(rs.getObject("name") + "---");
- System.out.print(rs.getObject("age") + "---");
- System.out.println(rs.getObject("money"));
- }
- // 6.释放资源
- rs.close();
- st.close();
- conn.close();
二、各流程详解
1. 注册驱动 (只做一次),有三种方式:
- 1 // 方式一(推荐使用):
- 2 Class.forName("com.mysql.jdbc.Driver");
- 3
- 4 // 方式二:
- 5 System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
- 6
- 7 // 方式三:
- 8 DriverManager.registerDriver(new com.mysql.jdbc.Driver());
其中方式三,会造成 DriverManager 中产生两个一样的驱动,并会对具体的驱动类产生依赖, 所以不推荐使用。
方式二虽然不会对具体的驱动类产生依赖,但是注册不太方便,因此也很少使用。
方式一不会对具体的驱动类产生依赖,书写也比较方便,推荐使用。
2. 建立连接 (Connection)
(1) 代码格式:
Connection conn = DriverManager.getConnection(url, user, password);
(2) url 格式:
JDBC: 子协议: 子名称 // 主机名: 端口 / 数据库名? 属性名 = 属性值 &....
如果主机名与端口号是缺省值,主机名与端口可省略:
JDBC: 子协议: 子名称 /// 数据库名? 属性名 = 属性值 &....
(3) User, Password 可以用 "属性名 = 属性值" 的方式告诉数据库。
(4) 其他参数如:
useUnicode = true&characterEncoding=GBK.
3. 创建可执行 sql 语句的对象 (Statement)
Statement st = conn.createStatement();
4. 执行 sql 语句, 用 ResultSet 对象接收执行结果
ResultSet rs = st.executeQuery("select id,name,age,money from user");
5. 用 rs.next() 遍历查询到的结果
while(rs.next())
{
System.out.print(rs.getObject("id") +"---");
System.out.print(rs.getObject("name") +"---");
System.out.print(rs.getObject("age") +"---");
System.out.println(rs.getObject("money"));
}
6. 释放资源时,按创建时的逆序关闭
rs.close();
st.close();
conn.close();
来源: