在整个数据库的开发过程之中数据的查询操作是最复杂的,因为查询会牵扯到各种复杂查询的管理,例如:多表查询、子查询、统计查询、集合操作等等,但是从现代的开发来讲,对于数据的查询如果非必须的情况下建议以简单查询为主,在Statement接口里面所定义的数据查询方法如下:
ResultSet executeQuery(String sql) throws SQLException
这个查询方法会直接返回有一个ResultSet接口的对象实例,这样就可以得到如下的完整的数据库操作的接口关联。
在执行的过程之中由Statement接口的对象实例向数据库发出一条查询指令,随后这个数据库的查询返回的结果会自动通过ResultSet接口对象实例进行包装,这些数据就被加载到内存之中了。如果此时数据查询返回的结果过多的话,那么就会造成JVM的内存占用率过高,从而导致程序有可能出现内存溢出的问题。
如果要想通过ResultSet 获取数据直接使用getXxx()方法即可, 其中“Xxx”对应的是不同的数据类型,例如: getLong()、getString()、getDate()等。范例:实现数据查询
【查询结果】编号:1、姓名:李兴华、年龄:18、生日:2008-08-13、工资:8000.000000、介绍: www. yootk. com 【查询结果】编号:2、姓名: 沐言优折、年龄:18、生日:2009-09-15、工资:9000.000000、介绍: ww.yootk.com 【查询结果】编号:3、姓名:VIP学院、年龄:18、生日:2009-09-15、工资:78000.000000、介绍:yootk.ke.qq.com 【查询结果】编号:4、姓名:李四、年龄:17、生日:1888-08-01、工资:100.000000、介绍:www.baidu.com
在以后开发的过程里面对于数据查询的SQL语句来讲绝对不允许使用“SELECT*”因为这样会导致查询结果的不明确,如果此时查询的是具体的字段信息,最大的优势在于:可以直接通过编号的形式来获取数据。
范例:通过编号获取数据
此时由于查询语句上已经明确的给出了查询列的定义,这样就可以通过索引号方便的实现结果集中列数据的获取了。虽然通过具体的getXxx()的形式可以获得相应的列数据信息,但是在ResultSet接口里面针对于结果列的获取还有另外一个简单方法:
Object getObject(int columnIndex) throws SQLException
把所有的内容都以Object的形式进行接收,Object作为返回数据类型的统一标准了。
范例:通过getObject()实现操作的接收
在Java中有一项特别重要的技术就属于反射机制,而对于反射机制来讲,所有的参数的内容都会通过Object类型来描述,结合反射机制再使用如上的getObject()方法就特别有用处。
提示:现在所使用的JDBC操作形式属于JDBC1.0的时候所具备的流程,但是相比较原始的JDBC版本来讲,现在的JDBC开发要方便许多,因为有如下两个问题解决了:
- 在JDBC早期版本里面,所有的列数据必须按照顺序的方式获取,如果顺序错乱,则无法获取;。
- 所有的数据只能够获取一次,如果重复获取也会出错。
通过以上的程序已经实现了完整的数据的CRUD处理,那么下面尝试创建两个Statement对象一个实现数据的增加,另外一个实现获取增长后ID的内容( 数据库查询)。
范例:观察两个Statement接口对象的操作
插入的数据ID为:11
每一个Statement对象都表示一个完全独立的SQL语句的执行命令,如果现在不想有多个Statement,也可以通过重复的关闭和创建的机制来实现。|
只要用户会写sql语句就可以实现数据库的CRUD处理。