利用JDBC连接数据库(MySQL)
1 在eclipse中創(chuàng)建一個maven項目(在Java模式下,不要在JavaEE模式下)
1.1 file ?-->> new ?-->> project
2 下載數(shù)據(jù)庫驅(qū)動包
2.1?在剛剛創(chuàng)建的項目中找到?pom.xml 并單擊打開
2.2 選擇 dependencies -->> add
2.3 在框中輸入 mysql 敲一下回車,然后選擇對應的版本后點擊OK就行啦
(前提是你已經(jīng)安裝好了maven,并且已經(jīng)在eclipse中進行了相應的配置)
依賴包下載成功后,在 pom.xml 文件中會顯示相應的信息,也可以直接在 pom.xml 文件中添加代碼來下載相應的驅(qū)動包
? 最后記得保存 pom.xml 文件
?
3 在maven項目中新建一個包,再在此包下新建一個類
?
?4 JDBC知識
java數(shù)據(jù)庫連接.
JDBC是JAVA提供的一套標準連接數(shù)據(jù)庫的接口;規(guī)定了連接數(shù)據(jù)庫的步驟和功能,
不同的數(shù)據(jù)庫提供商提供了一套JDBC實現(xiàn)類;他們稱為數(shù)據(jù)庫驅(qū)動.
JDBC的主要接口有:
DriverManager : 用于加載驅(qū)動并建立數(shù)據(jù)庫連接
Connection : 表示與特定數(shù)據(jù)庫的連接會話
Statement : 用于執(zhí)行SQL語句
ResultSet : 表示查詢的結(jié)果集
通過JDBC操作數(shù)據(jù)庫是自動進行提交的(當然可以進行手動關(guān)閉)
?
5 利用JDBC連接數(shù)據(jù)庫的步驟
5.1 加載驅(qū)動包Cass.forName()
5.2 調(diào)用驅(qū)動建立連接:Connection -->> 生成類為:DriverManager
5.3 通過連接創(chuàng)建語句對象: Statement
5.4 執(zhí)行SQL語句:Statement
5.5 若是查詢語句會得到結(jié)果集:ResultSet
5.6 遍歷結(jié)果集獲取查詢結(jié)果
5.7 關(guān)閉連接
6 實例之 -->> 創(chuàng)建一個表
1 package day01; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.Statement; 6 7 /** 8 * JDBC 9 * java數(shù)據(jù)庫連接. 10 * JDBC是JAVA提供的一套標準連接數(shù)據(jù)庫的接口;規(guī)定了連接數(shù)據(jù)庫的步驟和功能, 11 * 不同的數(shù)據(jù)庫提供商提供了一套JDBC實現(xiàn)類;他們稱為數(shù)據(jù)庫驅(qū)動. 12 * JDBC的主要接口有: 13 * DriverManager : 用于加載驅(qū)動并建立數(shù)據(jù)庫連接 14 * Connection : 表示與特定數(shù)據(jù)庫的連接會話 15 * Statement : 用于執(zhí)行SQL語句 16 * ResultSet : 表示查詢的結(jié)果集 17 * 通過JDBC操作數(shù)據(jù)庫是自動進行提交的 18 * @author soft01 19 * 20 * 創(chuàng)建表 21 * 22 */ 23 public class Demo01 { 24 public static void main(String[] args){ 25 /* 26 * 使用JDBC連接數(shù)據(jù)庫的步驟: 27 * 1 加載驅(qū)動包Cass.forName() 28 * 2 調(diào)用驅(qū)動建立連接:Connection -->> 生成類為:DriverManager 29 * 3 通過連接創(chuàng)建語句對象: Statement 30 * 4 執(zhí)行SQL語句:Statement 31 * 5 若是查詢語句會得到結(jié)果集:ResultSet 32 * 6 遍歷結(jié)果集獲取查詢結(jié)果 33 * 7 關(guān)閉連接 34 */ 35 try { 36 37 /* 38 * 1 加載驅(qū)動包 39 * 不同數(shù)據(jù)庫傳入的字符串內(nèi)容不一致 40 * 1.1 注意: 41 * 若拋出:java.lang.ClassNotFoundException通常有兩種情況導致 42 * 1.1.1 沒有在項目中導入驅(qū)動包 43 * 1.1.2 formatName方法中字符串格式有誤 44 */ 45 Class.forName("com.mysql.jdbc.Driver"); //mysql驅(qū)動包的固定寫法 46 System.out.println("驅(qū)動加載完畢。"); 47 48 /* 49 * 2 通過DriverManager與數(shù)據(jù)庫建立連接 50 * 使用靜態(tài)方法getConnection, 要傳入三個參數(shù) 51 * 參數(shù)1 數(shù)據(jù)庫地址,不同數(shù)據(jù)庫格式不同 52 * 參數(shù)2 數(shù)據(jù)庫用戶名 53 * 參數(shù)3 數(shù)據(jù)庫密碼 54 */ 55 Connection conn = DriverManager.getConnection( 56 "jdbc:mysql://localhost:3306/test", // jdbc:mysql:// + IP + : + 端口 + 數(shù)據(jù)庫名稱 57 "root", // 用戶名 58 "182838"); // 用戶密碼 59 System.out.println("鏈接成功"); 60 61 /* 62 * 3 創(chuàng)建語句對象 63 * Statement針對不同類型的SQL語句有不同的執(zhí)行方法 64 * ResultSet executeQuery(String sql) 65 * 用來執(zhí)行查詢語句(SQL)的方法,返回的是一個查詢結(jié)果集 66 * 67 * int executUpdate(String sql) 68 * 用來執(zhí)行DML語句的方法,返回值為執(zhí)行了該SQL后影響了數(shù)據(jù)庫中多少條數(shù)據(jù) 69 * 70 * boolean execute(String sql) 71 * 可以執(zhí)行所有類型的SQL語句,但是DQL,DML都有專門的方法,所以該方法通常 72 * 用來執(zhí)行DDL語句.當返回值為true時表示該SQL語句執(zhí)行后有結(jié)果集,沒有結(jié)果集 73 * 的都是返回的false.(并不是根據(jù)語句的對錯來返回true或者false) 74 */ 75 Statement state = conn.createStatement(); 76 77 //書寫SQL語句 78 String sql = "CREATE TABLE userinfo_fury(" 79 + " id INT (10) PRIMARY KEY AUTO_INCREMENT, " 80 + " username VARCHAR (30), " 81 + " password VARCHAR (30), " 82 + " email VARCHAR (50), " 83 + " nickname VARCHAR (30), " 84 + " account FLOAT (10, 2) DEFAULT 15600) "; 85 System.out.println(sql); 86 87 //4 執(zhí)行SQL語句 88 state.execute(sql); 89 System.out.println("執(zhí)行完畢"); 90 91 state.close(); //關(guān)閉語句對象 92 conn.close(); //關(guān)閉連接對象 93 94 }catch(Exception e) { 95 e.printStackTrace(); 96 } 97 98 99 } 100 } 創(chuàng)建一個表?
7 實例之 -->> 查詢數(shù)據(jù)庫表中的數(shù)據(jù)
1 package test; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 /** 10 * Description: 11 */ 12 public class Test { 13 public static void main(String[] args) { 14 Connection conn = null; 15 try { 16 Class.forName("com.mysql.jdbc.Driver"); //01加載數(shù)據(jù)庫驅(qū)動包 17 conn = DriverManager.getConnection( //02連接數(shù)據(jù)庫 18 "jdbc:mysql://localhost:3306/test", 19 "root", 20 "182838"); 21 Statement state = conn.createStatement(); //03創(chuàng)建SQL語句對象 22 23 String sql = "SELECT * " //04 拼接SQL語句 24 + "FROM userinfo_fury "; 25 26 ResultSet rs = state.executeQuery(sql); //05 執(zhí)行SQL語句 27 28 while(rs.next()) { //06 遍歷查詢到的結(jié)果集 29 int id = rs.getInt("id"); 30 String username = rs.getString("username"); 31 System.out.println(username + " -->> " + id); 32 } 33 34 }catch (Exception e) { 35 e.printStackTrace(); 36 }finally { 37 if(null != conn) { 38 try { 39 conn.close(); // 07 關(guān)閉連接 40 }catch(SQLException e) { 41 e.printStackTrace(); 42 } 43 } 44 } 45 } 46 } 查詢數(shù)據(jù)庫中表的內(nèi)容?
8 待改進
8.1 寫一篇博客專門介紹maven的安裝和eclipse配置 -->> 三少有點懶,直接找有昕拿安裝文檔,哈哈哈 ?2017年5月25日15:18:51
8.2 使用數(shù)據(jù)庫連接池來訪問數(shù)據(jù)庫【搞懂DBUTil類】?
待更新... 2017年5月25日15:20:02
?
9 問題點
9.1 maven下載包
疑惑點:在eclipse中配置maven時明明已經(jīng)將阿里云的鏡像更改了,為什么不能夠進行自動下載jar包呢?這個問題困擾三少一周啦,哎,哎,哎...2017年4月5日14:41:50
問題原因:有可能是當時網(wǎng)絡(luò)原因?qū)е?#xff0c;多等待一會就行啦;是在不行直接將依賴的相關(guān)信息寫到配置文件中,這樣速度就會快很多。2017年5月25日15:16:13
?
轉(zhuǎn)載于:https://www.cnblogs.com/NeverCtrl-C/p/6668659.html
總結(jié)
以上是生活随笔為你收集整理的利用JDBC连接数据库(MySQL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android模拟器运行慢的解决方案
- 下一篇: 提高SQL执行效率的16种方法