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.dhdzp.com/article/47945.htm
下面是一個實例去介紹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://主機名稱:連接端口/數(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把它加載進去,也可以通過初始化來驅(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可以實現(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)文章
springBoot+mybaties后端多層架構(gòu)的實現(xiàn)示例
本文主要介紹了springBoot+mybaties后端多層架構(gòu)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
SpringBoot中的yml文件中讀取自定義配置信息及遇到問題小結(jié)
這篇文章主要介紹了SpringBoot中的yml文件中讀取自定義配置信息,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
java使用compareTo實現(xiàn)一個類的對象之間比較大小操作
這篇文章主要介紹了java使用compareTo實現(xiàn)一個類的對象之間比較大小操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Java遠程調(diào)用組件Feign技術(shù)使用詳解
Feign是Netflix公司開發(fā)的一個聲明式的REST調(diào)用客戶端; Ribbon負載均衡、 Hystrⅸ服務(wù)熔斷是我們Spring Cloud中進行微服務(wù)開發(fā)非?;A(chǔ)的組件,在使用的過程中我們也發(fā)現(xiàn)它們一般都是同時出現(xiàn)的,而且配置也都非常相似2022-11-11
SpringBoot查詢PGSQL分表后的數(shù)據(jù)的代碼示例
數(shù)據(jù)庫用的pgsql,在表數(shù)據(jù)超過100w條的時候執(zhí)行定時任務(wù)進行了分表,分表后表名命名為原的表名后面拼接時間,但是我在java業(yè)務(wù)代碼中,我想查詢之前的那條數(shù)據(jù)就查不到了,本文給大家介紹了SpringBoot中如何查詢PGSQL分表后的數(shù)據(jù),需要的朋友可以參考下2024-05-05
Java中使用輾轉(zhuǎn)相除法求最大公約數(shù)
這篇文章主要介紹了Java中使用輾轉(zhuǎn)相除法求最大公約數(shù),本文直接給出代碼實例,需要的朋友可以參考下2015-05-05

