Java中使用JDBC連接數據庫
一、步驟
- 加載驅動
- 創建數據庫連接
- 創建執行sql的語句
- 執行語句
- 處理執行結果
- 釋放資源
二、Statement 和 PreparedStatement之間的關係和區別
關係:PreparedStatement繼承自Statement,都是接口。
區別:PreparedStatement可以使用佔位符,是預編譯的,批處理比Statement效率高 。
三、源碼(可以直接運行)
package com.demo.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Java中使用JDBC連接數據庫
* 1) 加載驅動 2) 創建數據庫連接
* 3) 創建執行sql的語句 4) 執行語句 5) 處理執行結果 6) 釋放資源
* @author liu.hb
*
*/
public class DBHelper {
/**
* Statement 和 PreparedStatement之間的關係和區別.
關係:PreparedStatement繼承自Statement,都是接口
區別:PreparedStatement可以使用佔位符,是預編譯的,批處理比Statement效率高
*/
public static void conn() {
String URL = "jdbc:mysql://127.0.0.1:3306/Supermarket?characterEncoding=utf-8";
String USER = "root";
String PASSWORD = "123";
// 1.加載驅動程序
try {
Class.forName("com.mysql.jdbc.Driver");
// 2.獲得數據庫鏈接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
// 3.通過數據庫的連接操作數據庫,實現增刪改查(使用Statement類)
String name="張三";
//預編譯
String sql="select * from userinfo where UserName=?";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, name);
ResultSet rs = statement.executeQuery();
// String sql="select * from userinfo where UserName='"+name+"'";
// Statement statement = conn.createStatement();
// ResultSet rs = statement.executeQuery(sql);
// 4.處理數據庫的返回結果(使用ResultSet類)
while (rs.next()) {
System.out.println(rs.getString("UserName") + " " + rs.getString("Password"));
}
// 關閉資源
conn.close();
rs.close();
statement.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
conn();
}
}