欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jdbc操作數(shù)據(jù)庫(kù)的基本流程詳解

 更新時(shí)間:2013年06月14日 09:49:31   作者:  
本篇文章是對(duì)jdbc操作數(shù)據(jù)庫(kù)的基本流程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
所有的JDBC應(yīng)用程序都具有下面的基本流程:
  1、加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)并建立到數(shù)據(jù)庫(kù)的連接。
  2、執(zhí)行SQL語(yǔ)句。
  3、處理結(jié)果。
  4、從數(shù)據(jù)庫(kù)斷開連接釋放資源。

下面我們就來仔細(xì)看一看每一個(gè)步驟:
其實(shí)按照上面所說每個(gè)階段都可得單獨(dú)拿出來寫成一個(gè)獨(dú)立的類方法文件。共別的應(yīng)用來調(diào)用。

1、加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)并建立到數(shù)據(jù)庫(kù)的連接:
復(fù)制代碼 代碼如下:

  String driverName="com.mysql.jdbc.Driver";
  String connectiionString="jdbc:mysql://10.5.110.239:3306/test?"+"user=root&password=chen&characterEncoding=utf-8";
  Connection connection=null;
  try {
   Class.forName(driverName);//這里是所謂的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的加載
   connection=(Connection) DriverManager.getConnection(connectiionString);//這里就是建立數(shù)據(jù)庫(kù)連接
   System.out.println("數(shù)據(jù)庫(kù)連接成功");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return connection;

2、執(zhí)行SQL語(yǔ)句:
在執(zhí)行sql語(yǔ)句的時(shí)候,這里常見的有兩種類型的語(yǔ)句對(duì)象:
Statement:它提供了直接在數(shù)據(jù)庫(kù)中執(zhí)行SQL語(yǔ)句的方法。對(duì)于那些只執(zhí)行一次的查詢、刪除或者一種固定的sql語(yǔ)句來說已經(jīng)足夠了。
復(fù)制代碼 代碼如下:

Statement statement=(Statement) dUtil.getConnection().createStatement();

   String sql="delete from diary where title="+"'"+title+"'";

   int count=statement.executeUpdate(sql);

   System.out.println("刪除成功");

Preparedstatement:這種語(yǔ)句對(duì)象用于那些需要執(zhí)行多次,每次僅僅是數(shù)據(jù)取值不同的SQL語(yǔ)句,它還提供了一些方法,以便指出語(yǔ)句所使用的輸入?yún)?shù)。
復(fù)制代碼 代碼如下:

String sql="insert into diary(title,content,authorname,time) values(?,?,?,now())";
  try {
   PreparedStatement preparedStatement=(PreparedStatement) dUtil.getConnection().prepareStatement(sql);
   String title=diary.getTitle();
   String content=diary.getContent();
   String authorname=diary.getAuthorName();
   preparedStatement.setString(1, title);
   preparedStatement.setString(2, content);
   preparedStatement.setString(3, authorname);

3、處理結(jié)果:
復(fù)制代碼 代碼如下:

ResultSet resultSet=statement.executeQuery(sql);
   while (resultSet.next()) {
    Diary diary=new Diary();
    diary.setAuthorName(resultSet.getString("authorname"));
    diary.setContent(resultSet.getString("content"));
    diary.setTitle(resultSet.getString("title"));
    diary.setId(resultSet.getInt("id"));
    Date time=resultSet.getDate("time");

此處,應(yīng)該知道的是:Statement執(zhí)行sql語(yǔ)句的方法:insert、Update、delete語(yǔ)句是使用了Statement的executeUpdate方法執(zhí)行的,返回結(jié)果是插入、更新、刪除的個(gè)數(shù)。而select語(yǔ)句執(zhí)行較為特別是使用了Statement的executeQuery方法執(zhí)行的。返回的結(jié)果存放在resultset結(jié)果集中,我們可以調(diào)用next()方法來移到結(jié)果集中的下一條記錄。結(jié)果集由行和列組成,各列數(shù)據(jù)可以通過相應(yīng)數(shù)據(jù)庫(kù)類型的一系列g(shù)et方法(如getString,getInt,getDate等等)來取得。

4、從數(shù)據(jù)庫(kù)斷開連接釋放資源:
在結(jié)果集、語(yǔ)句和連接對(duì)象用完以后,我們必須正確地關(guān)閉它們。連接對(duì)象、結(jié)果集對(duì)象以及所有的語(yǔ)句對(duì)象都有close()方法,通過調(diào)用這個(gè)方法,我們可以確保正確釋放與特定數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)的所有資源。
復(fù)制代碼 代碼如下:

public static void closeConnection(ResultSet resultSet,PreparedStatement preparedStatement, Connection connection) throws SQLException {

  if (resultSet!=null) resultSet.close();
  if (preparedStatement!=null) preparedStatement.close();
  if(connection!=null&&connection.isClosed()==false) connection.close();
  System.out.println("數(shù)據(jù)庫(kù)關(guān)閉");

 }

相關(guān)文章

  • MySQL用戶權(quán)限設(shè)置保護(hù)數(shù)據(jù)庫(kù)安全

    MySQL用戶權(quán)限設(shè)置保護(hù)數(shù)據(jù)庫(kù)安全

    MySQL用戶權(quán)限設(shè)置是保護(hù)數(shù)據(jù)庫(kù)安全的重要措施之一。通過為用戶設(shè)置不同的權(quán)限,可以控制用戶對(duì)數(shù)據(jù)庫(kù)的訪問能力,包括讀取、修改、刪除、創(chuàng)建等操作。合理設(shè)置用戶權(quán)限可以避免誤操作、非法訪問等安全問題
    2023-05-05
  • Linux下安裝mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz

    Linux下安裝mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz

    這篇文章主要介紹了Linux下安裝mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • mysql二進(jìn)制日志文件恢復(fù)數(shù)據(jù)庫(kù)

    mysql二進(jìn)制日志文件恢復(fù)數(shù)據(jù)庫(kù)

    喜歡的在服務(wù)器或者數(shù)據(jù)庫(kù)上直接操作的兄弟們你值得收藏下!不然你就悲劇了。-----(當(dāng)然我也是在網(wǎng)上搜索的資料!不過自己測(cè)試通過了的!)
    2014-08-08
  • 深入了解SQL注入

    深入了解SQL注入

    本篇文章通過SQL和MYSQL的對(duì)比,以及SQL注入的原理等方面詳細(xì)分析了SQL注入相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友學(xué)習(xí)下。
    2018-02-02
  • MySQL無法存儲(chǔ)emoji表情解決方案分析

    MySQL無法存儲(chǔ)emoji表情解決方案分析

    這篇文章主要介紹了MySQL無法存儲(chǔ)emoji表情解決方案,結(jié)合實(shí)例形式分析了Python爬蟲爬取文章中emoji表情存入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,涉及mysql utf8mb4編碼的修改相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • MySQL索引下推詳細(xì)

    MySQL索引下推詳細(xì)

    這篇文章主要介紹MySQL索引下推,索引下推(ICP)是針對(duì)MySQL使用索引從表中檢索數(shù)據(jù)行的情況的優(yōu)化。下面就來介紹相關(guān)資料,需要的朋友可以參考一下
    2021-10-10
  • mysql中的四大運(yùn)算符種類實(shí)例匯總(20多項(xiàng))?

    mysql中的四大運(yùn)算符種類實(shí)例匯總(20多項(xiàng))?

    這篇文章主要介紹了mysql中的四大運(yùn)算符種類匯總,運(yùn)算符連接表達(dá)式中的各個(gè)操作數(shù),他的作用是用來指明對(duì)數(shù)據(jù)表中的操作數(shù)所進(jìn)行的運(yùn)算
    2022-07-07
  • mysql臨時(shí)表(temporary?table)使用方法詳解

    mysql臨時(shí)表(temporary?table)使用方法詳解

    MySQL臨時(shí)表在很多場(chǎng)景中都會(huì)用到,MySQL內(nèi)部在執(zhí)行復(fù)雜SQL時(shí),需要借助臨時(shí)表進(jìn)行分組、排序、去重等操作,下面這篇文章主要給大家介紹了關(guān)于mysql臨時(shí)表(temporary?table)使用方法的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • MySQL中的引號(hào)和反引號(hào)的區(qū)別與用法詳解

    MySQL中的引號(hào)和反引號(hào)的區(qū)別與用法詳解

    這個(gè)問題是我在學(xué)習(xí)數(shù)據(jù)庫(kù)的時(shí)候遇到的一個(gè)問題,我當(dāng)時(shí)并不能理解下圖中的一些情況,后來我也請(qǐng)教了一位大佬給我解答,最后在大佬和度娘的幫助下我大概理解了這個(gè)反引號(hào)的東西
    2021-10-10
  • MySQL中where?1=1方法的使用及改進(jìn)

    MySQL中where?1=1方法的使用及改進(jìn)

    這篇文章主要介紹了MySQL中where?1=1方法的使用及改進(jìn),文章主要通對(duì)where?1?=?1的使用及改進(jìn)展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05

最新評(píng)論