當前位置:首頁 » 操作系統 » java載入資料庫

java載入資料庫

發布時間: 2022-05-19 02:55:58

java連接資料庫為什麼先載入資料庫驅動程序

類似於電腦安裝一個滑鼠之前也要安裝一個驅動,驅動的作用其實相當於一個代理或者中介,Java將資料庫交互的工作交給驅動去處理。

② 如何實現java與資料庫的連接

JDBC連接資料庫
•創建一個以JDBC連接資料庫的程序,包含7個步驟:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入Mysql的驅動類
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驅動程序類 ,載入驅動失敗!");
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例注冊到DriverManager類中。
2、提供JDBC連接的URL
•連接URL定義了連接資料庫時的協議、子協議、數據源標識。
•書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字元集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
•要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,
該對象就代表一個資料庫的連接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和
密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("資料庫連接失敗!");
se.printStackTrace() ;
}
4、創建一個Statement
•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3
種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5、執行SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句
,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或
DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的
語句。
具體實現的代碼:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
• ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些
行中數據的訪問
• 使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比較高效
}
(列是從左到右編號的,並且從列1開始)
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲
明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

③ 如何用Java向資料庫中添加數據

假設已經連接上資料庫則有下面這兩個變數 Connection connect //連接到數據源 Statement statement=connect.createStatement(); 使用語句 String sql="INSERT INTO TABLENAME(Username,password) VALUES('"+name+"','"+pass+"')"; //TABLENAME是資料庫中的表名 statement.executeUpdate(sql);

④ java怎麼和資料庫連接

1、載入驅動程序。

處理結果兩種情況:

1、執行更新返回的是本次操作影響到的記錄數。

2、執行查詢返回的結果是一個ResultSet對象。

ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 行中數據的訪問。

(4)java載入資料庫擴展閱讀:


Statement

要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 種類型:

1、執行靜態SQL語句。通常通過Statement實例實現。

2、執行動態SQL語句。通常通過PreparedStatement實例實現。

3、執行資料庫存儲過程。通常通過CallableStatement實例實現。

⑤ 如何用java連接mysql資料庫

第一步:下載一個JDBC驅動包;

第二步:導入下載的JDBC驅動包,我用的是myeclipse,選中自己要導包的項目,右 擊選中propertise,再選JavaBuild Path, 右邊會出現libreries,點進去,再點Add External JARs 然後再找到你要導入的驅動包。完了之後再點Order andExport,下面再選中你導入的包;

第三步:載入驅動程序:Class.forName("com.mysql.jdbc.Driver");

第四步:連接資料庫:Connection conn=DriverManager.getConnection ("jdbc:mysql://localhost/資料庫名稱","root","123456");

第五步:聲明一個Statement 用來執行sql語句: Statement stmt=conn.createStatement();

第六步:聲明一個結果集接住執行sql語句的數據: ResultSet rs=stmt.executeQuery("select * from 表名");

下面給出完整的代碼:

代碼如下:
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("測試通過");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/myschool","root","123456");
System.out.println("conn-------------"+conn);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from admin");
while(rs.next()){
String name=rs.getString("name");
String pwd=rs.getString("pwds");
System.out.println("name------"+name+"--------pwd-"+pwd);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

⑥ java中連接MySQL資料庫的幾種方式

1:引入java.sql數據包;

import java.sql.*;

2:載入JDBC驅動程序

Class.forName(JDBC驅動包的名字).newInstance();

3:產生Connection

如已成功載入JDBC驅動程序,就可以利用載入的驅動程序連接資料庫

Connection con=DriverManager.getConnection(URL,UserName,Password);

URL: JDBC:(subprotocol):(subname)

subprotocol:子協議指定連接何種資料庫或用什麼方式連接資料庫;

subname:確立一個連接,可以是一個數據源名,也可是指向一個網上資料庫.

4:各種連接例:

(1) MySQL資料庫

String Dirver="com.mysql.jdbc.Driver";//驅動程序

String URL="jdbc:mysql://localhost:3306/db_name"; //連接的URL,db_name為資料庫名

String UserName="username"; //用戶名

String Password="password"; //密碼

Class.forName(Driver).newInstance(); //載入資料庫驅動

connection con=DriverManager.getConnection(URL,Username,Password);

(2) Microsoft SQL server 資料庫

String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //驅動程序

String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";

//連接的URL,db_name為資料庫

String UserName="username"; //用戶名
String Password="password"; //密碼

Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);

(3) sybase 資料庫

String Driver="com.sybase.jdbc.sybDriver"; //驅動程序
String URL="jdbc:Sybase://localhost:5007/db_name"; //連接的URL,db_name為資料庫

String UserName="username"; //用戶名
String Password="password"; //密碼

Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);

(4) Oracle(用thin模式)資料庫

String Driver="oracle.jdbc.driver.OracleDriver"; //驅動程序
String URL="jdbc:oracle:thin://localhost:1521:orcl";

//連接的URL,orcl為資料庫的SID

String UserName="username"; //用戶名
String Password="password"; //密碼

Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);

(5) 利用JDBC-ODBC橋連接

String Driver="sun.jdbc.odbc.JdbcodbcDriver"; //驅動程序
String URL="jdbc:odbc:dbsource"; //連接的URL,dbsource為數據源名

String UserName="username"; //用戶名
String Password="password"; //密碼

Class.forName(Driver).newInstance();
connection con=DriverManager.getConnection(URL,Username,Password);

⑦ 怎麼使用JAVA連接資料庫

1、首先我們先建好資料庫,然後建立好程序的目錄,因為是適用於初學者的,所以就建立一個簡單的java project,如圖。

⑧ java怎樣將讀取數據寫入資料庫

Java可以使用JDBC對資料庫進行讀寫。JDBC訪問一般分為如下流程:

一、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機), 這通過java.lang.Class類的靜態方法forName(String className)實現。

例如:

try{

//載入MySql的驅動類

Class.forName("com.mysql.jdbc.Driver") ;

}catch(ClassNotFoundException e){

System.out.println("找不到驅動程序類 ,載入驅動失敗!");

e.printStackTrace() ;
}

成功載入後,會將Driver類的實例注冊到DriverManager類中。

二、提供JDBC連接的URL 連接URL定義了連接資料庫時的協議、子協議、數據源標識。

書寫形式:協議:子協議:數據源標識 協議:在JDBC中總是以jdbc開始

子協議:是橋連接的驅動程序或是資料庫管理系統名稱。

數據源標識:標記找到資料庫來源的地址與連接埠。

例如:(MySql的連接URL)

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk

useUnicode=true:表示使用Unicode字元集。如果characterEncoding設置為

gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。

三、創建資料庫的連接

要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,該對象就代表一個資料庫的連接。

使用DriverManager的getConnectin(String url,String username,String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和密碼來獲得。

例如:
//連接MySql資料庫,用戶名和密碼都是root

String url = "jdbc:mysql://localhost:3306/test" ;

String username = "root" ;

String password = "root" ;

try{

Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){

System.out.println("資料庫連接失敗!");
se.printStackTrace() ;
}

四、創建一個Statement
要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:

1、執行靜態SQL語句。通常通過Statement實例實現。

2、執行動態SQL語句。通常通過PreparedStatement實例實現。

3、執行資料庫存儲過程。通常通過CallableStatement實例實現。

具體的實現方式:
Statement stmt = con.createStatement() ;

PreparedStatement pstmt = con.prepareStatement(sql) ;

CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;

五、執行SQL語句

Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute

1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象。

2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等

3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具體實現的代碼:

ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;

int rows = stmt.executeUpdate("INSERT INTO ...") ;

boolean flag = stmt.execute(String sql) ;

六、處理結果 兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。

2、執行查詢返回的結果是一個ResultSet對象。

ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些行中數據的訪問。

使用結果集(ResultSet)對象的訪問方法獲取數據:

while(rs.next()){

String name = rs.getString("name") ;

String pass = rs.getString(1); // 此方法比較高效(列是從左到右編號的,並且從列1開始)
}

七、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:

1、關閉記錄集

2、關閉聲明

3、關閉連接對象

if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

(8)java載入資料庫擴展閱讀

樣例

package first;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.concurrent.Executors;

import java.util.concurrent.ScheledExecutorService;

import java.util.concurrent.TimeUnit;

public class lianjie {

public static void main(String[] args) {

Runnable runnable = new Runnable() {

public void run() {

//聲明Connection對象

Connection con;

//驅動程序名

String driver1 = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

//URL指向要訪問的資料庫名

String url1 = "jdbc:sqlserver://IP地址和埠號;DateBaseName=資料庫名";

//MySQL配置時的用戶名

String user1 = "user";

//MySQL配置時的密碼

String password1 = "user";

//聲明Connection對象

Connection con1;

//驅動程序名

String driver2 = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

//URL指向要訪問的資料庫名

String url2 = "jdbc:sqlserver://IP地址和埠號;DateBaseName=資料庫名";

//MySQL配置時的用戶名

String user2 = "user";

//MySQL配置時的密碼

String password2 = "user";

//遍歷查詢結果集

try {

//載入驅動程序

Class.forName(driver1);

//1.getConnection()方法,連接MySQL資料庫!!

con = DriverManager.getConnection(url1,user1,password1);

if(!con.isClosed())

System.out.println("成功連接到資料庫!");

try {

//載入驅動程序

Class.forName(driver2);

//1.getConnection()方法,連接MySQL資料庫!!

con1 = DriverManager.getConnection(url2,user2,password2);

if(!con1.isClosed())

System.out.println("成功連接到資料庫!");

//2.創建statement類對象,用來執行SQL語句!!

Statement statement = con.createStatement();

//要執行的SQL語句

String sql = "use 資料庫名 select * from 表名";

//3.ResultSet類,用來存放獲取的結果集!!

ResultSet rs = statement.executeQuery(sql);

//要執行的SQL語句

String sql1 = "use tiantiana insert into Table_1(tiantian,qiqi,yuyu)VALUES(?,?,?)";

//3.ResultSet類,用來存放獲取的結果集!!

PreparedStatement pst = con1.prepareStatement(sql1);

System.out.println ("tiantian"+"/t"+"qiqi"+"/t"+"yuyu");

while(rs.next()){

System.out.print(rs.getString(1));

System.out.print(rs.getString(2));

System.out.print(rs.getString(3));

pst.setString(1,rs.getString(1));

pst.setString(2,rs.getString(2));

pst.setString(3,rs.getString(3));

pst.executeUpdate();

}

pst.close();

rs.close();

//2.創建statement類對象,用來執行SQL語句!!

Statement statement1 = con.createStatement();

//要執行的SQL語句

String sql2 = "use 資料庫名 select * from 表名";

//3.ResultSet類,用來存放獲取的結果集!!

ResultSet rs1 = statement1.executeQuery(sql2);

//要執行的SQL語句

String sql3 = "use tiantiana insert into Table_2(tiantian1,qiqi1,yuyu1)VALUES(?,?,?)";

//3.ResultSet類,用來存放獲取的結果集!!

PreparedStatement pst1 = con1.prepareStatement(sql3);

System.out.println ("tiantian1"+"/t"+"qiqi1"+"/t"+"yuyu1");

while(rs1.next()){

System.out.print(rs1.getString(1));

System.out.print(rs1.getString(2));

System.out.print(rs1.getString(3));

pst1.setString(1,rs1.getString(1));

pst1.setString(2,rs1.getString(2));

pst1.setString(3,rs1.getString(3));

pst1.executeUpdate();

}

//關閉鏈接

rs1.close();

pst.close();

con1.close();

con.close();

} catch(ClassNotFoundException e) {

//資料庫驅動類異常處理

System.out.println("對不起,找不到驅動程序!");

e.printStackTrace();

} catch(SQLException e) {

//資料庫連接失敗異常處理

e.printStackTrace();

}catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

System.out.println("資料庫數據成功獲取!!");

}

} catch(ClassNotFoundException e) {

//資料庫驅動類異常處理

System.out.println("對不起,找不到驅動程序!");

e.printStackTrace();

} catch(SQLException e) {

//資料庫連接失敗異常處理

e.printStackTrace();

}catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

System.out.println("資料庫數據成功獲取!!");

}

}

};

ScheledExecutorService service = Executors

.();

// 第二個參數為首次執行的延時時間,第三個參數為定時執行的間隔時間

service.scheleAtFixedRate(runnable, 10, 60*2, TimeUnit.SECONDS);

}

}

⑨ java-jdbc,載入資料庫驅動

Java語言本身只提供了資料庫連接和操作介面,而實現這些介面的就是資料庫廠商了,所以每次你要連接資料庫就必須下載對應資料庫廠商的JDBC驅動,也就是介面實現程序。這個需要持久的預設環境,就是你必須告訴你的程序你的介面實現程序在哪。也就是哪個jdbc驅動程序的包在哪,java程序在連接資料庫之前需要通過反射機制創建jdbc驅動程序包中的所有類。

⑩ Java載入資料庫連接驅動,為什麼要用Class.forName()方法

目的是為了實例化對象。

Class.forName("")返回的是類

Class.forName("").newInstance()返回的是object

剛才提到,Class.forName("");的作用是要求JVM查找並載入指定的類,如果在類中有靜態初始化器的話,JVM必然會執行該類的靜態代碼 段。而在JDBC規范中明確要求這個Driver類必須向DriverManager注冊自己,即任何一個JDBC Driver的 Driver類的代碼都必須類似如下:
public class MyJDBCDriver implements Driver {static {DriverManager.registerDriver(new MyJDBCDriver());}}既然在靜態初始化器的中已經進行了注冊,所以我們在使用JDBC時只需要Class.forName(XXX.XXX);就可以了。

we just want to load the driver to jvm only, but not need to user the instance of driver, so call Class.forName(xxx.xx.xx) is enough, if you call Class.forName(xxx.xx.xx).newInstance(), the result will same as calling Class.forName(xxx.xx.xx), because Class.forName(xxx.xx.xx).newInstance() will load driver first, and then create instance, but the instacne you will never use in usual, so you need not to create it.

總結:jdbc資料庫驅動程序最終的目的,是為了程序員能拿到資料庫連接,而進行jdbc規范的資料庫操作。拿到連接的過程是不需要你自己來實例化驅動程序的,而是通過 DriverManger.getConnection(string str); 。因此一般情況下,對於程序員來說,除非特別需求,是不會自己去實例化一個資料庫驅動使用裡面的方法的。

熱點內容
安卓手機怎麼用擬我表情 發布:2025-05-17 08:10:13 瀏覽:918
給U盤安裝kalilinux 發布:2025-05-17 08:07:26 瀏覽:249
sql提示存儲過程 發布:2025-05-17 07:35:58 瀏覽:743
qq里的互動訪問 發布:2025-05-17 07:26:53 瀏覽:665
口語易賬號密碼發送到哪裡 發布:2025-05-17 07:26:52 瀏覽:62
核桃編程幼兒 發布:2025-05-17 07:26:50 瀏覽:786
2台伺服器集群搭建 發布:2025-05-17 07:18:57 瀏覽:185
北方園林配置植物有哪些 發布:2025-05-17 07:18:20 瀏覽:544
數控加工零件圖及編程 發布:2025-05-17 07:18:11 瀏覽:730
煉鋼鹼度演算法 發布:2025-05-17 07:17:26 瀏覽:14