- 浏览: 229908 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (105)
- JFreeChart (3)
- DbUtil (1)
- Struts2 (17)
- Ruby or Rails (4)
- Eclipse插件 (2)
- 英文一角 (2)
- IT生活 (7)
- 社会盘点 (0)
- Maven3 (3)
- Java (17)
- Jquery (12)
- Hibernate (8)
- Ajax (4)
- Oracle (2)
- SSH2 OA项目 (4)
- jsptags分页插件 (1)
- Javascript (4)
- Ubuntu (4)
- java Utils (1)
- JPA (2)
- sitemesh (1)
- Css (1)
- spring (3)
- 杂记 (5)
- Hibernate3连接池的配置 (0)
最新评论
-
天使建站:
http://www.aijquery.cn/Html/bia ...
jQuery获取及设置单选框,多选框,文本框内容 -
zjxkeven:
不错 不知道好不好用
java服务器状态监控实现 -
根号九加一:
能否发一份给我呢 邮箱是 zmh958@qq.com 谢谢! ...
SSH2项目搭建 -
23843492:
能否发一份给我:23843492@qq.com
SSH2项目搭建 -
jiangdaxian2003:
LZ求代码,谢谢,15914380151@139.com
SSH2项目搭建
package cn.itcast.service.base;
import java.io.Serializable;
import java.util.LinkedHashMap;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Transactional;
import cn.itcast.bean.QueryResult;
import cn.itcast.utils.GenericsUtils;
/*
* 在抽象类中实现该基本功能。
*/
@SuppressWarnings("unchecked")
@Transactional
public abstract class DaoSupport<T> implements DAO<T> {
//反射得到实体
private Class<T> entityClass = GenericsUtils.getSuperClassGenricType(this.getClass());
@PersistenceContext protected EntityManager em;
public void Save(T entity) {
// TODO Auto-generated method stub
em.persist(entity);
}
public void delete(java.io.Serializable... ids) {
// TODO Auto-generated method stub
for (Serializable serializable : ids) {
em.remove(em.getReference(this.entityClass, serializable));
}
}
public T find(java.io.Serializable entityId) {
// TODO Auto-generated method stub
return em.find(this.entityClass, entityId);
}
public void update(T entity) {
// TODO Auto-generated method stub
em.merge(entity);
}
public QueryResult<T> getScrollData(int startIndex, int maxResult, String whereJPQL, Object[] params, LinkedHashMap<String, String> orderby) {
QueryResult<T> qr = new QueryResult<T>();
String entityName= getEntityName(this.entityClass);
System.out.println(entityName);
// 一些细节问题真的很重要........
// 这个地方搞的头都大了,就是少了一个空格的问题
String where = whereJPQL !=null && !"".equals(whereJPQL.trim()) ? "where "+ whereJPQL : "";
Query query = em.createQuery("select o from "+ entityName+ " o "+ where + buildOrderBy(orderby));
setParameters(query, params);
////兩參熟都不為-1情況才分页
if(startIndex!=-1 && maxResult!=-1){
//设置查询记录的起始位置和查询的最大记录数
query.setFirstResult(startIndex).setMaxResults(maxResult);
}
//设置查询的记录
qr.setResultlist(query.getResultList());
//**達到總記錄數**
query = em.createQuery("select count(o) from "+ entityName+" o "+where );
//這個地方出錯了......
setParameters(query, params);
//设置查询记录总数
qr.setTotalrecord((Long)query.getSingleResult());
//返回查询记录结果
return qr;
}
public QueryResult<T> getScrollData(){
return getScrollData(-1, -1, null, null, null);
}
public QueryResult<T> getScrollData(int startIndex,int maxResult,String whereJPQL, Object[] params){
return getScrollData(startIndex, maxResult, whereJPQL, params, null);
}
public QueryResult<T> getScrollData(int startIndex,int maxResult,LinkedHashMap<String, String>orderby){
return getScrollData(startIndex, maxResult, null, null, orderby);
}
public QueryResult<T> getScrollData(int startIndex,int maxResult){
/*QueryResult<T> qr = new QueryResult<T>();
String entityName = getEntityName(this.entityClass);
Query query = em.createQuery("select o from "+ entityName + " o" );
query.setFirstResult(startIndex).setMaxResults(maxResult);
qr.setResultlist(query.getResultList());
query = em.createQuery("select count(o) from "+ entityName+" o ");
qr.setTotalrecord((Long)query.getSingleResult());
return qr;*/
return getScrollData(startIndex, maxResult);
}
/*
* 为Query对象设置查询參數
* @params query 查詢對象
* @param params 查詢參數
*/
private static void setParameters(Query query, Object[] params) {
// TODO Auto-generated method stub
if(params !=null){
for (int i = 0; i < params.length; i++) {
query.setParameter(i+1, params[i]);
}
}
}
//構造排序方法
private static String buildOrderBy(LinkedHashMap<String, String> orderby) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
if(orderby !=null && orderby.size()>0){
sb.append(" order by ");
for (String key : orderby.keySet()) {
sb.append("o.").append(key).append(" ").append(orderby.get(key)).append(",");
}
sb.deleteCharAt(sb.length()-1);
}
return sb.toString();
}
/*
* 获得实体名称
*/
//在方法上聲明環形
private static <E> String getEntityName(Class<E> entityClass){
String entityname = entityClass.getSimpleName();
//获得注解Entity的name的实体名称
Entity entity = entityClass.getAnnotation(Entity.class);
if(entity.name()!=null && !"".equals(entity.name())){
entityname = entity .name();
}
return entityname;
}
}
import java.io.Serializable;
import java.util.LinkedHashMap;
import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Transactional;
import cn.itcast.bean.QueryResult;
import cn.itcast.utils.GenericsUtils;
/*
* 在抽象类中实现该基本功能。
*/
@SuppressWarnings("unchecked")
@Transactional
public abstract class DaoSupport<T> implements DAO<T> {
//反射得到实体
private Class<T> entityClass = GenericsUtils.getSuperClassGenricType(this.getClass());
@PersistenceContext protected EntityManager em;
public void Save(T entity) {
// TODO Auto-generated method stub
em.persist(entity);
}
public void delete(java.io.Serializable... ids) {
// TODO Auto-generated method stub
for (Serializable serializable : ids) {
em.remove(em.getReference(this.entityClass, serializable));
}
}
public T find(java.io.Serializable entityId) {
// TODO Auto-generated method stub
return em.find(this.entityClass, entityId);
}
public void update(T entity) {
// TODO Auto-generated method stub
em.merge(entity);
}
public QueryResult<T> getScrollData(int startIndex, int maxResult, String whereJPQL, Object[] params, LinkedHashMap<String, String> orderby) {
QueryResult<T> qr = new QueryResult<T>();
String entityName= getEntityName(this.entityClass);
System.out.println(entityName);
// 一些细节问题真的很重要........
// 这个地方搞的头都大了,就是少了一个空格的问题
String where = whereJPQL !=null && !"".equals(whereJPQL.trim()) ? "where "+ whereJPQL : "";
Query query = em.createQuery("select o from "+ entityName+ " o "+ where + buildOrderBy(orderby));
setParameters(query, params);
////兩參熟都不為-1情況才分页
if(startIndex!=-1 && maxResult!=-1){
//设置查询记录的起始位置和查询的最大记录数
query.setFirstResult(startIndex).setMaxResults(maxResult);
}
//设置查询的记录
qr.setResultlist(query.getResultList());
//**達到總記錄數**
query = em.createQuery("select count(o) from "+ entityName+" o "+where );
//這個地方出錯了......
setParameters(query, params);
//设置查询记录总数
qr.setTotalrecord((Long)query.getSingleResult());
//返回查询记录结果
return qr;
}
public QueryResult<T> getScrollData(){
return getScrollData(-1, -1, null, null, null);
}
public QueryResult<T> getScrollData(int startIndex,int maxResult,String whereJPQL, Object[] params){
return getScrollData(startIndex, maxResult, whereJPQL, params, null);
}
public QueryResult<T> getScrollData(int startIndex,int maxResult,LinkedHashMap<String, String>orderby){
return getScrollData(startIndex, maxResult, null, null, orderby);
}
public QueryResult<T> getScrollData(int startIndex,int maxResult){
/*QueryResult<T> qr = new QueryResult<T>();
String entityName = getEntityName(this.entityClass);
Query query = em.createQuery("select o from "+ entityName + " o" );
query.setFirstResult(startIndex).setMaxResults(maxResult);
qr.setResultlist(query.getResultList());
query = em.createQuery("select count(o) from "+ entityName+" o ");
qr.setTotalrecord((Long)query.getSingleResult());
return qr;*/
return getScrollData(startIndex, maxResult);
}
/*
* 为Query对象设置查询參數
* @params query 查詢對象
* @param params 查詢參數
*/
private static void setParameters(Query query, Object[] params) {
// TODO Auto-generated method stub
if(params !=null){
for (int i = 0; i < params.length; i++) {
query.setParameter(i+1, params[i]);
}
}
}
//構造排序方法
private static String buildOrderBy(LinkedHashMap<String, String> orderby) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
if(orderby !=null && orderby.size()>0){
sb.append(" order by ");
for (String key : orderby.keySet()) {
sb.append("o.").append(key).append(" ").append(orderby.get(key)).append(",");
}
sb.deleteCharAt(sb.length()-1);
}
return sb.toString();
}
/*
* 获得实体名称
*/
//在方法上聲明環形
private static <E> String getEntityName(Class<E> entityClass){
String entityname = entityClass.getSimpleName();
//获得注解Entity的name的实体名称
Entity entity = entityClass.getAnnotation(Entity.class);
if(entity.name()!=null && !"".equals(entity.name())){
entityname = entity .name();
}
return entityname;
}
}
发表评论
-
JUnit4操作步骤及注意事项
2012-06-29 15:20 11839使用jUnit4的操作步骤及 ... -
Struts2与JFreeChart整合
2012-05-28 11:15 1845JFreechart是JAVA平台上的一个开放的图表绘制类库。 ... -
mysql 中文乱码解决办法总结
2012-04-15 12:13 1277mysql 中文乱码解决办法 ... -
jQuery获取及设置单选框,多选框,文本框内容
2012-04-08 16:56 8677在工作中,text,radio,checkbox,select ... -
java那些事
2012-03-12 19:40 950JAVA编程中尽量要做到的一些地方 1.尽量使用Stri ... -
字符串截取方法总结
2012-03-11 21:57 1250字符串截取 今在jsp页面中截取一段字符显示.项目用的stru ... -
批量处理
2012-03-06 18:16 1189jquery中出现#('#xxxx') is null 的原因 ... -
CKEditor整合CKFinder实现上传
2011-10-31 20:43 6019目前在做的一个项目中要用到文本编辑器,以前用的比较多的是FCk ... -
keySet()与entrySet()遍历的性能比较
2011-09-08 19:56 3525在做项目的时候有邮件发送方面的业务.对邮件的收发的业务不是很清 ... -
JavaMail发送邮件
2011-08-23 20:55 1098/** package cn.tq.javamail; ... -
Vector和ArrayList的区别
2011-08-23 20:46 8231.Vector和ArrayList在使用上非常相似,都可用来 ... -
SVN 签出源码 Struts Spring Hibernate
2011-05-09 15:59 892很多优秀的开源项目已经提供SVN源码签出了,无论是解疑还是学习 ... -
java知识点
2011-03-13 23:56 993线程指程序执行过程中,能够执行程序代码的一个执行单位,每个程序 ... -
build.xml
2011-02-19 18:12 1052使用Ant+xdoclet来生成Hibernate的配置文件和 ... -
常用程序类(密码加密和字符转码)
2011-01-23 00:31 1185import java.io.UnsupportedEncod ... -
根据Id查询
2011-01-21 11:52 0package com.huawei.action; imp ... -
Tomcat配置JNDI数据源
2011-01-09 14:55 1314Tomcat使用JNDI连接数据库,这里就使用Mysql为例: ...
相关推荐
jap页面jap页面jap页面jap页面jap页面jap页面jap页面jap页面jap页面jap页面
之前版本是:3.3.1GA+hibernate3 最新版:jpa+hibernate4
JAP 简介 入门知识
网络在线考试jap+struts网络在线考试jap+struts网络在线考试jap+struts网络在线考试jap+struts网络在线考试jap+struts网络在线考试jap+struts网络在线考试jap+struts网络在线考试jap+struts
jap网络通讯录addressBook
Google Android JAP.doc
java jap API 关于jap的详细属性介绍。
基于JSP的网上考试系统设计与实现带数据库。
java 动态菜单 菜单 java 动态菜单 jap vs html
jap调用应用程序,如一些Dos命令,非java语言编写的应用程序等!!
JAP2.0 WebLogic10.3.3不兼容的解决方法
struts 2.1.8 spring 2.5 jap ext 整合 例子 struts 2.1.8 spring 2.5 jap ext 整合 例子
顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 ...98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档
里面有多种分页写法代码,还有个群发邮件代码,适合初学者!!
采用struts + spring + jap 实现得简单功能
jap小资料基本的基础的
很适合初学者。更适合有servlet基础的人看。
jsp的PageBean分装,内有写好的page方法,传入参数即可方法基于hibernate和struts
jsp+Ajax实现分页效果 简单易懂
jsp网上课程设计,需求比较详细,其他的东西自己看了,需要的话就下