java JDBC 學習

來源:互聯網
上載者:User

1. JDBC操作Access資料庫

http://www.blogjava.net/pixysoft/archive/2007/09/09/143731.html

                     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

                     String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=demo.mdb";

                     Connection con = DriverManager.getConnection(database, "", "");

                     Statement s = con.createStatement();

                     s.execute("select ID,NAME,MEMO from DEMO where ID=" + id);

                     ResultSet rs = s.getResultSet();

                     if (rs != null)

                     {

                            while (rs.next())

                            {

                                   byte[] image = rs.getBytes(3);

                                   memo = new String(image, "gb2312");

                            }

                     }

                     s.close();

                     con.close();

 

2. JDBC系統入門教程:

http://java.sun.com/docs/books/tutorial/jdbc/overview/index.html

http://java.sun.com/docs/books/tutorial/jdbc/basics/transactions.html

使用事務。 

When a connection is created, it is in auto-commit mode.

con.setAutoCommit(false);

con.setAutoCommit(false);PreparedStatement updateSales = con.prepareStatement(    "UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?");updateSales.setInt(1, 50);updateSales.setString(2, "Colombian");updateSales.executeUpdate();PreparedStatement updateTotal = con.prepareStatement(    "UPDATE COFFEES SET TOTAL = TOTAL + ? WHERE COF_NAME LIKE ?");updateTotal.setInt(1, 50);updateTotal.setString(2, "Colombian");updateTotal.executeUpdate();con.commit(); 
con.setAutoCommit(true); 

http://www.360doc.com/content/06/1118/14/14474_264128.shtml

http://java.chinaitlab.com/JDBCJDO/734413.html 

一種簡單JDBC串連池的實現(一)

每申請一個串連(Connection)會在物理網路(如 TCP/IP網路)上建立一個用於通訊的串連,在此串連上還可以申請一定數量的Statement.

http://java.chinaitlab.com/JDBCJDO/734416.html

一種簡單JDBC串連池的實現(二)

 

http://www.cnblogs.com/pony/archive/2008/11/17/1335227.html

java 擷取表結構

DatabaseMetaData dbmd = con.getMetaData(); 
rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); 
rs.getString(DATA_TYPE) java.sql.Types 的 SQL 類型 
rs.getString(COLUMN_SIZE) 列的大小。對於 char 或 date 類型,列的大小是最大字元數,對於 numeric 和 decimal 類型,列的大小就是精度。 
rs.getString(DECIMAL_DIGITS) 小數部分的位元

 

2. 下面就是擷取表的資訊。 
m_DBMetaData = m_Connection.getMetaData(); 

ResultSet tableRet = m_DBMetaData.getTables(null, "%",m_TableName,new String[]{"TABLE"}); 

 

3. 提取表的名字。 
while(tableRet.next) System.out.println(tableRet.getString("TABLE_NAME"));

通過getString("TABLE_NAME"),就可以擷取表的名字了。 
從這裡可以看出,前面通過getTables的介面的返回,JDBC是將其所有的結果,儲存在一個類似table的記憶體結構中,而其中TABLE_NAME這個名字的欄位就是每個表的名字。

4. 提取表內的欄位的名字和類型 
String columnName; 
String columnType; 
ResultSet colRet = m_DBMetaData.getColumns(null,"%", m_TableName,"%"); 
while(colRet.next()) { 
columnName = colRet.getString("COLUMN_NAME"); 
columnType = colRet.getString("TYPE_NAME"); 
int datasize = colRet.getInt("COLUMN_SIZE"); 
int digits = colRet.getInt("DECIMAL_DIGITS"); 
int nullable = colRet.getInt("NULLABLE"); 
System.out.println(columnName+" "+columnType+" "+datasize+" "+digits+" "+ 
nullable); 
}

JDBC裡面通過getColumns的介面,實現對欄位的查詢。跟getTables一樣,"%"表示所有任意的(欄位),而m_TableName就是資料表的名字。

 

 

http://blog.csdn.net/alihoo/archive/2008/06/23/2578252.aspx

ResultSet pkRSet = dbMeta.getPrimaryKeys(nullnull, "Comment"); 
  while( pkRSet.next() ) { 
  System.err.println("****** Comment ******"); 
  System.err.println("TABLE_CAT : "+pkRSet.getObject(1)); 
  System.err.println("TABLE_SCHEM: "+pkRSet.getObject(2)); 
  System.err.println("TABLE_NAME : "+pkRSet.getObject(3)); 
  System.err.println("COLUMN_NAME: "+pkRSet.getObject(4)); 
  System.err.println("KEY_SEQ : "+pkRSet.getObject(5)); 
  System.err.println("PK_NAME : "+pkRSet.getObject(6)); 
  System.err.println("****** ******* ******"); 

  }  

 

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.