jdbctemplate 封装怎么把数据库中的一行记录封装成对象数组

JS 将数据库取出的数据封装成对象存入数组,取不出
[问题点数:40分,结帖人dddddz]
JS 将数据库取出的数据封装成对象存入数组,取不出
[问题点数:40分,结帖人dddddz]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年6月 MS-SQL Server大版内专家分月排行榜第一2015年5月 MS-SQL Server大版内专家分月排行榜第一2015年4月 MS-SQL Server大版内专家分月排行榜第一2015年3月 MS-SQL Server大版内专家分月排行榜第一2015年2月 MS-SQL Server大版内专家分月排行榜第一2015年1月 MS-SQL Server大版内专家分月排行榜第一2014年12月 MS-SQL Server大版内专家分月排行榜第一2014年11月 MS-SQL Server大版内专家分月排行榜第一2014年10月 MS-SQL Server大版内专家分月排行榜第一
2005年7月 Web 开发大版内专家分月排行榜第三
2005年7月 Web 开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。如何在vc++中调出数据库中的数据,并能-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
如何在vc++中调出数据库中的数据,并能
来源:互联网 发表时间: 11:29:54 责任编辑:鲁晓倩字体:
为了帮助网友解决“如何在vc++中调出数据库中的数据,并能”相关的问题,中国学网通过互联网对“如何在vc++中调出数据库中的数据,并能”相关的解决方案进行了整理,用户详细问题包括:数据库是access,数据是double型,具体解决方案如下:解决方案1:
///pcedu/empolder/gj/vc/用ADO。这里有篇介绍./pcedu/empolder/gj/vc/.html" target="_blank">://www
提问者评价
谢谢,虽然ado连接很简单,但是操作修改还是不太容易
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号Spring的JdbcTemplate做个简单记录,方便记忆
&&& 调用jdbcTemplate的UPDATE方法时,返回的是,影响的记录数;如果update语句中,符合条件的数据一条都没有,则返回0,insert则为1;如果出现执行时的其他问题,比如语法错,比如连接中断,一律产生异常。
&&& 调用batchUpdate做批量修改时,返回的是整数类型的数组,即每一条修改语句影响到的记录数,如果中间有一条语句执行错误,则抛出异常。
&&& 这两个操作返回的结果,不是想当然的返回0表示执行成功,1表示执行失败,特此记录
spring Jdbctemplate返回插入记录的自增Id
import java.sql.C import java.sql.PreparedS import java.sql.SQLE import java.text.ParseE import org.springframework.jdbc.core.Prepa
spring JdbcTemplate默认查询记录只有5000条
今天使用spring的jdbcTemplate查询数据做导出功能,查询的数据本来有14000多条,可导出来到EXCEL后发现只只有5001条(连表头),然后就在网上搜了一下,发现spring Jdbctemplate默认只能查询5000条数据,如果想设置查询更多记录,需要手动设置MaxRows,代码如下: int max = jd
Spring jdbctemplate 得到SQL的元数据
public static void testFind() { DataSource dataSource = getDataSource(); JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); String sql = &select * from (se
Spring 中的JdbcTemplate使用
1.JdbcTemplate的execute()方法执行SQL DDL语句,例如:
jdbcTemplate.execute(&CREATE TABLE USER (user_id integer, name varchar(100))&);
使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法,
Spring 中的JdbcTemplate使用
1.JdbcTemplate的execute()方法执行SQL DDL语句,例如: jdbcTemplate.execute(&CREATE TABLE USER (user_id integer, name varchar(100))&);使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法,例如使
Spring 中的JdbcTemplate使用
1.JdbcTemplate的execute()方法执行SQL DDL语句,例如:
jdbcTemplate.execute(&CREATE TABLE USER (user_id integer, name varchar(100))&);
使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法,
spring的jdbctemplate返回数据类型为List
spring的jdbctemplate返回数据类型为List 用 jdbctemplate queryForList
Spring 的JdbcTemplate的持久层封装
1,Spring 2.0提供了几种常用的持久层访问方式:
1,Jdbc,-----------JdbcT 2,hibernate ,-------hibernateT 3,JDO 4,Oracle TopL 5,iBATIS SQL M 6,JPA;
spring的jdbcTemplate insert 语句
public boolean saveStdCourseByScId(int uid, int cid) { String sql = &insert into 7east_usercourse_right(userid,courseid) values(?,?) &; Object[] args = new Ob
spring JdbcTemplate小结
提供了JdbcTemplate 来封装数据库jdbc操作细节: 包括: 数据库连接[打开/关闭] ,异常转义 ,SQL执行 ,查询结果的转换
使用模板方式封装 jdbc数据库操作-固定流程的动作,提供丰富callback回调接口功能,方便用户自定义加工细节,更好模块化jdbc
用Spring的JdbcTemplate实现分页功能
 如果你的查询有10000条记录,或者更多,速度肯定慢了,当然你可以通过resultset中的游标控制查询的起始和结束。我这里用的是Oracle数据库,使用伪列ROWNUM来实现分页。我的分页代码如下:
&!-- Code highlighting produced by Actipro CodeHighlighter (free
Spring中jdbcTemplate的用法实例(一)
一、首先配置JdbcTemplate; 要使用Jdbctemplate 对象来完成jdbc 操作。通常情况下,有三种种方式得到JdbcTemplate 对象。 第一种方式:我们可以在自己定义的DAO 实现类中注入一个DataSource 引用来完 成JdbcTempl
spring jdbcTemplate使用
关于java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required 类似问题的解决总结:/MoShin/archive//2204020.html
参考: spring jdbcTemplate
使用spring的jdbcTemplate查询返回对象
数据库中的数据表: create table client (
clientId int identity(1,1),
clientName&nb
spring的JdbcTemplate、NamedParameterJdbcTemplate和SimpleJdbcTemplate
使用spring自己对数据库操作时,可以使用这三个数据库操作模板。 JdbcTemplate中方法主要传递sql,和数组参数,其方法要求sql占位符和参数数组位置需要对应,参考代码:
public class JdbcTemplateTest { static J
[原创]Spring JdbcTemplate 使用总结与经验分享
近期开发的几个项目,均是基于Spring boot框架的web后端项目,使用JdbcTemplate执行数据库操作,实际开发过程中,掌握了一些有效的开发经验,踩过一些坑,在此做个记录及总结,与各位读者分享。
欢迎留言与我交流。
正确使用JdbcTemplate执行数据库操作 1、Bean声明
新增类型Databa
Spring的JdbcTemplate插入操作返回主键ID的方法
public Long insertAndGetKey(final String sql, final SmsBean smsbean) { KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedStatementCreat
spring jdbctemplate的最佳学习实践
源: /spring/2.5.x/zh-cn/jdbc.html 使用JDBC进行数据访问 11.1. 简介 Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现:(注:使用了Spring JDBC抽象框架之后,应用开发人员只需要完成斜体字部分的编码工作。) 定义数据库连接参数 打开数
spring之jdbcTemplate实例
如果我们不使用spring或使用spring但不使用spring的jdbcTemplate模板的时候我们要取得一个数据库的连接以及关闭要经过如下几步: 1、使用Java反射加载驱动 2、通过DriverManager 的getConnection() 方法获取Connection对象 3、获取Statement 或P
Spring jdbcTemplate应用(二)
1.JdbcTemplate 更新数据
publicbooleanswitchStartOrderMeeting(Stringargument,Stringflag)
Spring JdbcTemplate实现通用的泛型dao三:构建动态sql
Spring JdbcTemplate实现通用的泛型dao一:主功能实现 Spring JdbcTemplate实现通用的泛型dao二:实现自己的名称转换NameHandler Spring JdbcTemplate实现通用的泛型dao三:构建动态sql Spring JdbcTemplate实现通用的泛
Spring JdbcTemplate实现通用的泛型dao一:主功能实现
Spring JdbcTemplate实现通用的泛型dao一:主功能实现 Spring JdbcTemplate实现通用的泛型dao二:实现自己的名称转换NameHandler Spring JdbcTemplate实现通用的泛型dao三:构建动态sql Spring JdbcTemplate实现通用的泛型d
spring中jdbcTemplate归纳1
jdbcTemplate整理 为了实现基本的CRUD操作,spring给我们提供了jdbcTemplate这个模板类.实现最常用的CRUD操作。先看jdbcTemplate的定义
public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { /**
模拟Spring的JdbcTemplate实现DAO
通常情况下,普通DAO的实现大概是这样的:
1、实体类: public class Emp { private I private S private S private F //getter and setter methods... } &nbs
spring jdbctemplate的增删改查
1.首先先添加两个包: c3p0-0.9.1.2.jar 和 mysql-connector-java-5.1.7-bin.jar
创建一个file jdbc.properties DriverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc\:mysql\://
spring的jdbcTemplate 返回一个类
public HomeMember findUserById(int id) { homeMember = try { homeMember = (HomeMember) jdbcTemplate.queryForObject( &SELECT * FROM uchome_member WHERE uid = ?&quo
Spring jdbcTemplate应用(一)
JdbcTemplate中的封装了很多实用的方法。 首先来介绍一下用JdbcTemplate来查询数据的方法。
1.返回指定对象类型的List(query方法)
Spring jdbcTemplate应用(三)
在这篇文章里介绍用JdbcTemplate进行数据库插入操作,包括对blob或clob字段的插入还有对blob字段的取出操作。1.使用JdbcTemplate往数据库里插入数据,其中包含blob字段。
publicbooleando
Spring JdbcTemplate例子
Spring的JDBCTemplate
当hql等查询方式不能满足性能或灵活性的要求,必须使用SQL时,大家有三种选择:
第一、使用Hibernate 的sql 查询函数,将查询结果对象转为Entity对象。
第二、使用Hibernate Session的getConnection 获得JDBC Connection,然后进行纯JDBC API操
Spring的JdbcTemplate对数据库的增删改操作(备忘)
import org.springframework.jdbc.core.JdbcT import org.springframework.jdbc.core.PreparedStatementS private JdbcTemplate jdbcT @Autowired publi
使用Spring的JdbcTemplate调用Oracle的存储过程
Spring的SimpleJdbcTemplate将存储过程的调用进行了良好的封装,但可惜只能用于jdk1.5的环境,无法再jdk1.4环境下使用,而JdbcTemplate则完全适用于jdk1.4下的环境,下面列出使用JdbcTemplate调用Oracle存储过程的一些方法:
一) 无返回值的存储过程调用
扩展spring jdbcTemplate 实现分页查询
07年末我们开发小组一直在研究:如何基于spring实现sybase的分页查询。经历磨难后,由我师傅提出了一种奏效的解决方案:扩展spring的jdbcTemplate实现分页查询。这里记录下来,以备后用。 1.JdbcTemplateExtend.java
public class JdbcTemplateExtend extends
关于spring jdbcTemplate取得LAST_INSERT_ID
spring的jdbctemplate提供的方案:
KeyHolder keyHolder = new GeneratedKeyHolder(); int updatecount = jdbcTemplate.update(new PreparedStatementCreator() { @Override publ
spring jdbcTemplate简单使用
1、使用spring配置jdbcTemplate,首先要配置applicationContext.xml文件
&?xml version=&1.0& encoding=&UTF-8&?& &!DOCTYPE beans PUBLIC &-//SPRING//DTD
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
先道要加上两个包:Spring2.5下面的:spring.jar和commons-logging.jar
我用的DBCP数据源,Connection工具类我就没写了 具体的实例说明:
public classStuDaoImple&nbsp
Spring JdbcTemplate执行过程分析
调用入口 调用JdbcTemplate提供的API都会委托给execute(),代码如下: public &T& T execute(PreparedStatementCreator psc, PreparedStatementCallback&T& action) throws DataAccessException
使用spring jdbcTemplate完成Dao的增删改查
CREATE TABLE Person( ID int generated by default as identity (start with 1) not null, FIRSTNAME VARCHAR(20) NOT NULL, LASTNAME VARCHAR(20) NOT NULL, PRIMARY KEY (ID)
spring的jdbcTemplate 返回值为list
UserDaoImpl.java
package com.qieast.platform.admincp.dao. import java.sql.T import java.util.L import org.springframework.jdbc.core.BeanPropertyRowM
spring的jdbcTemplate 返回值为list 带参数
* */ public boolean findStuCourseById(int uid, int cid) { String sql = &select * from 7east_usercourse_right where userid=? and courseid=?&; BeanPropertyRo
spring中使用JdbcTemplate的三种方式
1、使用Jdbc Template(JdbcTemplate模板类)2、使用命名参数jdbc模板NamedParameterJdbcTemplate3、使用基于jdk1.5的简单jdbc模板SimpleJdbcTemplate public List&Customer& findCustomerByName(String name11.4. 用Java对象来表达JDBC操作 - Spring Framework
reference 2.0.5
参考手册中文版 - 在线文档 - JAVA 编程资料牛鼻站
站内搜索: 请输入搜索关键词
11.4. 用Java对象来表达JDBC操作 - Spring Framework
reference 2.0.5
参考手册中文版
11.4. 用Java对象来表达JDBC操作
org.springframework.jdbc.object包下的类允许用户以更加
面向对象的方式去访问数据库。比如说,用户可以执行查询并返回一个list,
该list作为一个结果集将把从数据库中取出的列数据映射到业务对象的属性上。
用户也可以执行存储过程,以及运行更新、删除以及插入SQL语句。
在许多Spring开发人员中间存在有一种观点,那就是下面将要提到的各种RDBMS操作类
(类除外)
通常也可以直接使用JdbcTemplate相关的方法来替换。
相对于把一个查询操作封装成一个类而言,直接调用JdbcTemplate方法将更简单
而且更容易理解。
必须说明的一点就是,这仅仅只是一种观点而已,
如果你认为你可以从直接使用RDBMS操作类中获取一些额外的好处,
你不妨根据自己的需要和喜好进行不同的选择。
11.4.1. SqlQuery类
SqlQuery是一个可重用、线程安全的类,它封装了一个SQL查询。
其子类必须实现newResultReader()方法,该方法用来在遍历
ResultSet的时候能使用一个类来保存结果。
我们很少需要直接使用SqlQuery,因为其子类
MappingSqlQuery作为一个更加易用的实现能够将结果集中的行映射为Java对象。
SqlQuery还有另外两个扩展分别是
MappingSqlQueryWithParameters和UpdatableSqlQuery。
11.4.2. MappingSqlQuery类
MappingSqlQuery是一个可重用的查询抽象类,其具体类必须实现
mapRow(ResultSet, int)抽象方法来将结果集中的每一行转换成Java对象。
在SqlQuery的各种实现中,
MappingSqlQuery是最常用也是最容易使用的一个。
下面这个例子演示了一个定制查询,它将从客户表中取得的数据映射到一个
Customer类实例。
private class CustomerMappingQuery extends MappingSqlQuery {
public CustomerMappingQuery(DataSource ds) {
super(ds, "SELECT id, name FROM customer WHERE id = ?");
super.declareParameter(new SqlParameter("id", Types.INTEGER));
compile();
public Object mapRow(ResultSet rs, int rowNumber) throws SQLException {
Customer cust = new Customer();
cust.setId((Integer) rs.getObject("id"));
cust.setName(rs.getString("name"));
在上面的例子中,我们为用户查询提供了一个构造函数并为构造函数传递了一个
DataSource参数。在构造函数里面我们把
DataSource和一个用来返回查询结果的SQL语句作为参数
调用父类的构造函数。SQL语句将被用于生成一个PreparedStatement对象,
因此它可以包含占位符来传递参数。而每一个SQL语句的参数必须通过调用
declareParameter方法来进行声明,该方法需要一个
SqlParameter(封装了一个字段名字和一个
java.sql.Types中定义的JDBC类型)对象作为参数。
所有参数定义完之后,我们调用compile()方法来对SQL语句进行预编译。
下面让我们看看该定制查询初始化并执行的代码:
public Customer getCustomer(Integer id) {
CustomerMappingQuery custQry = new CustomerMappingQuery(dataSource);
Object[] parms = new Object[1];
parms[0] =
List customers = custQry.execute(parms);
if (customers.size() & 0) {
return (Customer) customers.get(0);
在上面的例子中,getCustomer方法通过传递惟一参数id来返回一个客户对象。
该方法内部在创建CustomerMappingQuery实例之后,
我们创建了一个对象数组用来包含要传递的查询参数。这里我们只有唯一的一个
Integer参数。执行CustomerMappingQuery的
execute方法之后,我们得到了一个List,该List中包含一个
Customer对象,如果有对象满足查询条件的话。
11.4.3. SqlUpdate类
SqlUpdate类封装了一个可重复使用的SQL更新操作。
跟所有RdbmsOperation类一样,SqlUpdate可以在SQL中定义参数。
该类提供了一系列update()方法,就像SqlQuery提供的一系列execute()方法一样。
SqlUpdate是一个具体的类。通过在SQL语句中定义参数,这个类可以支持
不同的更新方法,我们一般不需要通过继承来实现定制。
import java.sql.T
import javax.sql.DataS
import org.springframework.jdbc.core.SqlP
import org.springframework.jdbc.object.SqlU
public class UpdateCreditRating extends SqlUpdate {
public UpdateCreditRating(DataSource ds) {
setDataSource(ds);
setSql("update customer set credit_rating = ? where id = ?");
declareParameter(new SqlParameter(Types.NUMERIC));
declareParameter(new SqlParameter(Types.NUMERIC));
compile();
* @param id for the Customer to be updated
* @param rating the new value for credit rating
* @return number of rows updated
public int run(int id, int rating) {
Object[] params =
new Object[] {
new Integer(rating),
new Integer(id)};
return update(params);
11.4.4. StoredProcedure类
StoredProcedure类是一个抽象基类,它是对RDBMS存储过程的一种抽象。
该类提供了多种execute(..)方法,不过这些方法的访问类型都是protected的。
从父类继承的sql属性用来指定RDBMS存储过程的名字。
尽管该类提供了许多必须在JDBC3.0下使用的功能,但是我们更关注的是JDBC 3.0中引入的命名参数特性。
下面的程序演示了如何调用Oracle中的sysdate()函数。
这里我们创建了一个继承StoredProcedure的子类,虽然它没有输入参数,
但是我必须通过使用SqlOutParameter来声明一个日期类型的输出参数。
execute()方法将返回一个map,map中的每个entry是一个用参数名作key,
以输出参数为value的名值对。
import java.sql.T
import java.util.HashM
import java.util.I
import java.util.M
import javax.sql.DataS
import org.springframework.jdbc.core.SqlOutP
import org.springframework.jdbc.datasource.*;
import org.springframework.jdbc.object.StoredP
public class TestStoredProcedure {
public static void main(String[] args)
TestStoredProcedure t = new TestStoredProcedure();
System.out.println("Done!");
void test() {
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName("oracle.jdbc.OracleDriver");
ds.setUrl("jdbc:oracle:thin:@localhost:1521:mydb");
ds.setUsername("scott");
ds.setPassword("tiger");
MyStoredProcedure sproc = new MyStoredProcedure(ds);
Map results = sproc.execute();
printMap(results);
private class MyStoredProcedure extends StoredProcedure {
private static final String SQL = "sysdate";
public MyStoredProcedure(DataSource ds) {
setDataSource(ds);
setFunction(true);
setSql(SQL);
declareParameter(new SqlOutParameter("date", Types.DATE));
compile();
public Map execute() {
// the 'sysdate' sproc has no input parameters, so an empty Map is supplied...
return execute(new HashMap());
private static void printMap(Map results) {
for (Iterator it = results.entrySet().iterator(); it.hasNext(); ) {
System.out.println(it.next());
下面是StoredProcedure的另一个例子,它使用了两个Oracle游标类型的输出参数。
import oracle.jdbc.driver.OracleT
import org.springframework.jdbc.core.SqlOutP
import org.springframework.jdbc.object.StoredP
import javax.sql.DataS
import java.util.HashM
import java.util.M
public class TitlesAndGenresStoredProcedure extends StoredProcedure {
private static final String SPROC_NAME = "AllTitlesAndGenres";
public TitlesAndGenresStoredProcedure(DataSource dataSource) {
super(dataSource, SPROC_NAME);
declareParameter(new SqlOutParameter("titles", OracleTypes.CURSOR, new TitleMapper()));
declareParameter(new SqlOutParameter("genres", OracleTypes.CURSOR, new GenreMapper()));
compile();
public Map execute() {
// again, this sproc has no input parameters, so an empty Map is supplied...
return super.execute(new HashMap());
值得注意的是TitlesAndGenresStoredProcedure构造函数中
declareParameter(..)的SqlOutParameter参数,
该参数使用了RowMapper接口的实现。
这是一种非常方便而强大的重用方式。
下面我们来看一下RowMapper的两个具体实现。
首先是TitleMapper类,它简单的把ResultSet中的每一行映射为一个Title
Domain Object。
import com.foo.sprocs.domain.T
import org.springframework.jdbc.core.RowM
import java.sql.ResultS
import java.sql.SQLE
public final class TitleMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Title title = new Title();
title.setId(rs.getLong("id"));
title.setName(rs.getString("name"));
另一个是GenreMapper类,也是非常简单的将ResultSet中的每一行映射为一个Genre
Domain Object。
import org.springframework.jdbc.core.RowM
import java.sql.ResultS
import java.sql.SQLE
import com.foo.domain.G
public final class GenreMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
return new Genre(rs.getString("name"));
如果你需要给存储过程传输入参数(这些输入参数是在RDBMS存储过程中定义好了的),
则需要提供一个指定类型的execute(..)方法,
该方法将调用基类的protected execute(Map parameters)方法。
import oracle.jdbc.driver.OracleT
import org.springframework.jdbc.core.SqlOutP
import org.springframework.jdbc.object.StoredP
import javax.sql.DataS
import java.util.HashM
import java.util.M
public class TitlesAfterDateStoredProcedure extends StoredProcedure {
private static final String SPROC_NAME = "TitlesAfterDate";
private static final String CUTOFF_DATE_PARAM = "cutoffDate";
public TitlesAfterDateStoredProcedure(DataSource dataSource) {
super(dataSource, SPROC_NAME);
declaraParameter(new SqlParameter(CUTOFF_DATE_PARAM, Types.DATE);
declareParameter(new SqlOutParameter("titles", OracleTypes.CURSOR, new TitleMapper()));
compile();
public Map execute(Date cutoffDate) {
Map inputs = new HashMap();
inputs.put(CUTOFF_DATE_PARAM, cutoffDate);
return super.execute(inputs);
11.4.5. SqlFunction类
SqlFunction RDBMS操作类封装了一个SQL“函数”包装器(wrapper),
该包装器适用于查询并返回一个单行结果集。默认返回的是一个int值,
不过我们可以采用类似JdbcTemplate中的queryForXxx
做法自己实现来返回其它类型。SqlFunction优势在于我们不必创建
JdbcTemplate,这些它都在内部替我们做了。
该类的主要用途是调用SQL函数来返回一个单值的结果集,比如类似“select user()”、
“select sysdate from dual”的查询。如果需要调用更复杂的存储函数,
可以使用StoredProcedure或SqlCall。
SqlFunction是一个具体类,通常我们不需要它的子类。
其用法是创建该类的实例,然后声明SQL语句以及参数就可以调用相关的run方法去多次执行函数。
下面的例子用来返回指定表的记录行数:
public int countRows() {
SqlFunction sf = new SqlFunction(dataSource, "select count(*) from mytable");
sf.compile();
return sf.run();

我要回帖

更多关于 数据库封装 的文章

 

随机推荐