将sql查询出来的数据转化为对象
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import xml.dao.admin.AdminArea;
public class NativeSQLQuery extends HibernateDaoSupport {
/**
* 将数据库查询出的数据转化为AdminArea
* @param queryString 查询admin_area表数据的sql语句
* @param pojoClass
* @param jdbcTemplate
* @return
*/
public List<? extends AdminArea> findObjectBySql(String queryString,
Class<? extends AdminArea> pojoClass, JdbcTemplate jdbcTemplate) {
Session session = this.getSession();
/**
* 使用SQL构造查询对象,此SQL是可以被JDBC接受的SQL,如SELECT * from XXX_TABLE
*/
Query query = session.createSQLQuery(queryString);
/**
* 设置结果集转换器
*/
query.setResultTransformer(new SqlColumnToBean(pojoClass));
List list = query.list();
/**
* 关闭session
*/
session.close();
/**
* 返回查询结果
*/
return list;
}
}
import java.lang.reflect.Field;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.property.ChainedPropertyAccessor;
import org.hibernate.property.PropertyAccessor;
import org.hibernate.property.PropertyAccessorFactory;
import org.hibernate.property.Setter;
import org.hibernate.transform.ResultTransformer;
import xml.dao.admin.AdminArea;
public class SqlColumnToBean implements ResultTransformer {
private static final long serialVersionUID = 1L;
private final Class<? extends AdminArea> resultClass;
private Setter[] setters;
private PropertyAccessor propertyAccessor;
&
相关文档:
编码过程中遇到的SQL分页情况,总结:
从数据库表中第M条记录开始检索N条记录
MySQL:
先查询分页,然后排序:
select * from (select * from student limit 5,2) pageTable order by id desc ;
先排序,然后查询分页:select * from student order by id desc limit 5,2 ;
Oracle:
SELECT * fro ......
1、简单查询
求出在1988年以前被雇佣的销售人员
SELECT NAME
from SALESREPS
WHERE HIRE_DATE<'01-JAN-88'
列出其销售量低于销售目标的80%的销售点
SELECT CITY,SALES,TAGET
from SALESPEPS
WHERE SALES<0.8*TAGET ......
注:出处已不可考,不过,其中不少语句还是蛮精妙的。
Student(S#(学号),Sname(姓名),Sage(年龄),Ssex(性别)) 学生表
Course(C#(课程编号),Cname(课程名称),T#(老师编号)) 课程表
SC(S#(学号),C#(课程编号),score(分数)) 成绩表
Teacher(T#(老师编号),TnameSname(姓名)) 教师表
问题:
1、查询“001” ......
实例1:只返回单一记录集的存储过程。
银行存款表(bankMoney)的内容如下
Id
userID
Sex
Money
001
Zhangsan
男
30
002
Wangwu
男
50
003
Zhangsan
男
40
要求1:查询表bankMoney的内容的存储过程
create procedure sp_query_bankMoney
as
select * from bankMoney
go
exec sp_query_bankMoney
注 ......
问题:
我现在内容都调用出来了 就是唯一的一个问题 我要调当前用户ID 我用的PHPCMS {$r[userid]}这个变量 在SqlServer上调用不到
$sql="SELECT CustomerID, Carid, TotolPoints, TakePoints, LeavingPoints, CarType,Activation,Consumption
fro ......