• JDBC学习总结


    1、JDBC简介

       1JDBC(Java Database Connection)java语言访问和操作数据库的一种途径。

        2JDBC操作数据库的SQL的类型:DMLDDLDCL

        3JDBC驱动实现java连接操作不同类型的数据库。

    2、JDBC

       Java.sql——JDBC的核心类和接口

       Javax.sql——数据库连接池、数据源、JNDIRowset等高级特征

    3JDBC常用接口和类

       —DriverManager:驱动管理器,获得数据库连接

       —Connection:数据库连接接口

       —Statement:语句接口,用来静态操作SQL语句

       —PreparedStatement:预定义语句,用来动态操作SQL语句

       —CallableStatement:可以调用存储过程的预定义语句

       —ResultSet:结果集,保存数据记录的结果集合

       —ResultSetMetaData:结果集元数据,如:列名称、列类型等

       —DatabaseMetaData:数据源数据,如:数据库名称,版本等

    4JDBC编程步骤

       1)加载数据库驱动(jar文件)

       2)获得数据库连接

       3)创建语句

       4)执行查询

       5)遍历结果集

       6)关闭数据库连接

     

    5Statement的常用方法://静态的

    execute(String sql):执行给定的sql语句,该语句可能返回多个结果

    executeQuery(String sql):执行给定的sql语句,该语句返回单个ResultSet对象

    executeUpdate(String sql):执行给定的sql语句,该语句可能为INSERTUPDATE或 DELETE语句,或者不返回任何内容的sql语句(如 sql DDL语句)

    6ResultSet的常用方法:

       Absoluten:绝对定位到第n

       next():下一行,返回布尔型

    getXXX():获取对应字段对应类型的数据

    getRow():获取当前行的光标

        0:代表第一行的前边或最后一行后边

    ResultSet对象不可更新,仅有一个向下移动的光标,因此只能迭代一次,以下代码演示了如何生成可滚动且不受其他更新的影响可更新结果集:(前提是更新的表要有主键)

    Statement=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);//两参数:一个可滚动,一个可更新

    7、JDBC MetaData

       1)结果集的MetaData

          ResultSetgetMetaData方法返回结果集元数据对象ResultSetMetaData

       2)数据库的MetaData

    ConnrectiongetMetaData方法返回结果集元数据对象DatabaseMetaData 

    8、PreparedStatement//动态的,有条件的

    PreparedStatement为占位符“?”赋值,预生成SQL语句,动态操作数据库

    根据当前SQL的数据类型调用相应的方法如下:

    setAsciiStream(int parameterIndex, InputStream x)

    将指定参数设置为给定输入流。

    setBigDecimal(int parameterIndex, BigDecimal x)

    将指定参数设置为给定 java.math.BigDecimal 值。

    setBinaryStream(int parameterIndex, InputStream x)

    将指定参数设置为给定输入流。

    setBoolean(int parameterIndex, boolean x)

    将指定参数设置为给定 Java boolean 值。

    setByte(int parameterIndex, byte x)

    将指定参数设置为给定 Java byte 值。

    setBytes(int parameterIndex, byte[] x)

    将指定参数设置为给定 Java byte 数组。

    setDate(int parameterIndex, Date x)

     使用运行应用程序的虚拟机的默认时区将指定参数设置为给定 java.sql.Date 值。

    setDouble(int parameterIndex, double x)

    将指定参数设置为给定 Java double 值。

    setFloat(int parameterIndex, float x)

    将指定参数设置为给定 Java REAL 值。

    setInt(int parameterIndex, int x)

    将指定参数设置为给定 Java int 值。

    setLong(int parameterIndex, long x)

    将指定参数设置为给定 Java long 值。

    setNull(int parameterIndex, int sqlType, String typeName)

    将指定参数设置为 SQL NULL。

    setObject(int parameterIndex, Object x) 

    使用给定对象设置指定参数的值。

    setShort(int parameterIndex, short x)

    将指定参数设置为给定 Java short 值。

    setString(int parameterIndex, String x)

    将参数设置为给定 Java String 值。

    setTime(int parameterIndex, Time x)         

    将指定参数设置为给定 java.sql.Time 值。

    setTimestamp(int parameterIndex, Timestamp x)

    将指定参数设置为给定 java.sql.Timestamp 值。

    setURL(int parameterIndex, URL x)

    将参数设为给定java.net.URL 值。

     

    9、CallableStatement:用于执行 SQL 存储过程的接口。

       三种存储过程:无参数,有输入参数,有输入输出参数

    10、DAO设计模式

        

  • 相关阅读:
    js压缩、混淆和加密 Alan
    与、或、异或运算 Alan
    Hello world Alan
    abstract class和interface有什么区别?
    接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?
    启动一个线程是用run()还是start()?
    数组有没有length()这个方法? String有没有length()这个方法?
    swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
    当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
    简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。
  • 原文地址:https://www.cnblogs.com/XiaoyangBoke/p/3580433.html
Copyright © 2020-2023  润新知