Java對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行連接、查詢(xú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. 查詢(xún)數(shù)據(jù)表
在詢(xún)數(shù)據(jù)表時(shí),需要用到ResultSet接口,它類(lèi)似于一個(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ù)!");
//查詢(xún)數(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)行連接、查詢(xún)和修改操作方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 使用Java實(shí)現(xiàn)先查詢(xún)緩存再查詢(xún)數(shù)據(jù)庫(kù)
- Java mysql數(shù)據(jù)庫(kù)并進(jìn)行內(nèi)容查詢(xún)實(shí)例代碼
- 在Java的Hibernate框架中對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行查詢(xún)操作
- 使用Java對(duì)數(shù)據(jù)庫(kù)進(jìn)行基本的查詢(xún)和更新操作
- java 使用ElasticSearch完成百萬(wàn)級(jí)數(shù)據(jù)查詢(xún)附近的人功能
- java實(shí)現(xiàn)的連接數(shù)據(jù)庫(kù)及模糊查詢(xún)功能示例
- Java連接mysql數(shù)據(jù)庫(kù)并進(jìn)行內(nèi)容查詢(xún)的方法
- java查詢(xún)近七日數(shù)據(jù)功能的實(shí)現(xiàn)
相關(guān)文章
解決Callable的對(duì)象中,用@Autowired注入別的對(duì)象失敗問(wèn)題
這篇文章主要介紹了解決Callable的對(duì)象中,用@Autowired注入別的對(duì)象失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Spring實(shí)戰(zhàn)之Bean的后處理器操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean的后處理器操作,結(jié)合實(shí)例形式詳細(xì)分析了Bean的后處理器相關(guān)配置、操作方法及使用注意事項(xiàng),需要的朋友可以參考下2019-12-12
Apache Dubbo的SPI機(jī)制是如何實(shí)現(xiàn)的
SPI全稱(chēng)為Service Provider Interface,對(duì)應(yīng)中文為服務(wù)發(fā)現(xiàn)機(jī)制。SPI類(lèi)似一種可插拔機(jī)制,首先需要定義一個(gè)接口或一個(gè)約定,然后不同的場(chǎng)景可以對(duì)其進(jìn)行實(shí)現(xiàn),調(diào)用方在使用的時(shí)候無(wú)需過(guò)多關(guān)注具體的實(shí)現(xiàn)細(xì)節(jié)。在Java中,SPI體現(xiàn)了面向接口編程的思想,滿(mǎn)足開(kāi)閉設(shè)計(jì)原則。2021-06-06
java實(shí)現(xiàn)字符串匹配求兩個(gè)字符串的最大公共子串
這篇文章主要介紹了java實(shí)現(xiàn)求兩個(gè)字符串最大公共子串的方法,詳細(xì)的描述了兩個(gè)字符串的最大公共子串算法的實(shí)現(xiàn),需要的朋友可以參考下2016-10-10
Java判斷IP地址為內(nèi)網(wǎng)IP還是公網(wǎng)IP的方法
這篇文章主要介紹了Java判斷IP地址為內(nèi)網(wǎng)IP還是公網(wǎng)IP的方法,針對(duì)tcp/ip協(xié)議中保留的三個(gè)私有地址進(jìn)行判斷分析,是比較實(shí)用的技巧,需要的朋友可以參考下2015-01-01
詳解java開(kāi)發(fā)webservice的幾種方式
webservice的應(yīng)用已經(jīng)越來(lái)越廣泛了,下面介紹幾種在Java體系中開(kāi)發(fā)webservice的方式,有興趣的可以了解一下。2016-11-11
解決Java原生壓縮組件不支持中文文件名亂碼的問(wèn)題
本篇文章主要介紹了解決Java原生壓縮組件不支持中文文件名亂碼的問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03

