JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序。
如果要使用數據庫就要添加數據庫的驅動,不同的數據庫有不用的驅動,這里就不一一說明,添加jar程序驅動包的方法就不在這里解釋,
下面是一個實例去介紹mysql數據庫的連接,其它數據庫的方法也是差不多的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Connection; import java.sql.Statement; public class MysqlDemo { public static void main(String[] args) throws Exception { Connection conn = null ; String sql; // MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱:連接端口/數據庫的名稱?參數=值 // 避免中文亂碼要指定useUnicode和characterEncoding // 執行數據庫操作之前要在數據庫管理系統上創建一個數據庫,名字自己定, // 下面語句之前就要先創建javademo數據庫 String url = "jdbc:mysql://localhost:3306/javademo?" + "user=root&password=root&useUnicode=true&characterEncoding=UTF8" ; try { // 之所以要使用下面這條語句,是因為要使用MySQL的驅動,所以我們要把它驅動起來, // 可以通過Class.forName把它加載進去,也可以通過初始化來驅動起來,下面三種形式都可以 Class.forName( "com.mysql.jdbc.Driver" ); // 動態加載mysql驅動 // or: // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); // or: // new com.mysql.jdbc.Driver(); System.out.println( "成功加載MySQL驅動程序" ); // 一個Connection代表一個數據庫連接 conn = DriverManager.getConnection(url); // Statement里面帶有很多方法,比如executeUpdate可以實現插入,更新和刪除等 Statement stmt = conn.createStatement(); sql = "create table student(NO char(20),name varchar(20),primary key(NO))" ; int result = stmt.executeUpdate(sql); // executeUpdate語句會返回一個受影響的行數,如果返回-1就沒有成功 if (result != - 1 ) { System.out.println( "創建數據表成功" ); sql = "insert into student(NO,name) values('2012001','陶偉基')" ; result = stmt.executeUpdate(sql); sql = "insert into student(NO,name) values('2012002','周小俊')" ; result = stmt.executeUpdate(sql); sql = "select * from student" ; ResultSet rs = stmt.executeQuery(sql); // executeQuery會返回結果的集合,否則返回空值 System.out.println( "學號\t姓名" ); while (rs.next()) { System.out .println(rs.getString( 1 ) + "\t" + rs.getString( 2 )); // 入如果返回的是int類型可以用getInt() } } } catch (SQLException e) { System.out.println( "MySQL操作錯誤" ); e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { conn.close(); } } } |
另附上JDBC連接各種數據庫的方法(經典)
1)連接Oracle 8/8i/9i/10g/11g(thin模式)
1
2
3
4
5
6
7
8
9
|
Class.forName( "oracle.JDBC.driver.OracleDriver" ).newInstance(); String url= "JDBC:oracle:thin:@localhost:1521:orcl" //orcl為Oracle數據庫的SID String user= "test" ; String password= "test" ; Connection con=DriverManager.getConnection(url,user,password); |
2)連接DB2數據庫
1
2
3
4
5
6
7
|
Class.forName( "com.ibm.db2.jcc.DB2Driver" ); String url= "JDBC:db2://localhost:5000/testDb" ; String user= "test" ; String password= "test" ; Connection con=DriverManager.getConnection(url,user,password); |
3)連接MySQL數據庫
1
2
3
4
5
6
7
|
Class.forName( "com.mysql.jdbc.Driver" ); String url= "JDBC:mysql://localhost:8080/testDB" ; String user= "test" ; String password= "test" ; Connection con=DriverManager.getConnection(url,user,password); |
4)連接SQL Server2000數據庫
1
2
3
4
5
6
7
|
Class.forName( "com.microsoft.JDBC.sqlserver.SQLServerDriver" ); String url= "JDBC:microsoft:sqlserver://localhost:1433;DatabaseName=testDb" ; String user= "test" ; String password= "test" ; Connection con=DriverManager.getConnection(url,user,password); |
5)連接PostgreSQL數據庫
1
2
3
4
5
6
7
|
Class.forName( "org.postgresql.Driver" ); String url= "JDBC:postgresql://localhost/testDb" ; String user= "test" ; String password= "test" ; Connection con=DriverManager.getConnection(url,user,password); |
6)連接Access數據庫
String url="JDBC:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/testDb/mdb");
Connection conn=DriverManager.getConnection(url,"","");
7連接Sybase數據庫
1
2
3
4
5
6
7
8
9
10
11
|
Class.forName( "com.sybase.JDBC.SybDriver" ); String url= "JDBC:sybase:Tds:localhost:5007/testDb" ; Properties pro=System.getProperties(); pro.put( "user" , "userId" ); pro.put( "password" , "user_password" ); Connection con=DriverManager.getConnection(url,pro); |
8連接informix數據庫
String url="JDBC:informix-sqli:localhost:1533/testDb:INFORMIXSERVER=myserver"user=testUser;password=testpassword"; Connection con=DriverManager.getConnection(url);