- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章JDBC数据库编程-ok20151201分析
使用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
文档评论(0)