Java對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行連接、查詢和修改操作方法
0. 一般過(guò)程:
(1) 調(diào)用Class.forName()方法加載驅(qū)動(dòng)程序。
(2) 調(diào)用DriverManager對(duì)象的getConnection()方法,獲得一個(gè)Connection對(duì)象。
(3) 創(chuàng)建一個(gè)Statement對(duì)象,準(zhǔn)備一個(gè)SQL語(yǔ)句,這個(gè)SQL語(yǔ)句可以是Statement對(duì)象(立即執(zhí)行的的語(yǔ)句)、PreparedStatement語(yǔ)句(預(yù)編譯的語(yǔ)句)或CallableStatement對(duì)象(存儲(chǔ)過(guò)程調(diào)用的語(yǔ)句)。
(4) 調(diào)用excuteQuery()等方法執(zhí)行SQL語(yǔ)句,并將結(jié)果保存在ResultSet對(duì)象;或者調(diào)用executeUpdate()等方法執(zhí)行SQL語(yǔ)句,不返回ResultSet對(duì)象的結(jié)果。
(5)對(duì)返回的ResultSet對(duì)象進(jìn)行顯示等相當(dāng)?shù)奶幚怼?/p>
(6)釋放資源。
1. 連接數(shù)據(jù)庫(kù)
(1) 下載Mysql連接驅(qū)動(dòng)
網(wǎng)址: http://dev.mysql.com/downloads/connector/j/ ,下載后放在F:\博士科研資料\數(shù)據(jù)庫(kù)學(xué)習(xí)\mysql相關(guān)程序文件中,解壓。
(2) 加載JDBC驅(qū)動(dòng)
操作方法:在Eclipse中,選中相應(yīng)的工程,點(diǎn)擊Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,點(diǎn)OK。
(3) 建一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)如下:
import java.sql.*; public class GetConnection { public static void main(String[] args){ try{ //調(diào)用Class.forName()方法加載驅(qū)動(dòng)程序 Class.forName("com.mysql.jdbc.Driver"); System.out.println("成功加載MySQL驅(qū)動(dòng)!"); }catch(ClassNotFoundException e1){ System.out.println("找不到MySQL驅(qū)動(dòng)!"); e1.printStackTrace(); } String url="jdbc:mysql://localhost:3306/mysql"; //JDBC的URL //調(diào)用DriverManager對(duì)象的getConnection()方法,獲得一個(gè)Connection對(duì)象 Connection conn; try { conn = DriverManager.getConnection(url, "root",""); //創(chuàng)建一個(gè)Statement對(duì)象 Statement stmt = conn.createStatement(); //創(chuàng)建Statement對(duì)象 System.out.print("成功連接到數(shù)據(jù)庫(kù)!"); stmt.close(); conn.close(); } catch (SQLException e){ e.printStackTrace(); } } }
2. 查詢數(shù)據(jù)表
在詢數(shù)據(jù)表時(shí),需要用到ResultSet接口,它類似于一個(gè)數(shù)據(jù)表,通過(guò)該接口的實(shí)例可以獲得檢索結(jié)果集,以及對(duì)應(yīng)數(shù)據(jù)表的接口信息。
import java.sql.*; public class SelectTable { public static void main(String[] args){ try{ //調(diào)用Class.forName()方法加載驅(qū)動(dòng)程序 Class.forName("com.mysql.jdbc.Driver"); System.out.println("成功加載MySQL驅(qū)動(dòng)!"); String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL Connection conn; conn = DriverManager.getConnection(url, "root",""); Statement stmt = conn.createStatement(); //創(chuàng)建Statement對(duì)象 System.out.println("成功連接到數(shù)據(jù)庫(kù)!"); String sql = "select * from stu"; //要執(zhí)行的SQL ResultSet rs = stmt.executeQuery(sql);//創(chuàng)建數(shù)據(jù)對(duì)象 System.out.println("編號(hào)"+"\t"+"姓名"+"\t"+"年齡"); while (rs.next()){ System.out.print(rs.getInt(1) + "\t"); System.out.print(rs.getString(2) + "\t"); System.out.print(rs.getInt(3) + "\t"); System.out.println(); } rs.close(); stmt.close(); conn.close(); }catch(Exception e) { e.printStackTrace(); } } }
3. 修改和刪除數(shù)據(jù)庫(kù)
//修改刪除數(shù)據(jù) import java.sql.*; public class UpdateDeleteDemo { public static void main(String[] args)throws Exception{ try{ //調(diào)用Class.forName()方法加載驅(qū)動(dòng)程序 Class.forName("com.mysql.jdbc.Driver"); System.out.println("成功加載MySQL驅(qū)動(dòng)!"); String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL Connection conn; conn = DriverManager.getConnection(url, "root",""); Statement stmt = conn.createStatement(); //創(chuàng)建Statement對(duì)象 System.out.println("成功連接到數(shù)據(jù)庫(kù)!"); //查詢數(shù)據(jù)的代碼 String sql = "select * from stu"; //要執(zhí)行的SQL ResultSet rs = stmt.executeQuery(sql);//創(chuàng)建數(shù)據(jù)對(duì)象 System.out.println("編號(hào)"+"\t"+"姓名"+"\t"+"年齡"); while (rs.next()){ System.out.print(rs.getInt(1) + "\t"); System.out.print(rs.getString(2) + "\t"); System.out.print(rs.getInt(3) + "\t"); System.out.println(); } //修改數(shù)據(jù)的代碼 String sql2 = "update stu set name=? where number=?"; PreparedStatement pst = conn.prepareStatement(sql2); pst.setString(1,"8888"); pst.setInt(2,198); pst.executeUpdate(); //刪除數(shù)據(jù)的代碼 String sql3 = "delete from stu where number=?"; pst = conn.prepareStatement(sql3); pst.setInt(1,701); pst.executeUpdate(); ResultSet rs2 = stmt.executeQuery(sql);//創(chuàng)建數(shù)據(jù)對(duì)象 System.out.println("編號(hào)"+"\t"+"姓名"+"\t"+"年齡"); while (rs.next()){ System.out.print(rs2.getInt(1) + "\t"); System.out.print(rs2.getString(2) + "\t"); System.out.print(rs2.getInt(3) + "\t"); System.out.println(); } rs.close(); stmt.close(); conn.close(); }catch(Exception e) { e.printStackTrace(); } } }
以上所述是小編給大家介紹的Java對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行連接、查詢和修改操作方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 使用Java實(shí)現(xiàn)先查詢緩存再查詢數(shù)據(jù)庫(kù)
- Java mysql數(shù)據(jù)庫(kù)并進(jìn)行內(nèi)容查詢實(shí)例代碼
- 在Java的Hibernate框架中對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行查詢操作
- 使用Java對(duì)數(shù)據(jù)庫(kù)進(jìn)行基本的查詢和更新操作
- java 使用ElasticSearch完成百萬(wàn)級(jí)數(shù)據(jù)查詢附近的人功能
- java實(shí)現(xiàn)的連接數(shù)據(jù)庫(kù)及模糊查詢功能示例
- Java連接mysql數(shù)據(jù)庫(kù)并進(jìn)行內(nèi)容查詢的方法
- java查詢近七日數(shù)據(jù)功能的實(shí)現(xiàn)
相關(guān)文章
spring中websocket定時(shí)任務(wù)實(shí)現(xiàn)實(shí)時(shí)推送
本文主要介紹了spring中websocket定時(shí)任務(wù)實(shí)現(xiàn)實(shí)時(shí)推送,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Spring @Primary作用和實(shí)現(xiàn)原理詳解
今天分享一下Spring中的@Primary注解,Primary的意思是主要的,我們?cè)谑褂胹pring的時(shí)候,難免會(huì)定義多個(gè)類型相同的bean,這時(shí)候如果不采取一些方法,那么是無(wú)法正常使用bean的,所以本就給大家介紹Spring @Primary的作用和實(shí)現(xiàn)原理2023-07-07Java中l(wèi)ist根據(jù)id獲取對(duì)象的幾種方式
這篇文章主要給大家介紹了關(guān)于Java中l(wèi)ist根據(jù)id獲取對(duì)象的幾種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07SpringBoot自定義注解實(shí)現(xiàn)Token校驗(yàn)的方法
這篇文章主要介紹了SpringBoot自定義注解實(shí)現(xiàn)Token校驗(yàn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03簡(jiǎn)單了解java中int和Integer的區(qū)別
這篇文章主要介紹了簡(jiǎn)單了解java中int和Integer的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Java對(duì)zip,rar,7z文件帶密碼解壓實(shí)例詳解
在日常業(yè)務(wù)中,會(huì)遇到一些瑣碎文件需要打包到一個(gè)壓縮包中上傳,業(yè)務(wù)方在后臺(tái)接收到壓縮包后自行解壓,然后解析相應(yīng)文件。而且可能涉及安全保密,因此會(huì)在壓縮時(shí)帶上密碼,要求后臺(tái)業(yè)務(wù)可以指定密碼進(jìn)行解壓。本文將用Java解決這一問(wèn)題,需要的可以參考一下2022-07-07