jdbc基本查询方法

jdbc操作数据库时,最基本的三种接口是Statement PrepareStatment  CallableStatement

(1)Statement

createStatement()

createStatement(int resultSetType, int resultSetConcurrency)

createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)(JDBC 3.0)

resultSetType - 结果集类型,它是 ResultSet.TYPE_FORWARD_ONLY(不可滚动结果集)、 ResultSet.TYPE_SCROLL_INSENSITIVE(可滚动结果集,受数据库更新影响的) 或 ResultSet.TYPE_SCROLL_SENSITIVE(可滚动结果集,不受数据库更新影响的) 之一

resultSetConcurrency - 并发类型;它是 ResultSet.CONCUR_READ_ONLY (只读结果集)或 ResultSet.CONCUR_UPDATABLE (可更新结果集) 之一。

resultSetHoldability - 以下 ResultSet 常量之一: ResultSet.HOLD_CURSORS_OVER_COMMIT (提交修改后,不关闭结果集)或 ResultSet.CLOSE_CURSORS_AT_COMMIT (提交修改后,关闭结果集)

说明:resultSetType,resultSetConcurrency,resultSetHoldability的使用是有限制的。

有的数据库并不支持可滚动结果集,可更新结果集,提交修改后不关闭结果集。可以通过conn.getMetaData()来获取DataBaseMetaData对象判断是否支持上述功能。

(2)PrepareStatement

prepareStatement(String sql)

prepareStatement(String sql, int resultSetType, int resultSetConcurrency)

prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)

prepareStatement(String sql, int autoGeneratedKeys)

prepareStatement(String sql, int[] columnIndexes)

prepareStatement(String sql, String[] columnNames)

autoGeneratedKeys可以为Statement.RETURN_GENERATED_KEYS/NO_GENERATED_KEYS

eg:PrepareStatement st=conn.prepareStatemnt(sql,Statement.RETURN_GENERATED_KEYS);

ResultSet rs=st.getGeneratedKeys();

if (rs.next()){

int key=ts.getInt(1);

}

(3)CallableStatement

prepareCall(String sql)

prepareCall(String sql, int resultSetType, int resultSetConcurrency)

prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)

时间: 2024-10-12 09:56:38

jdbc基本查询方法的相关文章

Java -- JDBC_利用反射及 JDBC 元数据编写通用的查询方法

先利用 SQL 进行查询,得到结果集: 利用反射创建实体类的对象:创建对象: 获取结果集的列的别名: 再获取结果集的每一列的值, 结合 3 得到一个 Map,键:列的别名,值:列的值: 再利用反射为 2 的对应的属性赋值:属性即为 Map 的键,值即为 Map 的值. 使用 JDBC 驱动程序处理元数据 Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数据类型,触发器,存储过程等各方面的信

MySQL的JDBC判断查询结果是否为空以及获取查询结果行数的方法

判断查询结果是否为空 在JDBC中没有方法hasNext去判断是否有下一条数据,但是我们可以使用next方法来代替. 看next方法的官方解释: boolean next() throws Moves the cursor forward one row from its current position. A ResultSet cursor is initially positioned before the first row; the first call to the method n

JDBC课程5--利用反射及JDBC元数据(ResultSetMetaData)编写通用的查询方法

/**-利用反射及JDBC元数据编写通用的查询方法 * 1.先利用SQl语句进行查询,得到结果集--> * 2.查找到结果集的别名:id--> * 3.利用反射创建实体类的对象,创建author对象--> * 4.获取结果集的列的别名: id,nation,name * 5.再获得结果集的每一列的值, * 结合2得到一个map键值对: 键: 列的别名,值: 列的值: {id=1,nation=中国,name=莫言} * 6.再利用反射为2的对应的属性赋值,属性为Map 的键,值为Map

javaWeb_JDBC_利用反射以及JDBC元数据编写通用的查询方法

JDBC利用反射以及元数据编写通用的查询方法[*****] 1.如何获取元数据 Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表, 表中的各个列,数据类型,触发器,存储过程等各方面的信息.根据这些信息,JDBC可以访问一个实现事先并不了解的数据库. 获取这些信息的方法都是在DatabaseMetaData类的对象上实现的,而DataBaseMetaData对象是在Connection对象上获得的. 2.元

ajax交互servlet返回数据和jdbc模糊查询-中文-已经设置了UTF-8和解决了乱码

1.编码是将字符按一定翻译方式转换成字节存储在内存或外存中,解码是按照一定翻译方式将存储中的字节转换成字符. 2.ASCII是单字节,最高位总为0,相当于只占用了一个字节的7位,2^7=128个字符,相当于键盘上的128个键,有大小写因为字母,有*,%¥#@!+....等这些可显示字符,也有不可以显示的控制符F1,ctr... 而ISO-8859-1是启用了ASCII码的最高位,理论上是能再多128位,实际上没用掉这么多,至于多了那些,你们自己查下表 UTF-8是可变长的,具体中文几个字节,怎么

封装数据库查询方法

---恢复内容开始--- 对于数据繁琐的各式各样的查询语句,每次都要写上一大段查询代码,不仅造成代码冗余,而且还浪费时间.下面给出自己写的一个数据库查询方法封装: 1 public class AllSelect { 2 public static List<Object> Select(String sql,String className) throws Exception{ 3 //连接数据库 4 Connection conn = new MyConnection().getConne

Spring JdbcTemplate 查询方法中的RowMapper实现汇总

sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类. 我们在数据库查询中,如果返回的类型是用户自定义的类型(其实我们在数据库查询中大部分返回的都是自定义的类)则需要包装,如果是Java自定义的类型,如:String则不需要. 如果sping与hibernate 相结合了,基本上是用不到,大多数都是在spring单独使用时用到. 可以通过建立内部类实现RowMapper接口,RowMapper中有一个mapRow方法,所以实现RowMapper接口一定要实现mapRow方法

几种查询方法(lambda Linq Enumerable静态类方式)

1.需要一个数据源类: using System; using System.Collections.Generic; namespace Linq { public class Student { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } public class Data { public static List<Student> studentLi

Spring Data学习笔记-查询方法

Spring Data支持类似Hibernate的查询语句,也可以写原生SQL语句,下面记录典型的例子. /**  * 1. Repository 是一个空接口. 即是一个标记接口  * 2. 若我们定义的接口继承了 Repository, 则该接口会被 IOC 容器识别为一个 Repository Bean.  * 纳入到 IOC 容器中. 进而可以在该接口中定义满足一定规范的方法.   *   * 3. 实际上, 也可以通过 @RepositoryDefinition 注解来替代继承 Rep