java使用JDBC

來源:互聯網
上載者:User

標籤:finally   etl   connect   man   安全   next   mysq   ring   通過   

JDBCjDBC簡介

Java是通過JDBC技術實現對資料的訪問的,JDBC是java資料庫(Java database  connectivity)技術的簡稱,它充當java應用程式與各種不同的資料庫之間的媒介,吧資料持久化,這就是一種持久化機制

JDBC工作原理

JDBC  API

由Sun公司提供的,包括java應用程式的各種不同資料庫互動的介面,如connection(串連) Statement(執行sql命令)   ResultSet(返回結果集)   PreparedStatement介面。

JDBC  Driver Manager

JDBC驅動管理程式,負責各種不同的jDBC驅動,把Java應用程式串連到jDBC驅動程式上,位於jdk的java.sql包下面

JDBC驅動

由各廠家提供的,負責串連不同的資料庫,mysql和oracle需要不同的資料庫。

JDBC  Api介紹

DriverManager:裝載驅動程式,並且為建立資料庫連接提供支援

Connection:負責串連資料量並且傳輸資料任務

Statement:由connection產生,負責執行sql語句

resultSet:負責儲存Statement執行返回的結果集

preparedStatement:是statement的子介面,由connection產生,也是負責執行sql語句。他的安全性更高,高可讀性

jDBC訪問資料庫的步驟
  1. 載入JDBC驅動(可能會引發異常,所以用ClassNotFoundExeception來聲明try——catch)

a)         Class.forName(“JDBc驅動類名稱”);

  1. 與資料庫建立串連

a)         Connection conn=DriverManager.getConnection(“資料庫連接字串“,”資料庫使用者名稱”,”密碼”);

  1. 發生sql語句,並且返回結果

a)         Statement st=conn.createStatement();   //建立執行sql語句的對象

b)         ResultSet rs=statement.executeQuery(“sql語句”);   //返回結果集

  1. 處理返回的結果

While(rs.next()){   //判斷是否有下一行的資料

         //讀取

         Int id=rs.getInt(“id”); 或者  int id=rs.getInt(0);

};

串連資料庫使用純java方式串連資料庫

需要引入jar包,mysql-connector-java-5.1.0-bin.jar

package cn.jbit.example02;

 

import java.sql.Connection;

import java.sql.DriverManager;

 

import org.apache.log4j.Logger;

 

public class example02 {

         private static Logger logger=Logger.getLogger(example02.class.getName());

         public static void main(String[] args) {             

                   Connection conn=null;

                   //載入驅動

                   try {                   

                            Class.forName("com.mysql.jdbc.Driver");                       

                   } catch (ClassNotFoundException e) {

                            // TODO: handle exception

                            logger.error(e);

                   }

                   try {                   

                            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/myschool","root","root");

                            logger.warn("建立串連成功啦");

                            System.out.println("建立串連成功啦");

                   } catch (Exception e) {

                            // TODO: handle exception

                            logger.error(e);

                   }finally {

                            try {

                                     if(null!=conn) {

                                               conn.close();

                                               System.out.println("關閉串連成功!!");

                                     }

                            } catch (Exception e) {

                                     // TODO: handle exception

                                     logger.error(e);

                            }

                   }

         }

}

以上是串連資料庫的步驟

 

Statement介面和ResultSet介面

Connection介面的方法

方法名稱

作用

Void  close()

立即釋放 串連資源

Statement crementstatement()

建立一個Statement的對象,來講sql語句發送到資料庫

PreparedStatement preparedStatement(String sql)

建立一個preparedStatement對象將參賽化的sql語句發送到資料庫

Boolean  isCloseed()

查詢connection是否關閉

Statement介面的常用方法

方法名稱

作用

Result ExecuteQuery(String sql)

執行sql查詢並且返回ResultSet的對象

Int executeUpdate(String sql)

可以執行  insert,update,delete的操作,返回受影響行數

Boolean execute(String sql)

可以執行任意的sql語句,若執行Result對象,則返回true,若執行更新計數或者不存在的結果,返回false

 

 

ResultSet介面常用的方法

方法名稱

作用

Boolean next()

判斷,將游標移到當前位置的下一行

Boolean previous()

將游標移到上一行

Void close()

關閉ResultSet對象

Int  getInt(int CloumnIndex)

以int 下標的形式擷取該列的值

Int  getInt(int CloumnName)

以int列名的形式擷取該列的值

float  getFloate(int CloumnIndex)

以float 下標的形式擷取該列的值

Float  getfloat(int CloumnName)

以float列名的形式擷取該列的值

String  getString(int CloumnIndex)

以String下標的形式擷取該列的值

String  getString(int CloumnName)

以String列名的形式擷取該列的值

Int getRow()

得到游標當前所指行的行號

Boolean  absolute(int row)

將游標移動到指定的行

 

PreparedStatement介面

為了防止sql注入攻擊,原因是statement介面方法是要進行sql語句的拼接.不僅麻煩而且存在安全隱患,PreparedStatement解決了這個問題

使用:PreparedStatement介面

方法名稱

作用

Boolean execute()

`可以執行任意的sql語句,若執行Result對象,則返回true,若執行更新計數或者不存在的結果,返回false

ResultSet executeQuery()

執行sql查詢,返回ResultSet的對象

Int  executeUpdate()

可以執行  insert,update,delete的操作,返回受影響行數

Void setInt(int index,int x)

將指定的參數設定給java int值,也就是給上面的sql語句的格式(?)設定值,前:下標1開始,後:值

Void setobject(int index,int x)

給定對象設定指定參數

 

步驟:

建立PreparedStatement對象

通過connection的preparedStatement(String sql) 方法建立PreparedStatement對象,sql語句可以一個或者多個參數,值用一個?預留位置表示。

String sql=Update dog set name=?,health=? Where id=?

 

PreparedStatement  ps=conn.preparedStatement(String sql);

 

給每個預留位置的參數設定值

Ps.setInt(int index,int values);    //第一個:是下標從1開始,第二個:是值

Ps.setString(int index,Stringvalues);    //第一個:是下標從1開始,第二個:是值

 

執行sql語句

在設定各個參數值後,就可以調用preparedStatement的方法了(resultSet  executeQuery), int execute() ,  boolean execute() 

java使用JDBC

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.