zoukankan      html  css  js  c++  java
  • java

    DriverManager

    管理JDBC驱动的服务类,主要通过它获取Connection数据库链接

    Connection常用数据库

    Statement

    用于执行SQL语句的API接口,该对象可以执行DDL、DCL语句,也可以执行DML语句,
    还可以执行SQL查询语句,当执行查询语句是返回结果集,常用方法如下:
    ResultSet executeQuery(String sql) throws SQLException:该方法用于执行查询语句,并返回查询结果对应的ResultSet对象,
            该方法只用于查询语句。
    int executeUpdate(String sql) throws SQLException:该方法用于执行DML语句,并返回受影响的行数;
            该方法也可以执行DDL,执行DDL返回0;
    boolean execute(String sql) throws SQLException:该方法可以执行任何SQL语句,如果执行后第一个结果是ResultSet对象,
            则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false;


    PreparedStatement

    预编译的statement对象,PreparedStatement是Statement的子接口,它允许数据库预编译SQL(通常指带参数SQL)语句,
    以后每次只改变SQL命令参数,避免数据库每次都编译SQL语句,这样性能就比较好。而相对于Statement而言,
    使用PreparedStatement执行SQL语句时,无需重新传入SQL语句,因为它已经预编译了SQL语句。
    但是PreparedStatement需要为编译的SQL语句传入参数值,所以它比了如下方法:
    void setXxx(int index, value)根据该方法传入的参数值的类型不同,需要使用不同的方法。
    传入的值的类型根据传入的SQL语句参数而定。



    ResultSet

    void close() throws SQLException:释放、关闭ResultSet对象
    boolean absolute(int row):将结果集移动到第几行,如果row是负数,则移动到倒数第几行。
            如果移动到的记录指针指向一条有效记录,则该方法返回true;
    void beforeFisrt(): 将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的
            初始状态:记录指针的起始位置位于第一行之前。
    boolean first():将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效记录,则该方法返回true。
    boolean previous():将ResultSet的记录指针定位到上一行,如果移动后的记录指针指向一条有效记录,则该方法返回true。
    boolean next():将ResultSet的记录指针定位到下一行。如果移动后的记录指针指向一条有效记录,则返回true。
    boolean last():将ResultSet的记录指针定位到最后一行。如果移动后的记录指针指向一条有效记录,则返回true。
    void afterLast():将ResultSet的记录指针定位到最后一行之后。
    注意:在JDK1.4以前只支持next移动,且每次移动一个位置。到JDK1.5就可以随意定位。



    二、

    1、加载数据库驱动
    Class.forName(driverClass)
    2、通过DriverManager获取数据库的链接
    DriverManager.getConnection(String url, Stirng user, String pass)
    //使用DriverManager来获取链接,三个参数:分别是数据量的url、用户名、密码。
    3、通过Connection对象创建Statement对象或PreparedStatement对象
    4、Statement执行SQL语句,Statement有三大方法来执行SQL语句:
    execute://可以执行任何SQL语句,单比较麻烦
    executeUpdate://可以执行DML、DDL语句。执行DML返回受影响的SQL语句行数,执行DDL返回0;
    executeQuery://只能执行查询语句,执行后返回代表查询结果的ResultSet对象。
    PreparedStatement执行SQL语句:
    对于我们操作数据库的时候,执行某一条SQL语句的时候。只有它的参数不同,而SQL语句相同。
    我们可以使用占位符来设置我们的参数信息,PrepareStatement中的占位符是?,用?代替参数的位置。
    insert into table values(?, ‘abc’, ?);
    占位符仅仅支持PrepareStatement,而Statement不支持占位符。PrepareStatement是预编译SQL语句的,
    然后将占位符替换成参数。而Statement就不能做到。
     PrepareStatement对象也有execute、executeUpdate、executeQuery这三个方法,但这三个方法都无需传递参数。
    只需用PrepareStatement来设置占位符的参数,通过用setXxxx(index, value)来完成设置参数信息即可。
    PrepareStatement的效率要比Statement的效率高。
    PrepareStatement设置参数可以不拼接字符串,而Statement设置参数信息的时候需要手动拼接字符串。
    拼接字符串容易操作程序错误、可读性降低、维护性升高、程序性能下降。而PrepareStatement直接设置参数
    信息就降低了编程的复杂度。并且它可以放在SQL注入。因为它是通过setXxx方法进行设置参数信息,
    而Statement是通过拼接字符串,很容易就造成SQL注入。 
    综上所述,PrepareStatement比Statement有以下优点:
    预编译SQL语句,性能更好
    无需拼接SQL语句,编程更简单
    可以防止SQL语句注入,安全性更好

    5、ResultSet
       主要移动指针和获得值
       next、previous、first、last、beforeFrist、afterLast、absolute等移动指针的方法。
       getXxx获得移动指针指向行,特定列、索引的值。使用列名作为获取值的参数可读性好、使用索引作为获取参数性能好。
     
  • 相关阅读:
    JQuery Object vs. DOM element
    创建自己的taglib 并打包入jar
    基于中间件/构件的开发
    如何创建RESTFul Web服务
    企业级API设计
    我的面试库
    架构师在敏捷中是猪还是鸡
    网络安全那点事
    HTML元素定位
    Windows 命令集合
  • 原文地址:https://www.cnblogs.com/chEnYoNg11/p/6181975.html
Copyright © 2011-2022 走看看