javamysql,javamysql實訓報告

本文目錄一覽:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:27
下一篇 2024-12-12 12:27

相關推薦

  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28
  • Python貪吃蛇遊戲設計報告

    本文將從遊戲設計的目標、實現思路、技術要點、代碼實現等多個方面對Python貪吃蛇遊戲進行詳細闡述。 一、遊戲設計的目標 貪吃蛇是一款經典的遊戲,我們的遊戲設計不僅要實現基本的玩法…

    編程 2025-04-28
  • Python管理系統設計報告

    本文將從系統設計、數據存儲、界面設計、安全性等多個方面,詳細闡述Python管理系統的設計,為讀者提供完整且系統的解決方案。 一、系統設計 Python管理系統的設計需要考慮到系統…

    編程 2025-04-27
  • Python代碼報告怎麼寫?

    Python作為一種高級編程語言,在很多領域得到了廣泛的應用。而代碼報告,作為一種記錄代碼過程,分享代碼成果的形式,也成為了Python開發和研究中越來越重要的一環。 一、代碼規範…

    編程 2025-04-25
  • Python實驗報告詳解

    一、實驗簡介 Python是一種高級編程語言,設計初衷是為了簡單易讀易寫。本實驗選擇Python作為研究對象,旨在探究其在不同應用場景下的使用方法和效果。 二、Python基礎語法…

    編程 2025-04-24
  • 人工智能報告:從原理到實踐

    一、人工智能的基本原理 人工智能是許多最新技術中最令人興奮的一種,它涉及到多個學科領域,如計算機科學、數學、工程學等。本節將介紹人工智能的基本原理。 首先,人工智能需要具備學習和自…

    編程 2025-04-23
  • 中國綠色專利統計報告

    一、綠色專利的定義和意義 綠色專利是指涉及環境保護、節能減排、可再生能源、資源循環利用等領域的專利。它在促進環保技術創新、推動綠色經濟發展、實現可持續發展等方面具有重要作用。 中國…

    編程 2025-04-22
  • Jmeter聚合報告詳解

    一、Jmeter聚合報告參數詳解 Jmeter聚合報告是Jmeter自帶的一個對測試結果進行統計和分析的工具,通過參數的修改可以滿足不同場景下的需求。 參數詳解: webRepor…

    編程 2025-04-02
  • 深入了解pytest生成allure報告

    一、基本介紹 pytest是一個功能強大的Python測試框架,可用於編寫和執行測試用例。而allure是一種靈活、輕量級的測試報告框架,提供了豐富的報告功能,可以生成漂亮、交互式…

    編程 2025-03-12
  • JMeter生成報告

    一、概述 JMeter是一款純Java開發的性能測試工具,由於其強大的能力和開源免費的特點,已被廣泛應用於各種Web應用的性能測試中。在測試過程中,生成報告是評估測試結果的重要手段…

    編程 2025-02-25

發表回復

登錄後才能評論