第11章JDBC数据库编程-ok20151201规范.ppt
文本预览下载声明
使用PreparedStatement提供的方法 ResultSet executeQuery() int executeUpdate() boolean execute() * 代码清单11-3 发送SQL命令 做法2 当向数据库发送一个SQL语句,数据库中的SQL解释器负责把SQL语句生成底层的内部命令,然后执行。 如果不断的发送SQL语句,势必增加数据库中SQL解释器的负担,影响执行的速度。 能不能事先就将SQL语句解释为底层的内部命令,然后再发送到数据库直接执行呢? PreparedStatement接口 答案是肯定的。 Java提供了更高效率的数据库操作机制,就是PreparedStatement接口,它的对象被习惯地称作预处理语句对象。 在对SQL进行预处理时,可以使用通配符“?”来代替字段的值,并在预处理语句执行之前对通配符所表示的内容进行具体值的设定。 如: PreparedStatement pre=con.prepareStatement(“select * from score where maths?”); pre.setInt(1,60);//1表示出现的第一个通配符 预处理设置通配符值的常用方法: void setDate(int index,Date x) void setDouble(int index,double x) void setFloat(int index,float x) void setInt(int index,int x) void setLong(int index,long x) void setString(int index,String x) 预处理语句具有两个主要的优点: 只需要被解析(或准备)一次,可以使用相同或不同的参数(针对通配符?)执行多次。 传给预处理语句的参数不需要使用引号,底层驱动会处理这个。 11.3.6 数据库SQL操作 数据库基本操作包括查询、删除、插入、更新等,主要涉及Statement接口、PreparedStatement接口、ResultSet接口等的操作。 * (1)数据查询 数据查询分为一般查询、带参数的查询,一般查询使用Statement接口,带参数的查询使用PreparedStatement接口。 例如: 一般查询:String sql = SELECT * FROM t_user WHERE age20; 带参数的查询:String sql = SELECT * FROM t_user WHERE age?; 条件查询 select 字段列表/* from 表名 where 条件 排序查询 select 字段列表/* from 表名 order by 字段 asc/desc 模糊查询 select 字段列表/* from 表名 where 字段 like ‘%xxx%’ 统计查询 select count(字段/*) from 表名 等等。具体请参照SQL命令。 向数据库发送查询命令,返回查询结果集 Statement st=con.createStatement(); ResultSet rs=st.executeQuery(sql); 或者, PreparedStatement ps=con.createStatement(sql); ResultSet rs=ps.executeQuery(); ResultSet的对象所包含的结果集中往往有多条记录,形式如下图所示: String sql=select userID,usrname,age,gender from t_user where gender=女 ; ResultSet rs=st.executeQuery(sql); boolean absolute(int?row) boolean first() boolean last() boolean relative(int?rows) boolean previous() boolean next() int getInt(String?columnName) int getInt(int?columnIndex) String getString(int?columnIndex) String getString(String?columnName) ResultSet接口 常用的方法 如何处理查询的返回结果? 处理返回结果——查询 a. 获取结果集中的列名、类型 ResultMetaData rsmd=rs.getMetaData(); int cc=rsmd.getColumnCount(); for(int
显示全部