• java JDBC 学习


    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("****** ******* ******"); 

      }  

  • 相关阅读:
    ASP.NET MVC 视图
    ASP.NET MVC 控制器
    ASP.NET MVC 入门
    SQL 兼容性设置
    this template attempted to load component assembly 'NuGet.VsiualStudio.interop,version=1.0.0.0 culture=neutral publickeytoken=0000000'. 解决方案
    SQL 时间函数
    [原创]PageOffice+MobOffice 电脑、移动跨平台Office文档在线流转解决方案
    [原创]Java调用PageOffice给Word中的Table赋值
    [原创]Java调用PageOffice在线打开数据库中保存的Word文件
    [原创]新版PageOffice V4.0为什么用弹出窗口的方式打开文件?
  • 原文地址:https://www.cnblogs.com/zc22/p/1770607.html
Copyright © 2020-2023  润新知