mysql數(shù)據(jù)庫自不必說,現(xiàn)在很多程序開發(fā)應(yīng)用及站長們常用到,jdbc可能一般會(huì)比較陌生一些,jdbc是什么意思?這里也會(huì)提到,最主要的是為大家介紹一下,mysql jdbc連接步驟及常見參數(shù)詳解。
jdbc是什么意思?
jdbc(java data base connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行sql語句的javaapi,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用java語言編寫的類和接口組成。jdbc提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序,有了jdbc,向各種關(guān)系數(shù)據(jù)發(fā)送sql語句就是一件很容易的事,程序員只需用jdbcapi寫一個(gè)程序就可向相應(yīng)數(shù)據(jù)庫發(fā)送sql調(diào)用。
jdbc如何連接mysql數(shù)據(jù)庫?
⑴、需要先加載注冊(cè)jdbc驅(qū)動(dòng)程序:
class.forname("com.mysql.jdbc.driver");
class.forname("com.mysql.jdbc.driver").newinstance();
⑵、定義驅(qū)動(dòng)程序與數(shù)據(jù)源之間的連接jdbcurl:
⑶、建立數(shù)據(jù)調(diào)用api連接對(duì)象,接著建立sql陳述式對(duì)象(statementobject),最后執(zhí)行sql語句:
mysql jdbc連接常見參數(shù)及詳解:
JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。
如果要使用數(shù)據(jù)庫就要添加數(shù)據(jù)庫的驅(qū)動(dòng),不同的數(shù)據(jù)庫有不用的驅(qū)動(dòng),這里就不一一說明,添加jar程序驅(qū)動(dòng)包的方法就不在這里解釋,另一個(gè)文章里面有介紹 http://m.ythuaji.com.cn/article/45828.html
下面是一個(gè)實(shí)例去介紹mysql數(shù)據(jù)庫的連接,其它數(shù)據(jù)庫的方法也是差不多的。
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
55
56
57
58
59
60
61
62
63
|
/** * @author :陶偉基 ,微博:http://weibo.com/taoandtao * @date :2012/12/11 * @place:廣州大學(xué)華軟軟件學(xué)院 */ 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://主機(jī)名稱:連接端口/數(shù)據(jù)庫的名稱?參數(shù)=值 // 避免中文亂碼要指定useUnicode和characterEncoding // 執(zhí)行數(shù)據(jù)庫操作之前要在數(shù)據(jù)庫管理系統(tǒng)上創(chuàng)建一個(gè)數(shù)據(jù)庫,名字自己定, // 下面語句之前就要先創(chuàng)建javademo數(shù)據(jù)庫 String url = "jdbc:mysql://localhost:3306/javademo?" + "user=root&password=root&useUnicode=true&characterEncoding=UTF8" ; try { // 之所以要使用下面這條語句,是因?yàn)橐褂肕ySQL的驅(qū)動(dòng),所以我們要把它驅(qū)動(dòng)起來, // 可以通過Class.forName把它加載進(jìn)去,也可以通過初始化來驅(qū)動(dòng)起來,下面三種形式都可以 Class.forName( "com.mysql.jdbc.Driver" ); // 動(dòng)態(tài)加載mysql驅(qū)動(dòng) // or: // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); // or: // new com.mysql.jdbc.Driver(); System.out.println( "成功加載MySQL驅(qū)動(dòng)程序" ); // 一個(gè)Connection代表一個(gè)數(shù)據(jù)庫連接 conn = DriverManager.getConnection(url); // Statement里面帶有很多方法,比如executeUpdate可以實(shí)現(xiàn)插入,更新和刪除等 Statement stmt = conn.createStatement(); sql = "create table student(NO char(20),name varchar(20),primary key(NO))" ; int result = stmt.executeUpdate(sql); // executeUpdate語句會(huì)返回一個(gè)受影響的行數(shù),如果返回-1就沒有成功 if (result != - 1 ) { System.out.println( "創(chuàng)建數(shù)據(jù)表成功" ); 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會(huì)返回結(jié)果的集合,否則返回空值 System.out.println( "學(xué)號(hào)\t姓名" ); while (rs.next()) { System.out .println(rs.getString( 1 ) + "\t" + rs.getString( 2 )); // 入如果返回的是int類型可以用getInt() } } } catch (SQLException e) { System.out.println( "MySQL操作錯(cuò)誤" ); e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { conn.close(); } } } |