Java對MySQL數(shù)據(jù)庫進(jìn)行連接、查詢和修改操作方法
0. 一般過程:
(1) 調(diào)用Class.forName()方法加載驅(qū)動程序。
(2) 調(diào)用DriverManager對象的getConnection()方法,獲得一個Connection對象。
(3) 創(chuàng)建一個Statement對象,準(zhǔn)備一個SQL語句,這個SQL語句可以是Statement對象(立即執(zhí)行的的語句)、PreparedStatement語句(預(yù)編譯的語句)或CallableStatement對象(存儲過程調(diào)用的語句)。
(4) 調(diào)用excuteQuery()等方法執(zhí)行SQL語句,并將結(jié)果保存在ResultSet對象;或者調(diào)用executeUpdate()等方法執(zhí)行SQL語句,不返回ResultSet對象的結(jié)果。
(5)對返回的ResultSet對象進(jìn)行顯示等相當(dāng)?shù)奶幚怼?/p>
(6)釋放資源。
1. 連接數(shù)據(jù)庫
(1) 下載Mysql連接驅(qū)動
網(wǎng)址: http://dev.mysql.com/downloads/connector/j/ ,下載后放在F:\博士科研資料\數(shù)據(jù)庫學(xué)習(xí)\mysql相關(guān)程序文件中,解壓。
(2) 加載JDBC驅(qū)動
操作方法:在Eclipse中,選中相應(yīng)的工程,點(diǎn)擊Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,點(diǎn)OK。
(3) 建一個簡單的數(shù)據(jù)庫如下:
import java.sql.*;
public class GetConnection {
public static void main(String[] args){
try{
//調(diào)用Class.forName()方法加載驅(qū)動程序
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功加載MySQL驅(qū)動!");
}catch(ClassNotFoundException e1){
System.out.println("找不到MySQL驅(qū)動!");
e1.printStackTrace();
}
String url="jdbc:mysql://localhost:3306/mysql"; //JDBC的URL
//調(diào)用DriverManager對象的getConnection()方法,獲得一個Connection對象
Connection conn;
try {
conn = DriverManager.getConnection(url, "root","");
//創(chuàng)建一個Statement對象
Statement stmt = conn.createStatement(); //創(chuàng)建Statement對象
System.out.print("成功連接到數(shù)據(jù)庫!");
stmt.close();
conn.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}
2. 查詢數(shù)據(jù)表
在詢數(shù)據(jù)表時,需要用到ResultSet接口,它類似于一個數(shù)據(jù)表,通過該接口的實(shí)例可以獲得檢索結(jié)果集,以及對應(yīng)數(shù)據(jù)表的接口信息。
import java.sql.*;
public class SelectTable {
public static void main(String[] args){
try{
//調(diào)用Class.forName()方法加載驅(qū)動程序
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功加載MySQL驅(qū)動!");
String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL
Connection conn;
conn = DriverManager.getConnection(url, "root","");
Statement stmt = conn.createStatement(); //創(chuàng)建Statement對象
System.out.println("成功連接到數(shù)據(jù)庫!");
String sql = "select * from stu"; //要執(zhí)行的SQL
ResultSet rs = stmt.executeQuery(sql);//創(chuàng)建數(shù)據(jù)對象
System.out.println("編號"+"\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ù)庫
//修改刪除數(shù)據(jù)
import java.sql.*;
public class UpdateDeleteDemo {
public static void main(String[] args)throws Exception{
try{
//調(diào)用Class.forName()方法加載驅(qū)動程序
Class.forName("com.mysql.jdbc.Driver");
System.out.println("成功加載MySQL驅(qū)動!");
String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL
Connection conn;
conn = DriverManager.getConnection(url, "root","");
Statement stmt = conn.createStatement(); //創(chuàng)建Statement對象
System.out.println("成功連接到數(shù)據(jù)庫!");
//查詢數(shù)據(jù)的代碼
String sql = "select * from stu"; //要執(zhí)行的SQL
ResultSet rs = stmt.executeQuery(sql);//創(chuàng)建數(shù)據(jù)對象
System.out.println("編號"+"\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ù)對象
System.out.println("編號"+"\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對MySQL數(shù)據(jù)庫進(jìn)行連接、查詢和修改操作方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- 使用Java實(shí)現(xiàn)先查詢緩存再查詢數(shù)據(jù)庫
- Java mysql數(shù)據(jù)庫并進(jìn)行內(nèi)容查詢實(shí)例代碼
- 在Java的Hibernate框架中對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行查詢操作
- 使用Java對數(shù)據(jù)庫進(jìn)行基本的查詢和更新操作
- java 使用ElasticSearch完成百萬級數(shù)據(jù)查詢附近的人功能
- java實(shí)現(xiàn)的連接數(shù)據(jù)庫及模糊查詢功能示例
- Java連接mysql數(shù)據(jù)庫并進(jìn)行內(nèi)容查詢的方法
- java查詢近七日數(shù)據(jù)功能的實(shí)現(xiàn)
相關(guān)文章
解決Callable的對象中,用@Autowired注入別的對象失敗問題
這篇文章主要介紹了解決Callable的對象中,用@Autowired注入別的對象失敗問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
Spring實(shí)戰(zhàn)之Bean的后處理器操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean的后處理器操作,結(jié)合實(shí)例形式詳細(xì)分析了Bean的后處理器相關(guān)配置、操作方法及使用注意事項,需要的朋友可以參考下2019-12-12
Apache Dubbo的SPI機(jī)制是如何實(shí)現(xiàn)的
SPI全稱為Service Provider Interface,對應(yīng)中文為服務(wù)發(fā)現(xiàn)機(jī)制。SPI類似一種可插拔機(jī)制,首先需要定義一個接口或一個約定,然后不同的場景可以對其進(jìn)行實(shí)現(xiàn),調(diào)用方在使用的時候無需過多關(guān)注具體的實(shí)現(xiàn)細(xì)節(jié)。在Java中,SPI體現(xiàn)了面向接口編程的思想,滿足開閉設(shè)計原則。2021-06-06
java實(shí)現(xiàn)字符串匹配求兩個字符串的最大公共子串
這篇文章主要介紹了java實(shí)現(xiàn)求兩個字符串最大公共子串的方法,詳細(xì)的描述了兩個字符串的最大公共子串算法的實(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的方法,針對tcp/ip協(xié)議中保留的三個私有地址進(jìn)行判斷分析,是比較實(shí)用的技巧,需要的朋友可以參考下2015-01-01

