JDBC連線mysql步驟
阿新 • • 發佈:2018-12-18
jdbc連線時需要用到 mysql-connector-java-5.1.39-bin.jar
下載地址 http://dev.mysql.com/downloads/connector/j/
import java.sql.*;
import java.util.ArrayList;
import java.util.concurrent.ExecutionException;
public class JDBCMain {
/*
JDBC 問題
1、資料庫連線,使用時建立,用完釋放,對資料庫進行頻繁連線開啟和關機,對資料庫造成資源浪費,影響資料庫效能
解決方案:使用資料庫連線池管理資料庫連線
2、將sql語句硬編碼帶java程式碼中,如果sql語句要修改,需要重新編譯java程式碼,不利於系統維護
解決方案:使用配置檔案。將sql語句配置到xml檔案中,即使sql語句發生變化,不需要對java程式碼進行重新編譯
3、向statement設定引數時,對佔位符位置和設定引數值,硬體碼在java程式碼中,不利於系統維護
解決方案:使用配置檔案。將sql語句及佔位符和引數全部設定在xml中。
4、從resultset中遍歷結果集資料時,存在硬編碼,將獲取表的欄位進行硬編碼
解決方案:將結果集自動對映成java物件
*/
public static void main(String[] args) {
//資料庫連線
Connection connection = null;
//預編譯狀態(statement) , 使用預編譯的Statement提高資料庫效能
PreparedStatement preparedStatement = null;
//結果集
ResultSet resultSet = null;
try {
//載入資料庫驅動
Class.forName("com.mysql.jdbc.Driver" );
//通過驅動管理獲取資料庫連線
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mdb?charaterEncoding='UTF-8'","root","root");
//定義sql語句 ?表示佔位符
String sql = "select * from user where username = ?";
//獲取預處理statement
preparedStatement = connection.prepareStatement(sql);
//設定引數
preparedStatement.setString(1,"王五");
//像資料庫查詢,返回結果集
resultSet = preparedStatement.executeQuery();
//便利查詢結果集
while (resultSet.next()){
System.out.println(resultSet.getString("id")+" "+resultSet.getString("username"));
}
}catch (Exception e){
e.printStackTrace();
}finally {
//關閉順序與建立順序相反
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}