用java对象来表达jdbc操作

用java对象来表达jdbc操作

ID:34783871

大小:68.68 KB

页数:7页

时间:2019-03-10

用java对象来表达jdbc操作_第1页
用java对象来表达jdbc操作_第2页
用java对象来表达jdbc操作_第3页
用java对象来表达jdbc操作_第4页
用java对象来表达jdbc操作_第5页
资源描述:

《用java对象来表达jdbc操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、org.springframework.jdbc.object包下的类允许用户以更加面向对象的方式去访问数据库。比如说,用户可以执行查询并返回一个list,该list作为一个结果集将把从数据库中取出的列数据映射到业务对象的属性上。用户也可以执行存储过程,以及运行更新、删除以及插入SQL语句。注意在许多Spring开发人员中间存在有一种观点,那就是下面将要提到的各种RDBMS操作类(StoredProcedure类除外)通常也可以直接使用JdbcTemplate相关的方法来替换。相对于把一个查询操作封装成一个类而言,直接调用JdbcTemplate方法将更简

2、单而且更容易理解。必须说明的一点就是,这仅仅只是一种观点而已,如果你认为你可以从直接使用RDBMS操作类中获取一些额外的好处,你不妨根据自己的需要和喜好进行不同的选择。11.4.1.SqlQuery类SqlQuery是一个可重用、线程安全的类,它封装了一个SQL查询。其子类必须实现newResultReader()方法,该方法用来在遍历ResultSet的时候能使用一个类来保存结果。我们很少需要直接使用SqlQuery,因为其子类MappingSqlQuery作为一个更加易用的实现能够将结果集中的行映射为Java对象。SqlQuery还有另外两个扩展分别是

3、MappingSqlQueryWithParameters和UpdatableSqlQuery。11.4.2.MappingSqlQuery类MappingSqlQuery是一个可重用的查询抽象类,其具体类必须实现mapRow(ResultSet,int)抽象方法来将结果集中的每一行转换成Java对象。在SqlQuery的各种实现中,MappingSqlQuery是最常用也是最容易使用的一个。下面这个例子演示了一个定制查询,它将从客户表中取得的数据映射到一个Customer类实例。privateclassCustomerMappingQueryextend

4、sMappingSqlQuery{publicCustomerMappingQuery(DataSourceds){super(ds,"SELECTid,nameFROMcustomerWHEREid=?");super.declareParameter(newSqlParameter("id",Types.INTEGER));compile();}publicObjectmapRow(ResultSetrs,introwNumber)throwsSQLException{Customercust=newCustomer();cust.setId((Int

5、eger)rs.getObject("id"));cust.setName(rs.getString("name"));returncust;}}在上面的例子中,我们为用户查询提供了一个构造函数并为构造函数传递了一个DataSource参数。在构造函数里面我们把DataSource和一个用来返回查询结果的SQL语句作为参数调用父类的构造函数。SQL语句将被用于生成一个PreparedStatement对象,因此它可以包含占位符来传递参数。而每一个SQL语句的参数必须通过调用declareParameter方法来进行声明,该方法需要一个SqlParamete

6、r(封装了一个字段名字和一个java.sql.Types中定义的JDBC类型)对象作为参数。所有参数定义完之后,我们调用compile()方法来对SQL语句进行预编译。下面让我们看看该定制查询初始化并执行的代码:publicCustomergetCustomer(Integerid){CustomerMappingQuerycustQry=newCustomerMappingQuery(dataSource);Object[]parms=newObject[1];parms[0]=id;Listcustomers=custQry.execute(parms

7、);if(customers.size()>0){return(Customer)customers.get(0);}else{returnnull;}}在上面的例子中,getCustomer方法通过传递惟一参数id来返回一个客户对象。该方法内部在创建CustomerMappingQuery实例之后,我们创建了一个对象数组用来包含要传递的查询参数。这里我们只有唯一的一个Integer参数。执行CustomerMappingQuery的execute方法之后,我们得到了一个List,该List中包含一个Customer对象,如果有对象满足查询条件的话。11.

8、4.3.SqlUpdate类SqlUpdate类封装了一个可重复使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。