從.net到java系列之jdbc

來源:互聯網
上載者:User

標籤:

需要學習java,記錄從。net到java的筆記。  下載jar包首先針對於不同的資料庫需要下載相應的jar包。類似於.net 中串連不同資料庫的dll,只是.net直接在framework裡麵包含了,這個需要自己到對應的官網上下載。 主要包:import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement; import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException; 驅動名稱等:http://www.cnblogs.com/kunpengit/archive/2011/12/13/2285933.html

資料庫

驅動類名

URL格式

Oracle

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@hostip:1521:dbname

Sybase

com.sybase.jdbc2.jdbc.SybDriver

jdbc:sybase:Tds:hostip:4100/dbname

Mysql

com.mysql.jdbc.Driver

jdbc:mysql://hostip:3306/dbname?useUnicode=true&characterEncoding=GBK

SQLServer 2000

com.microsoft.jdbc.sqlserver.SQLServerDriver

jdbc:microsoft:sqlserver://hostip:1433;DatabaseName=dbname

SQLServer 2005

com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbc:sqlserver://hostip:1433;DatabaseName=dbname

SQLServer 7.0

net.sourceforge.jtds.jdbc.Driver

jdbc:jtds:sqlserver://hostip:1433/dbname

DB2

com.ibm.db2.jcc.DB2Driver

jdbc:db2://hostip:50000/dbname

Informix

com.informix.jdbc.IfxDriver

jdbc:informix-sqli://hostip:port/dbname:informixserver=<dbservername>

   主要對象PreparedStatement (為了好記,可以當做command對象)

 

boolean execute() 
在此 PreparedStatement 對象中執行 SQL 陳述式,該語句可以是任何種類的 SQL 陳述式。
ResultSet executeQuery() 
在此 PreparedStatement 對象中執行 SQL 查詢,並返回該查詢產生的 ResultSet 對象。
int executeUpdate() 
在此 PreparedStatement 對象中執行 SQL 陳述式,該語句必須是一個 SQL 資料操作語言(Data Manipulation Language,DML)語句,比如 INSERTUPDATE 或 DELETE 語句;或者是無返回內容的 SQL 陳述式,比如 DDL 語句。
防止sql注入 pstmt.setString(1, "pf");  類似與param
程式碼片段:public static int update() {     Connection conn = getConn();     int i = 0;     String sql = "update user set username=? where userid=?";     PreparedStatement pstmt;     try {         pstmt = (PreparedStatement) conn.prepareStatement(sql);         pstmt.setString(1, "pf");         pstmt.setString(2, "1");         i = pstmt.executeUpdate();         System.out.println("resutl: " + i);         pstmt.close();         conn.close();     } catch (SQLException e) {         e.printStackTrace();     }     return i; } 返回資料集合

與c#有個比較大的不同點,c#中ado.net裡面關於資料操作的封裝類,像dataset、datatable,這些在java中都沒有與之對應的類。返回資料查詢的結果只有ResultSet。

因此,如果想返回結果資料結合需要自己實現。以下是實現樣本: 首先是實體類
package testJDBC;public class userEntity {    private String _userid;    private String _userName;        public String Userid(){        return this._userid;    }    public void SetUserid(String NewValue){        this._userid=NewValue;    }        public String UserName(){        return this._userName;    }    public void SetUserName(String NewValue){        this._userName=NewValue;    }}


 

然後是資料訪問類中的具體實現 
public static ArrayList<userEntity> getUserList() {        ArrayList<userEntity> userList = new ArrayList<userEntity>();        Connection conn = getConn();        String sql = "select * from user";        PreparedStatement pstmt;        try {            pstmt = (PreparedStatement) conn.prepareStatement(sql);            ResultSet rs = pstmt.executeQuery();            int col = rs.getMetaData().getColumnCount();            while (rs.next()) {                userEntity tmpUser = new userEntity();                tmpUser.SetUserid(rs.getString("userid"));                tmpUser.SetUserName(rs.getString("username"));                userList.add(tmpUser);            }        } catch (SQLException e) {            e.printStackTrace();        }        return userList;    }

 

從.net到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.