工具:eclipse
創(chuàng)新互聯(lián)公司為您提適合企業(yè)的網(wǎng)站設(shè)計?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競爭力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè), 我們的網(wǎng)頁設(shè)計師為您提供的解決方案。
MySQL5.6
MySQL連接驅(qū)動:mysql-connector-java-5.1.27.jar
加載驅(qū)動:
1. 在工程目錄中創(chuàng)建lib文件夾,將下載好的JDBC放到該文件夾下,如下圖所示:
2. 右鍵工程名,在java build path中的Libraries分頁中選擇Add JARs...,選擇剛才添加的JDBC,如下圖:
數(shù)據(jù)包準(zhǔn)備:
在數(shù)據(jù)庫sqltestdb中創(chuàng)建如下數(shù)據(jù)表emp:
1
2
3
4
5
6
7
CREATE TABLE emp(
empno INT(4) PRIMARY KEY,
ename VARCHAR(10),
job VARCHAR(9),
hiredate DATE,
sal FLOAT(7,2)
) ;
添加數(shù)據(jù):
連接數(shù)據(jù)庫并讀取數(shù)據(jù):
數(shù)據(jù)庫名稱:sqltestdb
數(shù)據(jù)包名稱:emp
端口號:3306
用戶名:root
密碼:root
1 package sqldemo;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.sql.Statement;
8
9 public class main {
10
11 public static void main(String[] args) {
12 //聲明Connection對象
13 Connection con;
14 //驅(qū)動程序名
15 String driver = "com.mysql.jdbc.Driver";
16 //URL指向要訪問的數(shù)據(jù)庫名mydata
17 String url = "jdbc:mysql://localhost:3306/sqltestdb";
18 //MySQL配置時的用戶名
19 String user = "root";
20 //MySQL配置時的密碼
21 String password = "123456";
22 //遍歷查詢結(jié)果集
23 try {
24 //加載驅(qū)動程序
25 Class.forName(driver);
26 //1.getConnection()方法,連接MySQL數(shù)據(jù)庫??!
27 con = DriverManager.getConnection(url,user,password);
28 if(!con.isClosed())
29 System.out.println("Succeeded connecting to the Database!");
30 //2.創(chuàng)建statement類對象,用來執(zhí)行SQL語句??!
31 Statement statement = con.createStatement();
32 //要執(zhí)行的SQL語句
33 String sql = "select * from emp";
34 //3.ResultSet類,用來存放獲取的結(jié)果集??!
35 ResultSet rs = statement.executeQuery(sql);
36 System.out.println("-----------------");
37 System.out.println("執(zhí)行結(jié)果如下所示:");
38 System.out.println("-----------------");
39 System.out.println("姓名" + "\t" + "職稱");
40 System.out.println("-----------------");
41
42 String job = null;
43 String id = null;
44 while(rs.next()){
45 //獲取stuname這列數(shù)據(jù)
46 job = rs.getString("job");
47 //獲取stuid這列數(shù)據(jù)
48 id = rs.getString("ename");
49
50 //輸出結(jié)果
51 System.out.println(id + "\t" + job);
52 }
53 rs.close();
54 con.close();
55 } catch(ClassNotFoundException e) {
56 //數(shù)據(jù)庫驅(qū)動類異常處理
57 System.out.println("Sorry,can`t find the Driver!");
58 e.printStackTrace();
59 } catch(SQLException e) {
60 //數(shù)據(jù)庫連接失敗異常處理
61 e.printStackTrace();
62 }catch (Exception e) {
63 // TODO: handle exception
64 e.printStackTrace();
65 }finally{
66 System.out.println("數(shù)據(jù)庫數(shù)據(jù)成功獲取??!");
67 }
68 }
69
70 }
運(yùn)行結(jié)果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Succeeded connecting to the Database!
-----------------
執(zhí)行結(jié)果如下所示:
-----------------
姓名 職稱
-----------------
李興華 經(jīng)理
張三 總監(jiān)
王五 廠長
齊秦 書記
張剛 組長
曹操 財務(wù)
李四 總裁
數(shù)據(jù)庫數(shù)據(jù)成功獲?。?!
增加、刪除和修改數(shù)據(jù):
增加數(shù)據(jù):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String name;
String id;
PreparedStatement psql;
ResultSet res;
//預(yù)處理添加數(shù)據(jù),其中有兩個參數(shù)--“?”
psql = con.prepareStatement("insert into emp (empno,ename,job,hiredate,sal) "
+ "values(?,?,?,?,?)");
psql.setInt(1, 3212); //設(shè)置參數(shù)1,創(chuàng)建id為3212的數(shù)據(jù)
psql.setString(2, "王剛"); //設(shè)置參數(shù)2,name 為王剛
psql.setString(3, "總裁");
DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
Date myDate2 = dateFormat2.parse("2010-09-13");
psql.setDate(4,new java.sql.Date(myDate2.getTime()));
psql.setFloat(5, (float) 2000.3);
psql.executeUpdate(); //執(zhí)行更新
運(yùn)行結(jié)果:
更新數(shù)據(jù):
PreparedStatement psql;
//預(yù)處理更新(修改)數(shù)據(jù),將王剛的sal改為5000.0
psql = con.prepareStatement("update emp set sal = ? where ename = ?");
psql.setFloat(1,(float) 5000.0);
psql.setString(2,"王剛");
psql.executeUpdate();
更改結(jié)果:
刪除數(shù)據(jù):
PreparedStatement psql;
//預(yù)處理刪除數(shù)據(jù)
psql = con.prepareStatement("delete from emp where sal ?");
psql.setFloat(1, 4500);
psql.executeUpdate();
psql.close();
刪除結(jié)果:
驅(qū)動mysql-connector-java-5.0.5.zip(這個是最新版的)。然后將其解壓縮到任一目錄。我是解壓到D盤,然后將其目錄下的
mysql-connector-java-5.0.5-bin.jar加到classpath里,
具體如下:“我的電腦”- “屬性” - “高級” -
“環(huán)境變量”,在系統(tǒng)變量那里編輯classpath,將D:\mysql-connector-java-5.0.5\mysql-
connector-java-5.0.5-bin.jar加到最后,在加這個字符串前要加“;”,以與前一個classpath區(qū)分開。然后確定。
環(huán)境配置好了,很簡單?,F(xiàn)在,先配置Java連接MySQL,設(shè)其用戶名為“root”,密碼為“root”。在命令行或用一個SQL的前端軟件創(chuàng)建Database。
我是用SQLyog的前端軟件來創(chuàng)建Database的。
先創(chuàng)建數(shù)據(jù)庫:
CREATE DATABASE SCUTCS;
接著,創(chuàng)建表:
CREATE TABLE STUDENT ( SNO CHAR(7) NOT NULL, SNAME VARCHAR(8) NOT NULL, SEX CHAR(2) NOT NULL, BDATE DATE NOT NULL, HEIGHT DEC(5,2) DEFAULT 000.00, PRIMARY KEY(SNO) );
然后插入數(shù)據(jù),可以用SQL語句insert into 表名 values (value1, value2, ...);
也可以用SQLyog來操作
好了,創(chuàng)建好了。
下面,我們來編寫.java文件來演示一下如何訪問Java連接MySQL數(shù)據(jù)庫。
import java.sql.*; public class JDBCTest { public static void main(String[] args){
驅(qū)動程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要訪問的數(shù)據(jù)庫名scutcs
String url = "jdbc:mysql://127.0.0.1:3306/scutcs";
// MySQL配置時的用戶名
String user = "root";
// Java連接MySQL配置時的密碼
String password = "root";
try {
// 加載驅(qū)動程序
Class.forName(driver);
// 連續(xù)數(shù)據(jù)庫
Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
// statement用來執(zhí)行SQL語句
Statement statement = conn.createStatement();
// 要執(zhí)行的SQL語句
String sql = "select * from student";
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JDBCMySQL {
// 驅(qū)動程序就是之前在classpath中配置的jdbc的驅(qū)動程序的jar包中
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
// 連接地址是由各個數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn";
// 連接數(shù)據(jù)庫的用戶名
public static final String DBUSER = "root";
// 連接數(shù)據(jù)庫的密碼
public static final String DBPASS = "mysqladmin";
public static void main(String[] args) throws Exception {
Connection conn = null; // 表示數(shù)據(jù)庫的連接的對象
PreparedStatement pstmt = null; // 表示數(shù)據(jù)庫的更新操作
String name = "張三";
int age = 30;
Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1983-02-15");
float salary = 7000.0f;
String sql = "INSERT INTO person(name,age,birthday,salary) VALUES (?,?,?,?) ";
System.out.println(sql) ;
// 1、使用Class類加載驅(qū)動程序
Class.forName(DBDRIVER);
// 2、連接數(shù)據(jù)庫
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
// 3、PreparedStatement接口需要通過Connection接口進(jìn)行實例化操作
pstmt = conn.prepareStatement(sql) ;// 使用預(yù)處理的方式創(chuàng)建對象
pstmt.setString(1, name) ;// 第一個?號的內(nèi)容
pstmt.setInt(2, age) ; // 第二個?號的內(nèi)容
pstmt.setDate(3, new java.sql.Date(date.getTime())) ;
pstmt.setFloat(4,salary) ;
// 執(zhí)行SQL語句,更新數(shù)據(jù)庫
pstmt.executeUpdate();
// 4、關(guān)閉數(shù)據(jù)庫
pstmt.close() ;
conn.close();
}
}
Java MySQL 連接
Java 連接 MySQL 需要驅(qū)動包,百度就有自行下載,解壓后得到j(luò)ar庫文件,然后在對應(yīng)的項目中導(dǎo)入該庫文件。
本實例使用的是 Eclipse,導(dǎo)入 jar 包:
創(chuàng)建測試數(shù)據(jù)
接下來我們在 MySQL 中創(chuàng)建 RUNOOB 數(shù)據(jù)庫,并創(chuàng)建 websites 數(shù)據(jù)表,表結(jié)構(gòu)如下:
CREATE?TABLE?`websites`?(
`id`?int(11)?NOT?NULL?AUTO_INCREMENT,
`name`?char(20)?NOT?NULL?DEFAULT?''?COMMENT?'站點(diǎn)名稱',
`url`?varchar(255)?NOT?NULL?DEFAULT?'',
`alexa`?int(11)?NOT?NULL?DEFAULT?'0'?COMMENT?'Alexa?排名',
`country`?char(10)?NOT?NULL?DEFAULT?''?COMMENT?'國家',
PRIMARY?KEY?(`id`))?ENGINE=InnoDB?AUTO_INCREMENT=10?DEFAULT?CHARSET=utf8;
數(shù)據(jù)表顯示如下:
連接數(shù)據(jù)庫
以下實例使用了 JDBC 連接 MySQL 數(shù)據(jù)庫,注意一些數(shù)據(jù)如用戶名,密碼需要根據(jù)你的開發(fā)環(huán)境來配置:
MySQLDemo.java 文件代碼:
package?com.runoob.test;?
import?java.sql.*;?
public?class?MySQLDemo?{
//?JDBC?驅(qū)動名及數(shù)據(jù)庫?URL
static?final?String?JDBC_DRIVER?=?"com.mysql.jdbc.Driver";??
static?final?String?DB_URL?=?"jdbc:mysql://localhost:3306/RUNOOB";
//?數(shù)據(jù)庫的用戶名與密碼,需要根據(jù)自己的設(shè)置
static?final?String?USER?=?"root";
static?final?String?PASS?=?"123456";
public?static?void?main(String[]?args)?{
Connection?conn?=?null;
Statement?stmt?=?null;
try{
//?注冊?JDBC?驅(qū)動
Class.forName("com.mysql.jdbc.Driver");
//?打開鏈接
System.out.println("連接數(shù)據(jù)庫...");
conn?=?DriverManager.getConnection(DB_URL,USER,PASS);
//?執(zhí)行查詢
System.out.println("?實例化Statement對...");
stmt?=?conn.createStatement();
String?sql;
sql?=?"SELECT?id,?name,?url?FROM?websites";
ResultSet?rs?=?stmt.executeQuery(sql);
//?展開結(jié)果集數(shù)據(jù)庫
while(rs.next()){
//?通過字段檢索
int?id??=?rs.getInt("id");
String?name?=?rs.getString("name");
String?url?=?rs.getString("url");
//?輸出數(shù)據(jù)
System.out.print("ID:?"?+?id);
System.out.print(",?站點(diǎn)名稱:?"?+?name);
System.out.print(",?站點(diǎn)?URL:?"?+?url);
System.out.print("\n");
}
//?完成后關(guān)閉
rs.close();
stmt.close();
conn.close();
}catch(SQLException?se){
//?處理?JDBC?錯誤
se.printStackTrace();
}catch(Exception?e){
//?處理?Class.forName?錯誤
e.printStackTrace();
}finally{
//?關(guān)閉資源
try{
if(stmt!=null)?stmt.close();
}catch(SQLException?se2){
}//?什么都不做
try{
if(conn!=null)?conn.close();
}catch(SQLException?se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
以上實例執(zhí)行輸出結(jié)果如下:
我有一個微信公眾號,經(jīng)常會分享一些Java技術(shù)相關(guān)的干貨,還有一些學(xué)習(xí)資源。
如果你喜歡我的分享,可以用微信搜索“Java團(tuán)長”或者“javatuanzhang”關(guān)注。
下面代碼是使用jdbc直接鏈接mysql的操作,鏈接方式與SQL SERVER類似,區(qū)別在于加載的驅(qū)動不同,url的設(shè)置也有點(diǎn)區(qū)別,用戶名、密碼、端口號這些設(shè)置都類似
執(zhí)行腳本返回的結(jié)果,可以看出java成功鏈接上mysql并獲取到返回值
mysql-connector-java-5.1.26-bin.jar是java鏈接mysql使用的jar包,與SQL SERVER鏈接也有專門的jar包,jar包中包含了java鏈接mysql所用到的函數(shù)驅(qū)動等等,所有的jar包都是放到web工程lib目錄下
4
如果工程是整合在ssh下,一般情況下都會有一個properties文件,該文件配置了數(shù)據(jù)庫鏈接常用的命令,下圖是mysql中的配置
使用spring框架下進(jìn)行的測試,結(jié)果可以成功執(zhí)行,其實無論是sql server還是mysql還是其他的數(shù)據(jù)庫,基本功能都一樣,只是語法結(jié)構(gòu)有所區(qū)別,java在調(diào)用的過程中大部分功能只要切換了數(shù)據(jù)庫鏈接命令就可以公用,如果系統(tǒng)架構(gòu)設(shè)計的足夠好,當(dāng)我們切換數(shù)據(jù)庫的時候,應(yīng)用程序是不用調(diào)整就能兼容的
連接 mysql數(shù)據(jù)庫可以參考如下java代碼:
import?java.sql.Connection?;
import?java.sql.DriverManager?;
import?java.sql.SQLException?;
public?class?ConnectionDemo{
//?定義MySQL的數(shù)據(jù)庫驅(qū)動程序
public?static?final?String?DBDRIVER?=?"org.gjt.mm.mysql.Driver"?;
//?定義MySQL數(shù)據(jù)庫的連接地址
public?static?final?String?DBURL?=?"jdbc:mysql://localhost:3306/mldn"?;
//?MySQL數(shù)據(jù)庫的連接用戶名
public?static?final?String?DBUSER?=?"root"?;
//?MySQL數(shù)據(jù)庫的連接密碼
public?static?final?String?DBPASS?=?"mysqladmin"?;
public?static?void?main(String?args[]){
Connection?conn?=?null?;//?數(shù)據(jù)庫連接
try{
Class.forName(DBDRIVER)?;//?加載驅(qū)動程序
}catch(ClassNotFoundException?e){
e.printStackTrace()?;
}
try{
conn?=?DriverManager.getConnection(DBURL,DBUSER,DBPASS)?;
}catch(SQLException?e){
e.printStackTrace()?;
}
System.out.println(conn)?;//?如果此時可以打印表示連接正常
try{
conn.close()?;//?數(shù)據(jù)庫關(guān)閉
}catch(SQLException?e){
e.printStackTrace()?;
}
}
};
當(dāng)前標(biāo)題:java怎么和mysql,JAVA怎么和數(shù)據(jù)庫連在一起
本文地址:http://chinadenli.net/article18/hdoidp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、ChatGPT、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)