一年一度毕业季,又到了简历、offer漫天飞,失望与希望并存的时节。在IT行业,高校毕业生求职时,面临的第一道门槛就是技能与经验的考验,但学校往往更注重学生的理论知识,忽略了对学生实践能力的培养,因而导致很多求职者在面试中败下阵来。在毕业生所学知识普遍脱离职场实战的大趋势下,《Java Web开发实战》应运而生,此教材由千锋教研院高教产品研发部编著、清华大学出版社出版,将理论应用于实践,切实提高学生的实战能力。 下面给大家分享点本书的干货内容,关于JDBC内容继续给大家学习,想要完整资料的可以衔接查看之前的文章。 据库可以是不相同的。 1.1.1 JDBC的常用API JDBC定义了一系列操作数据库的接口和类,这些接口和类位于java.sql包中。接下来,本节将详细介绍JDBC的常用API。 1. Driver接口 Driver接口是所有JDBC驱动程序必须要实现的接口,该接口提供给数据库厂商使用。在编写JDBC程序时,必须先装载特定数据库厂商的驱动程序,装载驱动程序通过java.lang.Class类中的静态方法forName()实现。 2. DriverManager类 DriverManager类用于加载JDBC驱动并创建与数据库的连接,DriverManager类的常用方法,具体如表1.1所示。 表1.1 DriverManager的常用方法 方法名称 功能描述 registerDriver(Driver driver) 注册数据库的驱动程序 getConnection (String url,String user,String password) 获取数据库连接 3. Connection接口 Connection接口表示Java程序和数据库的连接,Java程序和数据库的交互是通过Connection接口来完成的。Connection接口的常用方法,具体如表1.2所示。 表1.2 Connection接口的常用方法 方法名称 功能描述 createStatement() 创建向数据库发送sql的Statement对象 prepareStatement(String sql) 创建向数据库发送预编译sql的PrepareSatement对象 prepareCall(String sql) 创建执行存储过程的CallableStatement对象 4. Statement接口 Statement接口用于向数据库发送SQL语句,Statement接口提供了三个执行SQL语句的方法,具体如表1.3所示。 表1.3 Statement接口的方法 方法名称 功能描述 execute(String sql) 运行语句,返回是否有结果集 executeQuery(String sql) 运行select语句,返回ResultSet结果集 executeUpdate(String sql) 运行insert/update/delete操作,返回更新的行数 5. PreparedStatement接口 继承自Statement接口,用于执行预编译的SQL语句,PreparedStatement接口提供了一些对数据库进行基本操作的方法,具体如表1.4所示。 表1.4 PreparedStatement接口的方法 方法名称 功能描述 executeQuery(String sql) 运行select语句,返回ResultSet结果集 executeUpdate(String sql) 运行insert/update/delete操作,返回更新的行数 addBatch(String sql) 把多条sql语句放到一个批处理中 executeBatch() 向数据库发送一批sql语句执行 6. CallableStatement接口 继承自PreparedStatement接口,由方法prepareCall()创建,用于调用SQL存储过程。CallableStatement接口提供了一些对数据库进行基本操作的方法,具体如表1.5所示。 表1.5 CallableStatement接口的方法 方法名称 功能描述 wasNull() 查询最后一个读取的OUT参数是否为SQL类型的Null值 setNull(String parameterName,int sqlType) 将指定参数设置为SQL类型的NULL getInt(int parameterIndex ) 以Java语言中int值的形式获取数据库中Integer类型参数的值 setString(String parameterName,String x) 将指定参数设置为给定的Java类型的String值 registerOutParameter(int parameterIndex, int sqlType) 按顺序位置parameterIndex将OUT参数注册为SQL类型 7. ResultSet接口 ResultSet接口表示执行select查询语句获得的结果集,该结果集采用逻辑表格的形式封装。ResultSet接口中提供了一系列操作结果集的方法,具体如表1.6所示。 表1.6 ResultSet接口的方法 方法名称 功能描述 getString(int index)、getString(String columnName) 获得在数据库里是varchar、char等类型的数据对象 getFloat(int index)、getFloat(String columnName) 获得在数据库里是Float类型的数据对象 getDate(int index)、getDate(String columnName) 获得在数据库里是Date类型的数据 getBoolean(int index) 、 getBoolean(String columnName) 获得在数据库里是Boolean类型的数据 getObject(int index)、getObject(String columnName) 向数据库发送一批sql语句执行 next() 移动到下一行 previous() 移动到前一行 absolute(int row) 移动到指定行 beforeFirst() 移动resultSet的最前面 afterLast() 移动到resultSet的最后面 ResultSet对象维护了一个指向表格数据行的指针,指针默认在第一行之前,调用next()或previous()等移动指针的方法,可以使指针指向具体的数据行,进而调用getObject()方法获取指定的查询结果。 8. ResultSetMetaData接口 ResultSetMetaData接口用于获取关于ResultSet 对象中列的类型和属性信息的对象。ResultSetMetaData接口的常用方法,具体如表1.7所示。 表1.7 ResultSetMetaData接口的常用方法 方法名称 功能描述 getColumCount() 返回所有字段的数目 getColumName(int colum) 根据字段的索引值取得字段的名称 getColumType (int colum) 根据字段的索引值取得字段的类型 1.1.2 JDBC URL JDBC URL提供了一种标识数据库的方法,它可以使JDBC程序识别指定的数据库并与之建立连接。大家在编写JDBC程序时, 无需关注JDBC URL的形成过程,只需使用与所用的数据库一起提供的URL即可。 JDBC URL的标准语法如图1.4所示(以MySQL为例)。 图1.1 JDBC URL的标准语法 从图1.4中可以看到,JDBC URL由协议、子协议、主机端口、数据库名称、参数等组成。其中,JDBC URL中的协议总是jdbc,子协议因数据库厂商的不同而有所差异,在本例中为mysql,主机为数据库所在主机地址,端口为MySQL数据库的默认端口号3306,参数多为连接属性的配置信息,包括数据库的用户名、密码、编码、套接字连接的超时等,JDBC URL的常用参数如表1.8所示。 表1.8 JDBC URL的常用参数 参数类型 参数名称 user 数据库用户名,用于连接数据库 password 用户密码,用于连接数据库 useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true characterEncoding 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312、gbk、utf8 autoReconnect 当数据库连接异常中断时,是否自动重新连接 autoReconnectForPools 是否使用针对数据库连接池的重连策略 failOverReadOnly 自动重连成功后,连接是否设置为只读 maxReconnectsautoReconnect 重试连接的次数 initialTimeoutautoReconnect 两次重连之间的时间间隔,单位:秒 connectTimeout 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本 socketTimeoutsocket 操作(读写)超时,单位:毫秒。 0表示永不超时 |
|