一、用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();