jdbc与德鲁伊的简单学习;

本文介绍了Java中JDBC与SQL的数据类型转换,详细解析了ResultSet与ResultSetMetaData的使用,包括如何获取列信息。此外,还探讨了德鲁伊数据库连接池的使用,如DataSource、ResultSetHandler接口及其子类,以及DbUtils工具类的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本的类的关系和操作流程;

最终的替换的流程;

Java与SQL对应数据类型转换表

 ResultSet与ResultSetMetaData

  1. PreparedStatement 的 executeQuery() 方法,查询结果是一个ResultSet 对象
  2. ResultSet 返回的实际上就是一张数据表。有一个指针指向数据表的第一条记录的前面。
  3. ResultSet 对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,可以通过 ResultSet 对象
    的 next() 方法移动到下一行。调用 next()方法检测下一行是否有效。若有效,该方法返回 true,且指针下移。
    相当于Iterator对象的 hasNext() 和 next() 方法的结合体。
  4. 指针指向一行时, 可以通过调用 getXxx(int index) 或 getXxx(int columnName) 获取每一列的值。
  5. 注意:操作数据库都是索引是从1开始的;
  6. ResultSet 接口的常用方法:
    boolean next()
    getString()
  7. 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象
    ResultSetMetaData meta = rs.getMetaData();(rs是ResultSet)
    getColumnName(int column):获取指定列的名称
    getColumnLabel(int column):获取指定列的别名
  8. 总结:. 1,如何获取 ResultSetMetaData: 调用 ResultSet 的 getMetaData() 方法即可
    2. 获取 ResultSet 中有多少列:调用 ResultSetMetaData 的 getColumnCount() 方法
    3. 获取 ResultSet 每一列的列的别名是什么:调用 ResultSetMetaData 的getColumnLabel() 方法

总结:

两种思想
面向接口编程的思想
ORM思想(object relational mapping)
一个数据表对应一个java类
表中的一条记录对应java类的一个对象
表中的一个字段对应java类的一个属性
sql是需要结合列名和表的属性名来写。注意起别名。

数据库连接池druid的使用

1,DataSource

DataSource用来取代DriverManager来获取Connection,获取速度快,同时可以大幅度提高数据库访问速

数据源和数据库连接不同,数据源无需创建多个,它是产生数据库连接的工厂,因此整个应用只需要一个数据源即可。(一个DataSource)

常见的类和接口:

1,DruidDataSourceFactory

方法:createDataSourse(propertise);通过加载配置文件来获取数据源;

2,ResultSetHander接口;

用来处理数据查询到的结果集;他的子类来实现;

3,QueryRunner

update()和query()操作;

更新:插入,删除,更新;

public int update(Connection conn, String sql, Object... params) throws SQLException:用来执行一个更新(插入、更新或删除)操作。

查询:

public Object query(Connection conn, String sql, ResultSetHandler rsh,Object... params) throwsSQLException:执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭。

4,DbUtils

closeQuietly(…)关闭的操做;

5, ResultSetHandler接口及实现类

BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中

BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

scalar:adj.标量的;数量的;梯状的,分等级的

n.[数] 标量;[数] 数量

ScalarHandler:查询单个值对象

 德鲁伊常见的一些类

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜抱抱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值