本文目錄一覽:
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-hant/n/241273.html