本文目錄一覽:
- 1、求一個java mysql 查詢思路
- 2、如何連接java和mysql數據庫
- 3、大數據分析師面試必備:java與mysql解析
- 4、java是怎麼連接mysql數據庫的
- 5、java怎麼連接mysql
求一個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表測試數據為:
運行結果為:
如何連接java和mysql數據庫
當然,首先要安裝有JDK(一般是JDK1.5.X)。然後安裝MySQL,這些都比較簡單,具體過程就不說了。配置好這兩個環境後,下載JDBC驅動mysql-connector-java-5.0.5.zip(這個是最新版的)。然後將其解壓縮到任一目錄。我是解壓到D盤,然後將其目錄下的mysql-connector-java-5.0.5-bin.jar加到classpath里,具體如下:“我的電腦”- “屬性” – “高級” – “環境變量”,在系統變量那裡編輯classpath,將D:\mysql-connector-java-5.0.5\mysql-connector-java-5.0.5-bin.jar加到最後,在加這個字符串前要加“;”,以與前一個classpath區分開。然後確定。
環境配置好了,很簡單。現在,先配置MySQL,設其用戶名為“root”,密碼為“root”。在命令行或用一個SQL的前端軟件創建Database。
我是用SQLyog的前端軟件來創建Database的。
先創建數據庫:
CREATE DATABASE SCUTCS;
接着,創建表:
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)
);
然後插入數據,可以用SQL語句insert into 表名 values (value1, value2, …);
也可以用SQLyog來操作
好了,創建好了。
下面,我們來編寫.java文件來演示一下如何訪問MySQL數據庫。
import java.sql.*;
public class JDBCTest {
public static void main(String[] args){
// 驅動程序名
String driver = “com.mysql.jdbc.Driver”;
// URL指向要訪問的數據庫名scutcs
String url = “jdbc:mysql://127.0.0.1:3306/scutcs”;
// MySQL配置時的用戶名
String user = “root”;
// MySQL配置時的密碼
String password = “root”;
try {
// 加載驅動程序
Class.forName(driver);
// 連續數據庫
Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println(“Succeeded connecting to the Database!”);
// statement用來執行SQL語句
Statement statement = conn.createStatement();
// 要執行的SQL語句
String sql = “select * from student”;
// 結果集
ResultSet rs = statement.executeQuery(sql);
System.out.println(“—————–“);
System.out.println(“執行結果如下所示:”);
System.out.println(“—————–“);
System.out.println(” 學號” + “\t” + ” 姓名”);
System.out.println(“—————–“);
String name = null;
while(rs.next()) {
// 選擇sname這列數據
name = rs.getString(“sname”);
/* 何問起 hovertree.com */
// 首先使用ISO-8859-1字符集將name解碼為字節序列並將結果存儲新的字節數組中。
// 然後使用GB2312字符集解碼指定的字節數組
name = new String(name.getBytes(“ISO-8859-1″),”GB2312”);
// 輸出結果
System.out.println(rs.getString(“sno”) + “\t” + name);
}
rs.close();
大數據分析師面試必備:java與mysql解析
【導讀】作為大數據工程師,其必須要掌握的基礎知識就是java與mysql的關係、交互和連接,作為基礎,也是面試考官經常會考的內容,為了幫助大家都能順利通過考試,今天小編就來和大家嘮一嘮java與mysql的關係、交互和連接,好了,開始今天的內容大數據分析師面試必備:java與mysql解析。
1. SQL語言四大類:
DQL 數據查詢語言 select
DML 數據操作語言 insert、update、delete
DDL 數據界說語言 create、alter
DCL 數據控制語言 grant權限
2. mysql數據庫中的decimal類型(是數值型,不能存放字符串):
舉例:decimal(18,0) 常用於身份證號碼,但是帶x的不可以。
舉例:decimal(5,2)
狀況一:假設小數點前面是3位,後邊是2位,正常狀況。
狀況二:5指的是小數點前後不能超過5位,小數點後有必要是2位。
3. mysql中InnoDB和MyISAM引擎的差異:
innodb支撐:事務和主外鍵
myisam不支撐:事務和主外鍵
4. 【不需要背誦,選擇題考點】向mysql中,a向表中添加數據的幾種寫法,題目:id int 主鍵自增,name varchar(11)
不為空。
5. 操作mysql數據庫表有兩種方式,第一種:點八點吧;第二種:寫代碼。【不需要背誦,只需要了解,考試選擇題會出】
6. 在Java中,簡述面向對象三大特徵。
7. 在Java中,常用關鍵字:
1. 定義類的關鍵字是什麼? class
2. 繼承的關鍵字是什麼? extends
3. 定義接口的關鍵字是什麼? interface
4. 實現接口的關鍵字是什麼? implements
5. 抽象類的關鍵字是什麼? abstract
8. 在Java中,抽象類和接口的區別:
1. 抽象類中可以包含普通方法和抽象方法,接口中只能包含抽象方法
2. 抽象類中可以有構造方法,接口中沒有構造方法
3. 抽象類只能單繼承,可以實現多個接口
9. Java接口中有哪些成員?
1. 構造方法,沒有
2. 常量,默認訪問修飾符public static final,沒有變量
3. 抽象方法,默認訪問修飾符public abstract
10. 在Java中,抽象類和抽象方法的關係:
1. 抽象類中可以包含普通方法和抽象方法,抽象方法一定存在抽象類中。
2. 子類繼承抽象父類,必須實現|重寫抽象方法,除非子類也是抽象類。
3. 【判斷題】抽象類中必須包含抽象方法?【錯誤×】
4. 【判斷題】抽象方法一定存在抽象類中?【正確√】
11. Java重載的特點:
1. 在同一個類中
2. 方法名相同
3. 參數列表(個數、類型、順序)不同
4. 與返回值類型和訪問修飾符無關
12. Java重寫的特點:
1. 在父子類中
2. 方法名相同
3. 參數列表相同
4. 返回值類型相同,或是其子類
5. 訪問修飾符相同,或不能嚴於父類
13. 列舉幾種Java實現多態的形式:
1. 繼承的存在
2. 父類引用指向子類對象 | 向上轉型
3. 父類作為方法的返回值類型,父類作為方法的參數
14. Java接口的特性:單根性和傳遞性
15. 在Java中,throws和throw的區別:
1. throws 聲明異常,用在定義方法小括號的後面
2. throw 拋出異常,寫在方法體內
以上就是小編今天給大家整理髮送的關於大數據分析師面試必備:java與mysql解析的相關內容,希望對各位考生有所幫助,想知道更多關於數據分析師的基本要求有哪些,關注小編持續更新數據分析師崗位解析。
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
下面代碼是使用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在調用的過程中大部分功能只要切換了數據庫鏈接命令就可以公用,如果系統架構設計的足夠好,當我們切換數據庫的時候,應用程序是不用調整就能兼容的
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/296198.html