zoukankan      html  css  js  c++  java
  • MySQL-第十一篇JDBC典型用法

    1、JDBC常用方式

        

       1》DriverManager:管理JDBC驱动的服务类。主要用于获取Connection。其主要包含的方法:

           public static synchronized Connection getConnection(String url,String user,String pass) throws SQLException

       2》Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。Connection常用的方法:

           1>Statement createStatement() throws SQLException:返回一个Statement对象。

           2>PreparedStatement prepareStatement(String sql) throws SQLException:返回预编译的Statement对象,即将SQL提交到数据库预编译。

           3>CallableStatement prepareCall(String sql) throws SQLException:返回CallableStatement对象,该对象用于调用存储过程。

           上面3个方法都返回用于执行SQL语句的Statement对象,PrepareStatement、CallableStatement是Statement的子类,只有获得了Statement之后才可以执行SQL语句

           Connection还有以下用于控制事务的方法

           4>Savepoint setSavepoint():创建一个保存点。

           5>Savepoint setSavepoint(String name):指定名字来创建一个保存点。

           6>void setTransactionIsolation(int level):设置事务的隔离级别。

           7>void rollback():回滚事务。

           8>void rollback(Savepoint savepoint):将事务回滚到指定的保存点。

           9>void setAutoCommit(boolean autoCommit):关闭自动提交,打开事务。

         10>void commit():提交事务。

        使用哪一种执行SQL的方式:

        3》Satatement:用于执行SQL语句的工具接口。可用于执行DDL、DCL、DML语句、SQL查询,执行SQL查询时,返回查询到的结果集。常用的方法如下。

            1>ResultSet executeQuery(String sql) throws SQLException:该方法用于执行查询语句,并返回查询结果对应的ResultSet对象。只能用于执行查询语句。

            2>int executeUpdate(String sql) throws SQLException:用于执行DML语句,并返回受影响的行数;也可以执行DDL语句,将返回0。

            3>boolean execute(String sql) throws SQLException:可以执行任何SQL语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false。

            4>ResultSet getResultSet():获取Statement执行查询语句所返回的ResultSet对象。

            5>int getUpdateCount():获取Statement执行DML语句所影响的记录行数。

        4》PrepareStatement:Statement的子接口。预编译的Statement对象,它允许数据库预编译SQL语句。比Statement多出的方法如下

            1>void setXxx(int parameterIndex,Xxx value):该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给SQL语句中指定位置的参数。

            2>void setObject():如果程序不清楚预编译SQL语句中个参数的类型,则使用该方法来传入参数,由PreparedStatement来负责类型转换。

            PreparedStatement与Statement相比较的优点:

                1>PrepareStatement比Statement高效。 

                2>SQL语句无需拼接SQL字符串,可以防止SQL注入。

        5》CallableStatement:Statement的子接口。

    delimiter //
    create procedure add_pro(a int,b int,out sum int)
    begin
      set sum=a+b;
    end;
    //

         上面的SQL语句将MySQL的语句结束符改为双斜线(//),这样就可以在创建存储过程中使用分号作为分隔符(MySQL默认使用分号作为语句结束符)。

         调用存储过程的格式:

            {call 过程名(?,?,?...)}

    //使用CallableStatement调用存储过程
    cstamt=conn.prepareCall("{call add_pro(?,?,?)}");

         通过CallableStatement的setXxx()方法为传入参数设值;使用registerOutParameter注册输出参数。使用getXxx(int index)获取输出参数。

       下面处理结果集:

        6》ResultSet:结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据。包含的移动记录指针方法有。

            1>void close():释放ResultSet对象。

            2>boolean absolute(int row):将结果集的记录指针移动到第row行,如果row是负数,则移动到倒数第row行。如果移动后记录指针指向一条有效记录,则该方法返回true。

            3>void beforeFirst():将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的初始状态,记录指针的起始位置位于第一行之前。

            4>boolean first():将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效记录,则该方法返回true。

            5>boolean previous():将ResultSet的记录指针定位到上一行。如果移动后的记录指针指向一条有效记录,则该方法返回true。

            6>boolean next():将ResultSet的记录指针定位到下一行。如果移动后的记录指针指向一条有效记录,则该方法返回true。

            7>boolean last():将ResultSet的记录指针定位到最后一行。如果移动后的记录指针指向一条有效记录,则该方法返回true。

            8>void afterLast():将ResultSet的记录指针定位到最后一行之后。

            当把记录指针移动到指定行之后,ResultSet可通过getXxx(int columnIndex)或getXxx(String columnLabel)方法来获取当前行、指定列的值。前者根据列索引获取值,后者根据列名获取值。

  • 相关阅读:
    算法学习概述(2016.6)
    java异常和错误类总结(2016.5)
    java string 细节原理分析(2016.5)
    MySQL 5.7.18 解压版安装
    Struts2的<s:date>标签使用详解[转]
    jprofile查看hprof文件[转]
    iBatis的Settings节点参数详解[转]
    window.open、window.showModalDialog和window.showModelessDialog 的区别[转]
    oracle 字典表查询
    oracle 表空间操作
  • 原文地址:https://www.cnblogs.com/ZeroMZ/p/11371725.html
Copyright © 2011-2022 走看看