本文目錄一覽:
java怎麼連接mysql
下面代碼是使用jdbc直接鏈接mysql的操作,鏈接方式與SQL SERVER類似,區別在於載入的驅動不同,url的設置也有點區別,用戶名、密碼、埠號這些設置都類似
執行腳本返回的結果,可以看出java成功鏈接上mysql並獲取到返回值
mysql-connector-java-5.1.26-bin.jar是java鏈接mysql使用的jar包,與SQL SERVER鏈接也有專門的jar包,jar包中包含了java鏈接mysql所用到的函數驅動等等,所有的jar包都是放到web工程lib目錄下
4
如果工程是整合在ssh下,一般情況下都會有一個properties文件,該文件配置了資料庫鏈接常用的命令,下圖是mysql中的配置
使用spring框架下進行的測試,結果可以成功執行,其實無論是sql server還是mysql還是其他的資料庫,基本功能都一樣,只是語法結構有所區別,java在調用的過程中大部分功能只要切換了資料庫鏈接命令就可以公用,如果系統架構設計的足夠好,當我們切換資料庫的時候,應用程序是不用調整就能兼容的
如何用java創建mysql資料庫
JDBC連接資料庫
•創建一個以JDBC連接資料庫的程序,包含7個步驟:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入MySql的驅動類
Class.forName(“com.mysql.jdbc.Driver”) ;
}catch(ClassNotFoundException e){
System.out.println(“找不到驅動程序類 ,載入驅動失敗!”);
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例註冊到DriverManager類中。
2、提供JDBC連接的URL
•連接URL定義了連接資料庫時的協議、子協議、數據源標識。
•書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=truecharacterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
•要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,
該對象就代表一個資料庫的連接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和
密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
String url = “jdbc:mysql://localhost:3306/test” ;
String username = “root” ;
String password = “root” ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println(“資料庫連接失敗!”);
se.printStackTrace() ;
}
4、創建一個Statement
•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3
種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall(“{CALL demoSp(? , ?)}”) ;
java是怎麼連接mysql資料庫的
使用java連接MySQL資料庫與其他的資料庫連接核心是一樣的,如果說區別,那就是所需的驅動不一樣。
工具/原料
MySQL、JDK
方法/步驟
1、首先需要安裝好JDK(配置環境變數),如圖所示:
2、其次要安裝好MySQL資料庫,可以使用可視化Navicar For MySQL,如圖所示:
3、最後通過代碼進行連接。
(1)確定連接路徑URL:
String url=”jdbc:mysql://localhost(可以是本機IP地址):3306(埠號)/mysqltest(資料庫名稱)?”+”user=用戶賬號password=用戶密碼useUnicode=字元編碼”;
(2)載入驅動:
Class.forName(“com.mysql.jdbc.Driver”);
(3)連接,獲取Connection對象
Connection conn=DriverManager.getConnection(url)
(4)可以通過conn對象檢驗連接與否。
求一個java mysql 查詢思路
其實我也沒有啥好辦法,我甚至推薦你使用樓上說的方法,直接select * 將數據全部查出後,在service中用java處理數據更加方便。
如果要強行使用sql查出來,我這裡寫了這麼一段:
首先因為是同一張表,根據不同條件將結果拼接在一起,我能想到的就是用left join,我按照不同條件將數據分成如下幾段:
a段:姓名段,作為left join的主表,只有姓名;
b段:吃了早餐段;
c段:沒吃早餐段;
d段:吃了晚餐段;
e段:沒吃晚餐段;
f段:吃了飯段;
g段:沒吃飯段。
除了a段以外,其他段都是根據自身條件
SELECT
name,
count(*) count,
sum(weight) sum,
然後依次左連接將所有段通過姓名連接到一起,最終組成的sql語句如下:
SELECT
a.name 姓名,
ifnull(b.count, 0) 吃了早餐的次數,
ifnull(b.sum, 0) 吃了早餐的重量,
ifnull(c.count, 0) 沒吃早餐的次數,
ifnull(c.sum, 0) 沒吃早餐的重量,
ifnull(d.count, 0) 吃了晚餐的次數,
ifnull(d.sum, 0) 吃了晚餐的重量,
ifnull(e.count, 0) 沒吃晚餐的次數,
ifnull(e.sum, 0) 沒吃晚餐的重量,
ifnull(f.count, 0) 吃了飯的次數,
ifnull(f.sum, 0) 吃了飯的重量,
ifnull(g.count, 0) 沒吃飯的次數,
ifnull(g.sum, 0) 沒吃飯的重量
FROM
(SELECT DISTINCT name
FROM T) a LEFT JOIN
(SELECT
name,
count(*) count,
sum(weight) sum
FROM T
WHERE type = 0 AND status = 0
GROUP BY name) b ON a.name = b.name
LEFT JOIN
(SELECT
name,
count(*) count,
sum(weight) sum
FROM T
WHERE type = 0 AND status = 1
GROUP BY name) c ON a.name = c.name
LEFT JOIN
(SELECT
name,
count(*) count,
sum(weight) sum
FROM T
WHERE type = 1 AND status = 0
GROUP BY name) d ON a.name = d.name
LEFT JOIN
(SELECT
name,
count(*) count,
sum(weight) sum
FROM T
WHERE type = 1 AND status = 1
GROUP BY name) e ON a.name = e.name
LEFT JOIN
(SELECT
name,
count(*) count,
sum(weight) sum
FROM T
WHERE status = 0
GROUP BY name) f ON a.name = f.name
LEFT JOIN
(SELECT
name,
count(*) count,
sum(weight) sum
FROM T
WHERE status = 1
GROUP BY name) g ON a.name = g.name
T表結構為:
(因為以name欄位進行連接,type和status作為條件,建議以該三個欄位作為索引)
T表測試數據為:
運行結果為:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241273.html