Java 通過JDBC連接Mysql數(shù)據(jù)庫
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)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。
如果要使用數(shù)據(jù)庫就要添加數(shù)據(jù)庫的驅(qū)動,不同的數(shù)據(jù)庫有不用的驅(qū)動,這里就不一一說明,添加jar程序驅(qū)動包的方法就不在這里解釋,
另一個文章里面有介紹http://www.dbjr.com.cn/article/47945.htm
下面是一個實(shí)例去介紹mysql數(shù)據(jù)庫的連接,其它數(shù)據(jù)庫的方法也是差不多的。
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)建一個數(shù)據(jù)庫,名字自己定, // 下面語句之前就要先創(chuàng)建javademo數(shù)據(jù)庫 String url = "jdbc:mysql://localhost:3306/javademo?" + "user=root&password=root&useUnicode=true&characterEncoding=UTF8"; try { // 之所以要使用下面這條語句,是因為要使用MySQL的驅(qū)動,所以我們要把它驅(qū)動起來, // 可以通過Class.forName把它加載進(jìn)去,也可以通過初始化來驅(qū)動起來,下面三種形式都可以 Class.forName("com.mysql.jdbc.Driver");// 動態(tài)加載mysql驅(qū)動 // or: // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); // or: // new com.mysql.jdbc.Driver(); System.out.println("成功加載MySQL驅(qū)動程序"); // 一個Connection代表一個數(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語句會返回一個受影響的行數(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會返回結(jié)果的集合,否則返回空值 System.out.println("學(xué)號\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連接各種數(shù)據(jù)庫的方法(經(jīng)典)
1)連接Oracle 8/8i/9i/10g/11g(thin模式)
Class.forName("oracle.JDBC.driver.OracleDriver").newInstance(); String url="JDBC:oracle:thin:@localhost:1521:orcl" //orcl為Oracle數(shù)據(jù)庫的SID String user="test"; String password="test"; Connection con=DriverManager.getConnection(url,user,password);
2)連接DB2數(shù)據(jù)庫
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數(shù)據(jù)庫
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數(shù)據(jù)庫
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數(shù)據(jù)庫
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數(shù)據(jù)庫
String url="JDBC:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/testDb/mdb");
Connection conn=DriverManager.getConnection(url,"","");
7連接Sybase數(shù)據(jù)庫
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數(shù)據(jù)庫
String url="JDBC:informix-sqli:localhost:1533/testDb:INFORMIXSERVER=myserver"user=testUser;password=testpassword"; Connection con=DriverManager.getConnection(url);
相關(guān)文章
詳解PipedInputStream和PipedOutputStream_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了管道PipedInputStream和PipedOutputStream,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05java開發(fā)使用StringUtils.split避坑詳解
這篇文章主要為大家介紹了java開發(fā)使用StringUtils.split避坑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Java rmi遠(yuǎn)程方法調(diào)用基本用法解析
這篇文章主要介紹了Java rmi遠(yuǎn)程方法調(diào)用基本用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05為什么在重寫 equals方法的同時必須重寫 hashcode方法
Object 類是所有類的父類,其 equals 方法比較的是兩個對象的引用指向的地址,hashcode 是一個本地方法,返回的是對象地址值。他們都是通過比較地址來比較對象是否相等的2016-07-07Java實(shí)現(xiàn)深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)算法
深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)是兩種基本的圖搜索算法,可用于圖的遍歷、路徑搜索等問題。DFS采用棧結(jié)構(gòu)實(shí)現(xiàn),從起點(diǎn)開始往深處遍歷,直到找到目標(biāo)節(jié)點(diǎn)或遍歷完整個圖;BFS采用隊列結(jié)構(gòu)實(shí)現(xiàn),從起點(diǎn)開始往廣處遍歷,直到找到目標(biāo)節(jié)點(diǎn)或遍歷完整個圖2023-04-04