zoukankan      html  css  js  c++  java
  • 第十七部分_详解JDBC

    JDBC(Java DataBase Connectivity)

    • 是一种用于执行SQL语句的Java API
    • 由一组用Java编程语言编写的类和接口组成
    • 为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序

    四类JDBC驱动程序(了解)

    • JDBC-ODBC桥+ODBC驱动程序:利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到该驱动程序的每个客户机上
    • 本地API:部分用Java来编写的驱动程序,这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、DB2或其他DBMS的调用。注意,像桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上
    • JDBC网络纯Java驱动程序(使用频繁):这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上
    • 本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议

    数据库连接的一般过程(重要)

    • 载入JDBC驱动程序(jar)
    • 定义连接URL(特定数据库)
    • 建立连接(Connection)
    • 创建Statement对象(JDBC顶层接口)
    • 执行查询或更新
    • 结果处理
    • 关闭连接

    加载驱动程序

    • 使用JDBC-ODBC桥驱动程序的语句如下:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    • 使用Oracle9i的JDBC驱动程序的语句如下:Class.forName("oracle.jdbc.driver.OracleDriver");

    建立JDBC连接

    • DriverManager类的getConnection()方法:public static Connection getConnection(String url, String user, String password) throws SQLException
    • Oracle提供了两种JDBC驱动程序

      最后,不要忘记关闭Connection对象,释放占用的资源:public void close() throws SQLException

    发送SQL语句

    • Statement对象用于将SQL语句发送到数据库中。存在三种Statement对象:Statement;PreparedStatement(从Statement继承而来);CallableStatement(从PreparedStatement继承而来)
    • 由Connection的createStatement()方法创建:public Statement createStatement() throws SQLException

    id name
    1  张三
    2  李四
    
    
    ResultSet rs = st.executeQuery("select * from person");
    
    rs.next(); // 通常用来循环遍历表,可以看作一个指针指向当前数据行,默认指向有效数据行的上一行
    
    int id = res.getInt(1); // 取得当前行中第一列的值,下同
    int id2 = res.getInt("id");
    
    String name = rs.getString(2);
    String name2 = rs.getString("name");
    
    PreparedStatement ps = con.prepareStatement("insert into person(id, name) values (?,?)");
    
    ps.setInt(1, 5); // 函数调用的类型根据字段中问号对应的类型,这里1代表第一个问号,5是设置的值
    ps.setString(2, "wangwu");
    
    ps.execute(); // 表示真正执行sql语句
    

      

  • 相关阅读:
    EF 连接数据库 Mysql (database first ) 一个表对应一个模型
    EF Database first 中,实现 多个表对应一个 实体的 查询
    用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 (转sam xiao的博客)
    转,竞争中的操作手法
    最近想买的东西
    换书网,互相换书看
    在线模拟城市
     下面我列出了一些和VC商谈时必须解决的问题。
    时代杂志:生活中离不开的25个网站
    运营社区需要心理学
  • 原文地址:https://www.cnblogs.com/Code-Rush/p/4671492.html
Copyright © 2011-2022 走看看