九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JAVA JDBC

JDBC, Java Database Connecive, Java 數(shù)據(jù)庫連接,是一組專門負(fù)責(zé)連接并操作數(shù)據(jù)庫的標(biāo)準(zhǔn),在整個(gè)JDBC 中實(shí)際上大量的提供的是接口。針對(duì)于各個(gè)不同的數(shù)據(jù)庫生產(chǎn)商 ,只要想使用JAVA 進(jìn)行數(shù)據(jù)庫的開發(fā),則對(duì)這些標(biāo)準(zhǔn)有所支持。

JDBC 在使用中常見的有以下三類:

JDBC-ODBC 橋連接:是SUN 在JDK的開發(fā)包中提供的最標(biāo)準(zhǔn)的一套JDBC 操作類庫,使用的時(shí)候?qū)DBC-ODB-數(shù)據(jù)庫,中間要經(jīng)過一個(gè)ODBC 的連接,那么就意味著整體的性能將會(huì)降低,所以在開發(fā)中是絕對(duì)不會(huì)去使用JDBC-ODBC的連接方式的。

JDBC 連接,使用各個(gè)數(shù)據(jù)庫提供商給定的數(shù)據(jù)庫驅(qū)動(dòng)程序,完成JDBC的開發(fā),使用的時(shí)候需要在classpath中配置數(shù)據(jù)庫的驅(qū)動(dòng)程序

JDBC 網(wǎng)絡(luò)連接:主要使用通過網(wǎng)絡(luò)連接數(shù)據(jù)庫


JDBC 的操作步驟

在進(jìn)行JDBC 操作的時(shí)候可以按照以下的步驟完成:

1、加載數(shù)據(jù)庫驅(qū)動(dòng)程序,加載的時(shí)候需要將驅(qū)動(dòng)程序配置到classpath之中

2、連接數(shù)據(jù)庫,通過Connection 接口和 DriverManager 類完成

3、操作數(shù)據(jù)庫,通過Statement、PreparedStatement、ResultSet 三個(gè)接口完成

4、關(guān)閉數(shù)據(jù)庫,在實(shí)際開發(fā)中數(shù)據(jù)庫資源非常有限,操作完之后必須關(guān)閉


數(shù)據(jù)庫連接操作

在JDBC 的操作中,如果要想進(jìn)行數(shù)據(jù)庫的連接,則必須按照以上的幾步完成

1、通過Class.forName()加載數(shù)據(jù)庫的驅(qū)動(dòng)程序

2、通過DriverManager 類進(jìn)行數(shù)據(jù)庫的連接,連接的時(shí)候要輸入數(shù)據(jù)庫的連接地址、用戶名、密碼

3、通過Connection 接口接收連接


  1. package org.connectiondemo;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5.   
  6. public class ConnectionJDBC {  
  7.   
  8.     /** 
  9.      * @param args 
  10.      */  
  11.     //驅(qū)動(dòng)程序就是之前在classpath中配置的JDBC的驅(qū)動(dòng)程序的JAR 包中  
  12.     public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
  13.     //連接地址是由各個(gè)數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住  
  14.     public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
  15.     //連接數(shù)據(jù)庫的用戶名  
  16.     public static final String DBUSER = "root";  
  17.     //連接數(shù)據(jù)庫的密碼  
  18.     public static final String DBPASS = "";  
  19.       
  20.       
  21.     public static void main(String[] args) throws Exception {  
  22.         Connection con = null; //表示數(shù)據(jù)庫的連接對(duì)象  
  23.         Class.forName(DBDRIVER); //1、使用CLASS 類加載驅(qū)動(dòng)程序  
  24.         con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、連接數(shù)據(jù)庫  
  25.         System.out.println(con);  
  26.         con.close(); // 3、關(guān)閉數(shù)據(jù)庫  
  27.     }  
  28.   
  29. }  


數(shù)據(jù)庫更新操作


如果要想執(zhí)行數(shù)據(jù)庫的更新操作,則可以使用Statement接口,數(shù)據(jù)庫更新就是增加、修改、刪除


增加、更新、刪除操作


  1. package org.updatedemo;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.Statement;  
  6.   
  7. public class UpdateDemo {  
  8.   
  9.     /** 
  10.      * @param args 
  11.      */  
  12.     //驅(qū)動(dòng)程序就是之前在classpath中配置的JDBC的驅(qū)動(dòng)程序的JAR 包中  
  13.     public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
  14.     //連接地址是由各個(gè)數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住  
  15.     public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
  16.     //連接數(shù)據(jù)庫的用戶名  
  17.     public static final String DBUSER = "root";  
  18.     //連接數(shù)據(jù)庫的密碼  
  19.     public static final String DBPASS = "";  
  20.       
  21.       
  22.     public static void main(String[] args) throws Exception {  
  23.         Connection con = null; //表示數(shù)據(jù)庫的連接對(duì)象  
  24.         Statement stmt = null;   
  25.         Class.forName(DBDRIVER); //1、使用CLASS 類加載驅(qū)動(dòng)程序  
  26.         con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、連接數(shù)據(jù)庫  
  27.         stmt = con.createStatement(); //3、Statement 接口需要通過Connection 接口進(jìn)行實(shí)例化操作  
  28.         stmt.executeUpdate("insert into java_study.person values(\'Tom\',20,\'SH\')"); //執(zhí)行SQL 語句,插入、更新、刪除數(shù)據(jù)  
  29.         stmt.executeUpdate("update java_study.person set name='Jery' where age = 20");  
  30.         stmt.executeUpdate("delete from java_study.person where age = 20");  
  31.         con.close(); // 4、關(guān)閉數(shù)據(jù)庫  
  32.     }  
  33.   
  34. }  

數(shù)據(jù)庫查詢操作


通過SELECT 語句,可以查詢數(shù)據(jù)中的內(nèi)容,在mysql 中直接查詢的時(shí)候可以發(fā)現(xiàn)將返回全部的查詢結(jié)果給用戶看,那么對(duì)于程序的操作中也是一樣的,所有的查詢結(jié)果要返回到程序處進(jìn)行輸出查看,那么程序通過ResultSet 接口保存全部的查詢結(jié)果,通過Statement 接口中的executeQuery()方法查詢。

查詢之后的數(shù)據(jù)需要分別的取出。通過 next ()方法找到返回的每一行數(shù)據(jù),每一行中各個(gè)列的數(shù)據(jù)需要通過getXxx()方法取得,例如:

取得整型:getInt()

取得字符串:getString()

取得日期:getDate()

取得小數(shù):getFloat()


  1. package org.querydemo;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.ResultSet;  
  6. import java.sql.Statement;  
  7.   
  8. public class QueryDemo {  
  9.   
  10.     /** 
  11.      * @param args 
  12.      */  
  13.     //驅(qū)動(dòng)程序就是之前在classpath中配置的JDBC的驅(qū)動(dòng)程序的JAR 包中  
  14.     public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
  15.     //連接地址是由各個(gè)數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住  
  16.     public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
  17.     //連接數(shù)據(jù)庫的用戶名  
  18.     public static final String DBUSER = "root";  
  19.     //連接數(shù)據(jù)庫的密碼  
  20.     public static final String DBPASS = "";  
  21.       
  22.       
  23.     public static void main(String[] args) throws Exception {  
  24.         Connection con = null; //表示數(shù)據(jù)庫的連接對(duì)象  
  25.         Statement stmt = null;  //表示數(shù)據(jù)庫的更新操作  
  26.         ResultSet result = null; //表示接收數(shù)據(jù)庫的查詢結(jié)果  
  27.         Class.forName(DBDRIVER); //1、使用CLASS 類加載驅(qū)動(dòng)程序  
  28.         con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、連接數(shù)據(jù)庫  
  29.         stmt = con.createStatement(); //3、Statement 接口需要通過Connection 接口進(jìn)行實(shí)例化操作  
  30.         result = stmt.executeQuery("select name,age,address from java_study.person"); //執(zhí)行SQL 語句,查詢數(shù)據(jù)庫  
  31.         while (result.next()){  
  32.             String name = result.getString("name");  
  33.             int age = result.getInt("age");  
  34.             String address = result.getString("address");  
  35.             System.out.println(name+age+address);  
  36.         }  
  37.                 result.close();  
  38.                 con.close(); // 4、關(guān)閉數(shù)據(jù)庫  
  39.     }  
  40.   
  41. }  


PreparedStatement

此接口是在實(shí)際的開發(fā)中使用最廣泛的一個(gè)操作接口,此接口是Statement接口的子接口,采用預(yù)處理的方式完成


完成增加操作

  1. package org.preparedstatementdemo;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.PreparedStatement;  
  6. import java.util.Date;  
  7.   
  8. public class PreparedStatementDemo  {  
  9.   
  10.     /** 
  11.      * @param args 
  12.      */  
  13.   
  14.     public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
  15.     //連接地址是由各個(gè)數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住  
  16.     public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
  17.     //連接數(shù)據(jù)庫的用戶名  
  18.     public static final String DBUSER = "root";  
  19.     //連接數(shù)據(jù)庫的密碼  
  20.     public static final String DBPASS = "";  
  21.       
  22.     public static void main(String[] args) throws Exception {  
  23.         // TODO Auto-generated method stub  
  24.         Connection con = null; //表示數(shù)據(jù)庫的連接對(duì)象  
  25.         PreparedStatement pstmt = null; //表示數(shù)據(jù)庫更新操作  
  26.           
  27.         String name = "Tom";  
  28.         int age = 20;  
  29.         Date date = new Date();       
  30.         String sql = "insert into java_study.person values(?,?,?)";  
  31.           
  32.         Class.forName(DBDRIVER); //1、使用CLASS 類加載驅(qū)動(dòng)程序  
  33.           
  34.         System.out.println(sql);  
  35.         con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、連接數(shù)據(jù)庫  
  36.         pstmt = con.prepareStatement(sql); //使用預(yù)處理的方式創(chuàng)建對(duì)象  
  37.         pstmt.setString(1, name); //第一個(gè)?號(hào)的內(nèi)容  
  38.         pstmt.setInt(2, age); //第二個(gè)?號(hào)的內(nèi)容  
  39.         pstmt.setDate(3, new java.sql.Date(date.getTime()));  
  40.         pstmt.executeUpdate(); //執(zhí)行SQL 語句,更新數(shù)據(jù)庫  
  41.         pstmt.close();  
  42.         con.close(); // 4、關(guān)閉數(shù)據(jù)庫  
  43.     }  
  44.   
  45. }  


完成模糊操作

模糊查詢要使用LIKE 語句,那么LIKE 語句需要使用%進(jìn)行匹配

  1. package org.preparedstatementquery;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.PreparedStatement;  
  6. import java.sql.ResultSet;  
  7. import java.util.Date;  
  8.   
  9. public class PreparedStatementQuery {  
  10.   
  11.     /** 
  12.      * @param args 
  13.      */  
  14.     // TODO Auto-generated method stub  
  15.     public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
  16.     //連接地址是由各個(gè)數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住  
  17.     public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
  18.     //連接數(shù)據(jù)庫的用戶名  
  19.     public static final String DBUSER = "root";  
  20.     //連接數(shù)據(jù)庫的密碼  
  21.     public static final String DBPASS = "";   
  22.       
  23.     public static void main(String[] args) throws Exception {  
  24.         Connection con = null; //表示數(shù)據(jù)庫的連接對(duì)象  
  25.         PreparedStatement pstmt = null; //表示數(shù)據(jù)庫更新操作  
  26.         ResultSet result = null;  
  27.           
  28.         String like_name ="Tom1";  
  29.         int like_age = 12;  
  30.           
  31.         String sql = "select name,age,birthday from java_study.person where name like ? or age = ?";  
  32.           
  33.         Class.forName(DBDRIVER); //1、使用CLASS 類加載驅(qū)動(dòng)程序  
  34.           
  35.         System.out.println(sql);  
  36.         con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、連接數(shù)據(jù)庫  
  37.         pstmt = con.prepareStatement(sql); //使用預(yù)處理的方式創(chuàng)建對(duì)象  
  38.         pstmt.setString(1, "%"+like_name+"%");  
  39.         pstmt.setInt(2, like_age);  
  40.   
  41.         result = pstmt.executeQuery(); //執(zhí)行SQL 語句,更新數(shù)據(jù)庫  
  42.         while (result.next()){  
  43.             String name = result.getString("name");  
  44.             int age = result.getInt("age");  
  45.             Date date = result.getDate("birthday");  
  46.             System.out.println(name+","+age+","+date);  
  47.         }  
  48. <pre name="code" class="java">                result.close();</pre>  pstmt.close();con.close(); // 4、關(guān)閉數(shù)據(jù)庫}}<p></p>  
  49. <p><br>  
  50. </p>  
  51. <pre></pre>  
  52. <p></p>  
  53. <p><br>  
  54. </p>  
  55. <p><strong>批處理</strong></p>  
  56. <p>批處理,多條SQL 語句可以一次性執(zhí)行完畢,稱為批處理操作</p>  
  57. <p><br>  
  58. </p>  
  59. <p></p><pre name="code" class="java">package org.addbetchdemo;  
  60.   
  61. import java.sql.Connection;  
  62. import java.sql.DriverManager;  
  63. import java.sql.PreparedStatement;  
  64. import java.util.Date;  
  65.   
  66. public class AddDetchDemo {  
  67.   
  68.     /** 
  69.      * @param args 
  70.      */  
  71.     public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
  72.     //連接地址是由各個(gè)數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住  
  73.     public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
  74.     //連接數(shù)據(jù)庫的用戶名  
  75.     public static final String DBUSER = "root";  
  76.     //連接數(shù)據(jù)庫的密碼  
  77.     public static final String DBPASS = "";   
  78.       
  79.     public static void main(String[] args) throws Exception {  
  80.         // TODO Auto-generated method stub  
  81.         Connection con = null; //表示數(shù)據(jù)庫的連接對(duì)象  
  82.         PreparedStatement pstmt = null; //表示數(shù)據(jù)庫更新操作  
  83.           
  84.         String sql = "insert into java_study.person values(?,?,?)";  
  85.           
  86.         Class.forName(DBDRIVER); //1、使用CLASS 類加載驅(qū)動(dòng)程序  
  87.           
  88.         System.out.println(sql);  
  89.         con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、連接數(shù)據(jù)庫  
  90.         pstmt = con.prepareStatement(sql); //使用預(yù)處理的方式創(chuàng)建對(duì)象  
  91.           
  92.         for (int i = 0;i<10;i++){  
  93.             pstmt.setString(1, "org"+i); //第一個(gè)?號(hào)的內(nèi)容  
  94.             pstmt.setInt(2, i); //第二個(gè)?號(hào)的內(nèi)容  
  95.             pstmt.setDate(3, new java.sql.Date(new java.util.Date().getTime()));  
  96.             pstmt.addBatch();  
  97.         }  
  98.         int[] i = pstmt.executeBatch(); //執(zhí)行SQL 語句,更新數(shù)據(jù)庫  
  99.         System.out.println(i);  
  100.         pstmt.close();  
  101.         con.close(); // 4、關(guān)閉數(shù)據(jù)庫  
  102.     }  
  103.   
  104. }  
  105. </pre><br>  
  106. <p></p>  
  107. <p><strong>事務(wù)處理</strong><br>  
  108. </p>  
  109. <p>通過設(shè)置 connection  的autocommit(false) 提交事務(wù)  con.commit(); 回滾事務(wù) con.rollback()<br>  
  110. </p>  
  111. <p></p><pre name="code" class="java">package org.transactiondemo;  
  112.   
  113. import java.sql.Connection;  
  114. import java.sql.DriverManager;  
  115. import java.sql.Statement;  
  116.   
  117. public class TransactionDemo {  
  118.   
  119.     /** 
  120.      * @param args 
  121.      */  
  122.     //驅(qū)動(dòng)程序就是之前在classpath中配置的JDBC的驅(qū)動(dòng)程序的JAR 包中  
  123.     public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
  124.     //連接地址是由各個(gè)數(shù)據(jù)庫生產(chǎn)商單獨(dú)提供的,所以需要單獨(dú)記住  
  125.     public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
  126.     //連接數(shù)據(jù)庫的用戶名  
  127.     public static final String DBUSER = "root";  
  128.     //連接數(shù)據(jù)庫的密碼  
  129.     public static final String DBPASS = "";  
  130.       
  131.     public static void main(String[] args) throws Exception {  
  132.         // TODO Auto-generated method stub  
  133.         Connection con = null; //表示數(shù)據(jù)庫的連接對(duì)象  
  134.         Statement stmt = null;   
  135.         Class.forName(DBDRIVER); //1、使用CLASS 類加載驅(qū)動(dòng)程序  
  136.         con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、連接數(shù)據(jù)庫  
  137.           
  138.         con.setAutoCommit(false);  
  139.           
  140.         stmt = con.createStatement(); //3、Statement 接口需要通過Connection 接口進(jìn)行實(shí)例化操作  
  141.           
  142.         try{  
  143.         stmt.addBatch("insert into java_study.person values(\'Tom\',20,\'2012-01-01\')"); //執(zhí)行SQL 語句,插入、更新、刪除數(shù)據(jù)  
  144.         stmt.addBatch("insert into java_study.person values(\'Tom\',20,\'2012-01-01\')");  
  145.         stmt.addBatch("insert into java_study.person values(\''Tom\',20,\'2012-01-01\')");  
  146.             stmt.executeBatch();  
  147.             con.commit();  
  148.         } catch(Exception e){  
  149.             con.rollback();  
  150.         }  
  151.           
  152.           
  153.   
  154.         stmt.close();  
  155.         con.close(); // 4、關(guān)閉數(shù)據(jù)庫  
  156.     }  
  157.   
  158. }  
  159. </pre><br>  
  160. <br>  
  161. <p></p>  
  162. <p><br>  
  163. </p>  
  164. <p><br>  
  165. </p>  
  166. <p></p>  
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
《Java Web應(yīng)用程序開發(fā)》04 JDBC(二)
iBatis開發(fā)環(huán)境搭建和第一個(gè)程序
數(shù)據(jù)庫操作工具類 ConnectionUtils
Eclipse中java向數(shù)據(jù)庫中添加數(shù)據(jù),更新數(shù)據(jù),刪除數(shù)據(jù)
一篇文章教會(huì)你如何使用MySQL
java中通用的數(shù)據(jù)庫連接與關(guān)閉方法類的簡單寫法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服