java如何連接資料庫
創建一個以JDBC連接資料庫的程序,包含7個步驟: x0dx0a 1、載入JDBC驅動程序: x0dx0a 在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機), x0dx0a 這通過java.lang.Class類的靜態方法forName(String className)實現。 x0dx0a 例如: x0dx0a try{ x0dx0a //載入Mysql的驅動類 x0dx0a Class.forName("com.mysql.jdbc.Driver") ; x0dx0a }catch(ClassNotFoundException e){ x0dx0a System.out.println("找不到驅動程序類 ,載入驅動失敗!"); x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a 成功載入後,會將Driver類的實例注冊到DriverManager類中。 x0dx0a 2、提供JDBC連接的URL x0dx0a •連接URL定義了連接資料庫時的協議、子協議、數據源標識。 x0dx0a •書寫形式:協議:子協議:數據源標識 x0dx0a 協議:在JDBC中總是以jdbc開始 x0dx0a 子協議:是橋連接的驅動程序或是資料庫管理系統名稱。 x0dx0a 數據源標識:標記找到資料庫來源的地址與連接埠。 x0dx0a 例如:(MySql的連接URL) x0dx0a jdbc:mysql: x0dx0a //localhost:3306/test?useUnicode=true&characterEncoding=gbk ; x0dx0a useUnicode=true:表示使用Unicode字元集。如果characterEncoding設置為 x0dx0a gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。 x0dx0a 3、創建資料庫的連接 x0dx0a •要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象, x0dx0a 該對象就代表一個資料庫的連接。 x0dx0a •使用DriverManager的getConnectin(String url , String username , x0dx0a String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和 x0dx0a 密碼來獲得。 x0dx0a 例如: x0dx0a //連接MySql資料庫,用戶名和密碼都是root x0dx0a String url = "jdbc:mysql://localhost:3306/test" ; x0dx0a String username = "root" ; x0dx0a String password = "root" ; x0dx0a try{ x0dx0a Connection con = x0dx0a DriverManager.getConnection(url , username , password ) ; x0dx0a }catch(SQLException se){ x0dx0a System.out.println("資料庫連接失敗!"); x0dx0a se.printStackTrace() ; x0dx0a } x0dx0a 4、創建一個Statement x0dx0a •要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 x0dx0a 種類型: x0dx0a 1、執行靜態SQL語句。通常通過Statement實例實現。 x0dx0a 2、執行動態SQL語句。通常通過PreparedStatement實例實現。 x0dx0a 3、執行資料庫存儲過程。通常通過CallableStatement實例實現。 x0dx0a 具體的實現方式: x0dx0a Statement stmt = con.createStatement() ; x0dx0a PreparedStatement pstmt = con.prepareStatement(sql) ; x0dx0a CallableStatement cstmt = x0dx0a con.prepareCall("{CALL demoSp(? , ?)}") ; x0dx0a 5、執行SQL語句 x0dx0a Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate x0dx0a 和execute x0dx0a 1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句 x0dx0a ,返回一個結果集(ResultSet)對象。 x0dx0a 2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或 x0dx0a DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等 x0dx0a 3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的 x0dx0a 語句。 x0dx0a 具體實現的代碼: x0dx0a ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; x0dx0a int rows = stmt.executeUpdate("INSERT INTO ...") ; x0dx0a boolean flag = stmt.execute(String sql) ; x0dx0a 6、處理結果 x0dx0a 兩種情況: x0dx0a 1、執行更新返回的是本次操作影響到的記錄數。 x0dx0a 2、執行查詢返回的結果是一個ResultSet對象。 x0dx0a • ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 x0dx0a 行中數據的訪問。 x0dx0a • 使用結果集(ResultSet)對象的訪問方法獲取數據: x0dx0a while(rs.next()){ x0dx0a String name = rs.getString("name") ; x0dx0a String pass = rs.getString(1) ; // 此方法比較高效 x0dx0a } x0dx0a (列是從左到右編號的,並且從列1開始) x0dx0a 7、關閉JDBC對象 x0dx0a 操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲 x0dx0a 明順序相反: x0dx0a 1、關閉記錄集 x0dx0a 2、關閉聲明 x0dx0a 3、關閉連接對象 x0dx0a if(rs != null){ // 關閉記錄集 x0dx0a try{ x0dx0a rs.close() ; x0dx0a }catch(SQLException e){ x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a } x0dx0a if(stmt != null){ // 關閉聲明 x0dx0a try{ x0dx0a stmt.close() ; x0dx0a }catch(SQLException e){ x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a } x0dx0a if(conn != null){ // 關閉連接對象 x0dx0a try{ x0dx0a conn.close() ; x0dx0a }catch(SQLException e){ x0dx0a e.printStackTrace() ; x0dx0a } x0dx0a }
Ⅱ Java中如何實現與後台資料庫的連接
用JAVA連接資料庫主要有兩種方式,一是用JDBC-ODBC橋來連接,二是用相關廠商提供的相應驅動程序來連接,首先談談第一種連接。
JDBC-ODBC橋接器是用JdbcOdbc.Class和一個用於訪問ODBC驅動程序的本地庫實現的。對於WINDOWS平台,該本地庫是一個動態連接庫DLL(JDBCODBC.DLL)。
由於JDBC在設計上與ODBC很接近。在內部,這個驅動程序把JDBC的方法映射到ODBC調用上,這樣,JDBC就可以和任何可用的ODBC驅動程序進行交互了。這種橋接器的優點是,它使JDBC目前有能力訪問幾乎所有的資料庫。通行方式如圖所示:
應用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC層---數據源
具體操作方法為:
首先打開控制面板的管理工具,打開數據源(ODBC),在用戶DSN裡面添加數據源(即你要連接的資料庫的名字),在這里假定連接SQL SERVER 2000的GoodsSupply資料庫。名稱填寫你要連接的資料庫的名稱(GoodsSupply),然後逐步設置,如果選用了使用SQL-SERVER密碼認證的話,就要輸入相應的用戶名及密碼連接到資料庫。一路下一步設置完成。
在JAVA裡面編寫程序進行測試,在這里我的程序是讓用戶輸入任意的表名與與列名,把該列的所有數據輸出。源代碼如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.*;
public class ODBCBridge {
public static void main(String[] args) {
String url="jdbc:odbc:GoodsSupply";
Statement sm=null;
String command=null;
ResultSet rs=null;
String tableName=null;
String cName=null;
String result=null;
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //載入驅動
}catch(ClassNotFoundException e){
System.out.println("Can not load Jdbc-Odbc Bridge Driver");
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
Connection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000認證
DatabaseMetaData dmd=con.getMetaData(); //DMD為連接的相應情況
System.out.println("連接的資料庫:"+dmd.getURL());
System.out.println("驅動程序:"+dmd.getDriverName());
sm=con.createStatement();
System.out.println("輸入表名");
tableName=input.readLine();
while(true) {
System.out.println("輸入列名(為空時程序結束):");
cName=input.readLine();
if(cName.equalsIgnoreCase(""))
break;
command="select "+cName+" from "+tableName;
rs=sm.executeQuery(command); //執行查詢
if(!rs.next())
System.out.println("表名或列名輸入有誤");
else {
System.out.println("查詢結果為:");
do
{
result=rs.getString(cName);
//資料庫語言設置為中文,不用轉換編碼
//result=new String(result.getBytes("ISO-8859-1"),"GB2312");
System.out.println(result);
}while(rs.next());
}
}
}catch(SQLException ex) {
System.out.println("SQLException:");
while(ex!=null) {
System.out.println("Message:"+ex.getMessage());
ex=ex.getNextException();
}
}catch(Exception e) {
System.out.println("IOException");
}
}
}
Ⅲ 在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對象。代碼如:Connectionconnection=DriverManager.getConnection(「連接資料庫的URL","用戶名",
"密碼」)。
其中,URL=協議名+IP地址(域名)+埠+資料庫名稱;用戶名和密碼是指登錄資料庫時所使用的用戶名和密碼。具體示例創建MySQL的資料庫連接代碼如下:
ConnectionconnectMySQL=
DriverManager.geiConnection(「jdbc:mysql://localhost:3306/myuser","root"
,"root");
5.創建Statement對象:Statement類的主要是用於執行靜態SQL
語句並返回它所生成結果的對象。
通過Connection對象的createStatement()方法可以創建一個Statement對象。例如:Statementstatament=
connection.createStatement();具體示例創建Statement對象代碼如下:StatementstatamentMySQL=connectMySQL.createStatement();
6.調用Statement對象的相關方法執行相對應的SQL
語句:通過execuUpdate()方法用來數據的更新,包括插入和刪除等操作,例如向staff表中插入一條數據的代碼:
statement.excuteUpdate("INSERTINTO
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,則表示下一行中沒有數據存在。使用示例代碼如下:
ResultSetresultSel=
statement.executeQuery("select*fromstaff");
8.關閉資料庫連接:使用完資料庫或者不需要訪問資料庫時,通過Connection的close()方法及時關閉數據連接。
Ⅳ java如何訪問資料庫(java訪問mysql資料庫)
Java可以使用JDBC訪問資料庫,也可以使用各類ORM框架訪問資料庫,但這些框架最終還是通過JDBC訪問資料庫,它們只是封裝了資料庫操作,而使得開發者可以減少這部分消耗。因此,本文只講解JDBC訪問方式。
JDBC訪問一般分為如下流程:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),這通過java.lang.Class類的靜態方法forName(StringclassName)實現。
例如:
try{
//載入MySql的驅動類
Class.forName("com.mysql.jdbc.Driver");
}catch(e){
System.out.println("找不到驅動程序類,載入驅動失敗!");
e.();
}
成功載入後,會將Driver類的實例注冊到類中。
2、提供JDBC連接的URL
連接URL定義了連接資料庫時的協議、子協議、數據源標識。
書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&=gbk;
useUnicode=true:表示使用Unicode字元集。如果設置為
gb2312或GBK,本參數必須設置為true。=gbk:字元編碼方式。
3、創建資料庫的連接
要連接資料庫,需要向java.sql.請求並獲得Connection對象,該對象就代表一個資料庫的連接。
使用的(Stringurl,Stringusername,Stringpassword)方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
Stringurl="jdbc:mysql://localhost:3306/test";
Stringusername="root";
Stringpassword="root";
try{
Connectioncon=
.(url,username,password);
}catch(se){
System.out.println("資料庫連接失敗!");
se.();
}
4、創建一個Statement
要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過實例實現。
3、執行資料庫存儲過程。通常通過實例實現。
具體的實現方式:
Statementstmt=con.();
PreparedStatementpstmt=con.prepareStatement(sql);
CallableStatementcstmt=con.prepareCall("{CALLdemoSp(?,?)}");
5、執行慧轎SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery、executeUpdate和execute
1、ResultSetexecuteQuery(StringsqlString):執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象。
2、intexecuteUpdate(StringsqlString):用於執行INSERT、UPDATE或DELETE語句以及SQLDDL語句,如:CREATETABLE和DROPTABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具芹尺體實現的代碼:
ResultSetrs=stmt.executeQuery("SELECT*FROM...");
introws=stmt.executeUpdate("INSERTINTO...");
booleanflag=stmt.execute(Stringsql);
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提嫌碧高供了對這些行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
Stringname=rs.getString("name");
Stringpass=rs.getString(1);//此方法比較高效(列是從左到右編號的,並且從列1開始)
}
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs!=null){//關閉記錄集
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(stmt!=null){//關閉聲明
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(conn!=null){//關閉連接對象
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
Ⅳ java怎麼和資料庫連接
1、載入驅動程序。
處理結果兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 行中數據的訪問。
(5)java如何連接資料庫擴展閱讀:
Statement
要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。