本文目錄一覽:
mySQL在java中的應用
Java連接Mysql詳解
Part I: 驅動/數據源類名, URL語法, Connector/J的屬性配置.假設你應經安裝好了mysql, 和mysql-connector-java-X.X.X-bin.jar
Mysql Connector/J通過com.mysql.jdbc.Driver來實現java.sql.Driver, 同時類名org.gjt.mm.mysql.Driver依舊可用, 以保持向前兼容MM.Mysql.
MySQL的JDBC URL格式如下:
如果沒有明確指定host(主機名), 默認為127.0.0.1, 埠號默認是3306
如果不指定資料庫名, 不會有默認的資料庫, 這樣的話, 你可以調用Connection的setCatalog()方法, 或者在SQL中明確指定所用的資料庫. 這種情況只在為多個資料庫建立工具時有用. 例如建立GUI資料庫管理器.
JDBC應該永遠不使用USE database來指定資料庫, 應該用Connection.setCatalog()方法.
MySQL Connector/J支持fail-over模式, 使用fail-over模式, 必須將connection的autoCommit設置為true.
如果URL的autoReconnect設置為false: Failover會發生在連接初始化時, failback出現在驅動器使第一個主機在此可用時.
如果URL的autoReconnect屬性時true, Failover發生在驅動決定connection失敗時(在每次查詢之前), falls back到第一個主機, 當它決定這個主機在此可用時.
在以上提到的兩種情況中, 無論何時你連接到一個”failed-over”伺服器, 這個連接將會是制度的, 因此, 修改數據的查詢, 將會引發異常.
Configuration properties定義Connctor/J將怎樣連接到MySQL伺服器. 除了特別聲明, 這些屬性可以設置在DataSource或Connection object中.
Configuration properties可以按照下面的方式進行設置:
①使用MysqlDataSource或MysqlConnectionPoolDataSource的set*()方法.
②以java.util.Properties的key/value對的形式傳遞給DriverManager.getConnection() 或Driver.connect()
③作為JDBC URL的參數傳給java.sql.DriverManger.getConnection()
java.sql.Driver.connect()或MySQL實現的javax.sql.DataSource setURL() 方法.
注意: 如果你用來確定JDBC URL的機制是XML-based, 你需要使用XML字元 來分隔參數.
java如何連接mySQL資料庫?
1.下面代碼是使用jdbc直接來鏈接mysql的操作,方式與SQL SERVER類似,區別在於載入的驅動不同,url的設置也有點區別。
2.執行腳本返回的結果,可以看出java成功鏈接上mysql並獲取到返回值
3.mysql-connector-java-5.1.26-bin.jar是java鏈接mysql使用的jar包,與SQL SERVER鏈接也有專門的jar包,jar包中包含了java鏈接mysql所用到的函數驅動等等,所有的jar包都是放到web工程lib目錄下
4.如果工程是整合在ssh下,一般情況下都會有一個properties文件,該文件配置了資料庫鏈接常用的命令,下圖是mysql中的配置
5.使用spring框架下進行的測試,結果可以成功執行,無論是sql server還是mysql還是其他的資料庫,基本功能都一樣,只是語法結構有所區別,java在調用的過程中大部分功能只要切換了資料庫鏈接命令就可以公用,如果系統架構設計的足夠好,切換資料庫的時候,應用程序是不用調整就能兼容的
在java中怎樣連接mysql資料庫
1. 在開發環境中載入指定資料庫的驅動程序。
接下來的實驗中,使用資料庫MySQL,所以需要下載MySQL支持JDBC的驅動程序(mysql-connector-java-5.1.18-bin.jar)。
2. 開發環境是MyEclipse,將下載得到的驅動程序載入進開發環境中。
3. 在Java程序中載入驅動程序。
在Java程序中,通過 「Class.forName(「指定資料庫的驅動程序」)」
方式來載入添加到開發環境中的驅動程序,例如Class.forName(「com.mysql.jdbc.Driver」)。
4. 創建數據連接對象:通過DriverManager類創建資料庫連接對象Connection。
DriverManager類作用於Java程序和JDBC驅動程序之間,用於檢查所載入的驅動程序是否可以建立連接,然後通過它的getConnection方法,根據資料庫的URL、用戶名和密碼,創建一個JDBC
Connection 對象。代碼如:Connection connection = DriverManager.getConnection(「連接資料庫的URL”, “用戶名”,
“密碼」)。
其中,URL=協議名+IP地址(域名)+埠+資料庫名稱;用戶名和密碼是指登錄資料庫時所使用的用戶名和密碼。具體示例創建MySQL的資料庫連接代碼如下:
Connection connectMySQL =
DriverManager.geiConnection(「jdbc:mysql://localhost:3306/myuser”,”root”
,”root” );
5. 創建Statement對象:Statement 類的主要是用於執行靜態 SQL
語句並返回它所生成結果的對象。
通過Connection 對象的 createStatement()方法可以創建一個Statement對象。例如:Statement statament =
connection.createStatement(); 具體示例創建Statement對象代碼如下:Statement statamentMySQL =connectMySQL.createStatement();
6. 調用Statement對象的相關方法執行相對應的 SQL
語句:通過execuUpdate()方法用來數據的更新,包括插入和刪除等操作,例如向staff表中插入一條數據的代碼:
statement.excuteUpdate( “INSERT INTO
staff(name, age, sex,address, depart, worklen,wage)” + ” VALUES (‘Tom1’, 321,
‘M’, ‘china’,’Personnel’,’3′,’3000′ ) “) ;
7. 通過調用Statement對象的executeQuery()方法進行數據的查詢,而查詢結果會得到
ResulSet對象,ResulSet表示執行查詢資料庫後返回的數據的集合,ResulSet對象具有可以指向當前數據行的指針。通過該對象的next()方法,使得指針指向下一行,然後將數據以列號或者欄位名取出。如果當next()方法返回null,則表示下一行中沒有數據存在。使用示例代碼如下:
ResultSet resultSel =
statement.executeQuery( “select * from staff” );
8. 關閉資料庫連接:使用完資料庫或者不需要訪問資料庫時,通過Connection的close() 方法及時關閉數據連接。
如何在Java程序中訪問mysql資料庫中的數據並進行簡單的操作
參考代碼:
package 資料庫編程;
import java.sql.*;
public class 資料庫連接 {
public static void main(String[] args) throws SQLException{
//1.載入驅動程序
try {
Class.forName(“com.mysql.jdbc.Driver”);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//2.創建與DB資料庫的連接
//連接字元串
String url=”jdbc:mysql://192.168.1.101:3306/java資料庫?user=rootpassword=humin”;
Connection con=DriverManager.getConnection(url);
//進行讀寫
if(!con.isClosed()){
System.out.print(“歡迎訪問資料庫!\n想做什麼啊………………\n”);
Statement st=con.createStatement();
ResultSet rs= st.executeQuery(“select * from stu”);
while(rs.next()){
System.out.print( rs.getString(“stuid”)+”,”+rs.getString(“name”)+”,”+rs.getString(“sex”)+”,”+rs.getString(“age”)+”,”+rs.getString(“address”)+”,”+rs.getString(“tel”)+”\n”);
}
}
//關閉資料庫
con.close();
}
}
原創文章,作者:JAHJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/139611.html