本文目錄一覽:
- 1、JAVA訪問數據庫的4種方法
- 2、如何使用Java訪問MySQL數據庫
- 3、Java 如何進行數據庫訪問的
- 4、java如何連接SQLserver數據庫?
- 5、怎麼使用JAVA連接數據庫?
- 6、java如何訪問數據庫
JAVA訪問數據庫的4種方法
1)JDBC-ODBC橋加ODBC驅動程序
JavaSoft橋產品利用ODBC驅動程序提供JDBC訪問。注意,必須將ODBC二進制代碼(許多情況下還包括數據庫客戶機代碼)加載到使用該驅動程序的每個客戶機上。因此,這種類型的驅動程序最適合於企業網(這種網絡上客戶機的安裝不是主要問題),或者是用Java編寫的三層結構的應用程序服務器代碼。
(2)本地API
這種類型的驅動程序把客戶機API上的JDBC調用轉換為Oracle、Sybase、Informix、DB2或其它DBMS的調用。注意,象橋驅動程序一樣,這種類型的驅動程序要求將某些二進制代碼加載到每台客戶機上。
(3)JDBC網絡純Java驅動程序
這種驅動程序將JDBC轉換為與DBMS無關的網絡協議,之後這種協議又被某個服務器轉換為一種DBMS協議。這種網絡服務器中間件能夠將它的純Java客戶機連接到多種不同的數據庫上。所用的具體協議取決於提供者。通常,這是最為靈活的JDBC驅動程序。有可能所有這種解決方案的提供者都提供適合於Intranet用的產品。為了使這些產品也支持Internet訪問,它們必須處理Web所提出的安全性、通過防火牆的訪問等方面的額外要求。幾家提供者正將JDBC驅動程序加到他們現有的數據庫中間件產品中。
(4)本地協議純Java驅動程序
這種類型的驅動程序將JDBC調用直接轉換為DBMS所使用的網絡協議。這將允許從客戶機機器上直接調用DBMS服務器,是Intranet訪問的一個很實用的解決方法。由於許多這樣的協議都是專用的,因此數據庫提供者自己將是主要來源,有幾家提供者已在着手做這件事了。
據專家預計第(3)、(4)類驅動程序將成為從JDBC訪問數據庫的首方法。第(1)、(2)類驅動程序在直接的純Java驅動程序還沒有上市前會作為過渡方案來使用。對第(1)、(2)類驅動程序可能會有一些變種,這些變種要求有連接器,但通常這些是更加不可取的解決方案。第(3)、(4)類驅動程序提供了Java的所有優點,包括自動安裝(例如,通過使用JDBC驅動程序的appletapplet來下載該驅動程序)。
如何使用Java訪問MySQL數據庫
第1步 獲取Java與MySQL的連接器
第2步 將下載的包存放在自己機器上jdk安裝目錄下面的jre目錄下面的lib目錄下面的ext目錄中,在程序中導入與數據庫操作相關的對象
import java.sql.Connection; //導入數據庫連接對象
import java.sql.DriverManager; //導入數據庫驅動管理對象
import java.sql.ResultSet; //導入數據記錄集對象
import java.sql.SQLException; //導入數據SQL操作異常對象
import java.sql.Statement; //導入SQL操作接口對象
第3步:在程序中寫入如下內容
String url; //連接數據庫的字符串
String sql; //執行數據sql查詢操作的字符串
Connection conn; //數據庫連接變量
Statement st; //數據庫操作對象
ResultSet rs; //數據記錄集對象
url = “jdbc:mysql://localhost:3306/test?user=rootpassword=”; //在程序中只要修改這句,就可以實現數據庫連接
try {
conn = DriverManager.getConnection(url);
st = conn.createStatement();
sql = “select * from test”; //只要修改這句,就可以實現各種查詢操作
rs=st.executeQuery(sql); //執行數據查詢
while(rs.next())
{
System.out.println(rs.getString(1)); //獲得數據表test中第1個字段的數據,該字段為字符串類型
System.out.println(rs.getString(2)); //獲得數據表test中第2個字段的數據,該字段為字符串類型
}
rs.close(); //關閉數據記錄集
conn.close(); //關閉數據庫連接
} catch (SQLException e) {
System.out.println(“Error:”+e.toString()+e.getMessage());
}
Java 如何進行數據庫訪問的
1. 加載一個對應數據庫的JDBC驅動
在建立到一個數據庫的連接之前,必須先加載這個數據庫的JDBC驅動程序,加載之後此driver會自動註冊到JDBC驅動列表中。加載一個JDBC驅動有兩種方法。
a) 在命令行方式下指定驅動器或者用冒號分割驅動器列表:
具體命令如下:
C:\java –Djdbc.drivers = com.company1.Driver:com.company2.Driver youProject
b)第二種方法,在程序中調用Class.forName()方法。推薦使用。。。。
try
{
String driverName = “com.imaginary.sql.msql.MsqlDriver”;
Class.forName(driverName).newInstance();
}
Catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
2.連接到數據庫。
根據您後台待連接的數據庫不同,而有小小的差別。
a) 連接到Oracle數據庫。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “oracle.jdbc.driver.OracleDriver”;
Class.forName(driverName).newInstance();
//create a connection to the database;
String serverName = “127.0.0.1”;
String serverPort = “1521”;
String serverID = “datebase1”
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:oracle.thin:@” + serverName + “:” + serverPort + “:” + serverID ;
Connection = DriverManager.getConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
catch(SQLException e2)
{
//catch could not connect to the database exception.
}
b) 連接到一個SQL Server數據庫。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “com.microsoft.jdbc.sqlserver.SQLServerDriver”;
Class.forName(driverName).newInstance();
//create a connection to the database;
String serverName = “127.0.0.1”;
String serverPort = “1433”;
String serverID = serverName + serverPort ;
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:JSQLConnect ://” + serverID ;
Connection = DriverManager.getConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
catch(SQLException e2)
{
//catch could not connect to the database exception.
}
c) 連接到一個MySQL數據庫上。。。。
Connection connection = null ;
try
{
//load the jdbc driver ;
String driverName = “org.gjt.mm.mysql.Driver”;
Class.forName(driverName).newInstance();
//create a connection to the database;
String serverName = “127.0.0.1”;
String serverID = “database”;
String userName = “hello”;
String userPsw = “world”;
String url = “jdbc:mysql ://” + serverName + “/” + serverID ;
Connection = DriverManager.getConnection(url , userName , userPsw);
}
catch(ClassNotFoundException e1)
{
//catch could not find database driver exception.
}
catch(SQLException e2)
{
//catch could not connect to the database exception.
}
綜合上面的三種數據庫連接方式 , 其實大同小異。由於訪問不同的數據庫和所使用的數據庫驅動程序不同,所以導致代碼表面上有小小不同,但透過表面看來,內部都是
1. 加載一個特定的數據庫JDBC驅動。
2. 連接到一個數據庫。
3. 之後,就可以對一個特定的數據庫進行特定的操作了。
java如何連接SQLserver數據庫?
注意:在使用這個類的時候,先將對應數據庫的驅動包(JAR包),複製進項目的WebRoot文件夾下的WEB-INF文件夾下的lib文件夾下,切記必須要對應的JAR包,否則無法使用數據庫的
import java.sql.*;
public class BaseDAO {
private static final String DRIVER = “com.microsoft.sqlserver.jdbc.SQLServerDriver”;//注意:此驅動是SQL2005及以上版本的導入驅動包連接字符串
private static final String CONNECTION = “jdbc:sqlserver://localhost:1433;databaseName=Employee”; //數據庫連接字符串,databaseName就是你要連接的數據庫名,
private static final String NAME = “sa”; //數據庫用戶名
private static final String PWD = “sa”; //數據庫密碼
public static Connection GetConnection() {
Connection con = null;
try {
Class.forName(DRIVER);
con = DriverManager.getConnection(CONNECTION, NAME, PWD);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return con;
}
public static void close(ResultSet rs, PreparedStatement ps, Connection con) {
try {
if (null != rs) {
rs.close();
}
if (null != ps) {
ps.close();
}
if (null != con) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
怎麼使用JAVA連接數據庫?
1、加載驅動程序。
2、創建連接對象。
3、創建sql語句執行對象 。
4、執行sql語句。
5、對執行結果進行處理。
6、關閉相關的連接對象即可(順序跟聲明的順序相反)。
處理結果兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 行中數據的訪問。
擴展資料:
Statement
要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行數據庫存儲過程。通常通過CallableStatement實例實現。
參考資料:百度百科JAVA
java如何訪問數據庫
Java可以使用JDBC訪問數據庫,也可以使用各類ORM框架訪問數據庫,但這些框架最終還是通過JDBC訪問數據庫,它們只是封裝了數據庫操作,而使得開發者可以減少這部分消耗。因此,本文只講解JDBC訪問方式。
JDBC訪問一般分為如下流程:
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=truecharacterEncoding=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() ;
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245487.html