- 浏览: 234039 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 11935使用jUnit4的操作步骤及 ... -
Struts2与JFreeChart整合
2012-05-28 11:15 1947JFreechart是JAVA平台上的一个开放的图表绘制类库。 ... -
mysql 中文乱码解决办法总结
2012-04-15 12:13 1350mysql 中文乱码解决办法 ... -
jQuery获取及设置单选框,多选框,文本框内容
2012-04-08 16:56 8761在工作中,text,radio,checkbox,select ... -
java那些事
2012-03-12 19:40 1023JAVA编程中尽量要做到的一些地方 1.尽量使用Stri ... -
字符串截取方法总结
2012-03-11 21:57 1301字符串截取 今在jsp页面中截取一段字符显示.项目用的stru ... -
批量处理
2012-03-06 18:16 1247jquery中出现#('#xxxx') is null 的原因 ... -
CKEditor整合CKFinder实现上传
2011-10-31 20:43 6053目前在做的一个项目中要用到文本编辑器,以前用的比较多的是FCk ... -
keySet()与entrySet()遍历的性能比较
2011-09-08 19:56 3571在做项目的时候有邮件发送方面的业务.对邮件的收发的业务不是很清 ... -
JavaMail发送邮件
2011-08-23 20:55 1154/** package cn.tq.javamail; ... -
Vector和ArrayList的区别
2011-08-23 20:46 8691.Vector和ArrayList在使用上非常相似,都可用来 ... -
SVN 签出源码 Struts Spring Hibernate
2011-05-09 15:59 912很多优秀的开源项目已经提供SVN源码签出了,无论是解疑还是学习 ... -
java知识点
2011-03-13 23:56 1022线程指程序执行过程中,能够执行程序代码的一个执行单位,每个程序 ... -
build.xml
2011-02-19 18:12 1086使用Ant+xdoclet来生成Hibernate的配置文件和 ... -
常用程序类(密码加密和字符转码)
2011-01-23 00:31 1212import java.io.UnsupportedEncod ... -
根据Id查询
2011-01-21 11:52 0package com.huawei.action; imp ... -
Tomcat配置JNDI数据源
2011-01-09 14:55 1346Tomcat使用JNDI连接数据库,这里就使用Mysql为例: ...
相关推荐
在Java编程语言中,"JAP分页"通常指的是Java应用程序中的分页查询技术,用于在大量数据中实现高效的检索和展示。这个压缩包文件名"JAVA JAP分页写法大全"暗示了它可能包含各种不同的分页实现示例,这对于初学者来说...
### jap调用应用程序 #### 一、引言 在现代软件开发中,特别是在Web应用领域,JSP(Java Server Pages)技术被广泛应用于构建动态网页。然而,在某些情况下,Java程序可能需要与其他非Java应用程序进行交互,以...
它的属性通过公共方法暴露,这些方法遵循JavaBean的约定,如getter和setter方法,使得其他组件可以访问和修改内部状态。 JavaBean有两种主要类型:具有用户界面(UI)的JavaBean,以及没有UI但专注于处理事务(如...
- **建立JDBC连接**:使用`DriverManager.getConnection(url, username, password)`方法。 - **发送SQL语句**:通过`Statement`或`PreparedStatement`对象。 - **获取执行结果**:使用`ResultSet`对象来读取查询结果...
顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 ...98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档
系统提供的论文资料可能涵盖了系统的设计理念、架构、实现细节以及使用方法,这对于学习和理解系统的工作原理非常有帮助。此外,数据库文件可能包含了初始化脚本,用于在首次运行时设置好必要的表结构和初始数据。 ...
这可以通过在`CLASSPATH`变量的值中加入`${JAP_PATH}/javax.persistence_2.0.0.jar`来实现。 完成这些修改后,保存并关闭`startWebLogic.sh`文件。为了确认更改是否生效,可以使用`nohup`命令非交互式地启动...
下面是实现方法的详细介绍: 首先,我们需要在 HTML 文件中添加一个输入框和一个选择框,输入框用于输入值,选择框用于显示选择结果。然后,我们需要使用 JavaScript 实现选择框的弹出效果。 在 CSS 文件中,我们...
6. **源码分析**:压缩包中的"wap实例jsp"很可能包含了上述概念的实际代码示例,可以用于学习和理解WML与jsp的集成方法。 通过深入研究这个实例,开发者可以了解如何在早期的移动环境下构建功能丰富的Web应用,这对...
它为对象关系映射(ORM)提供了一种标准方法,允许开发人员将 Java 对象映射到关系型数据库中的表。JPA 的出现极大地简化了数据持久化逻辑的开发过程,并且提供了高度可移植性和灵活性。 #### 二、JPA环境支持解析 ...
在JAVA中,我们可以使用`Part`接口来处理HTTP请求中的多部分数据,它提供了读取文件内容、获取文件名和类型等方法。例如: ```java request.getParts().stream() .filter(part -> "upfile".equals(part.getName())...
Apache Commons-IO是另一个非常实用的Java库,它提供了大量与I/O相关的辅助方法。在图片下载场景中, Commons-IO可以帮助我们读取服务器上的文件,然后通过HTTP响应将文件内容流式传输到客户端,完成图片的下载。 ...
SSJ.rar_Jap_spring_ssj 是一个与Java应用程序开发相关的压缩包,它结合了Struts、Spring和JAP(可能是Java应用平台)这三种技术。这个项目可能是一个示例或者教程,展示了如何将这三个框架集成在一起以实现特定的...
`dataSource()`方法创建了一个DBCP数据源,`entityManagerFactory()`方法则创建了`EntityManagerFactory`,并指定了实体扫描的包和持久化提供者。 使用DBCP作为数据源是因为其简单易用,且具有良好的性能。它支持...
**JPA注解详解** ...通过这些注解,开发者可以灵活地控制JPA实体的生命周期、持久化行为以及与数据库的交互,从而实现高效且可移植的对象关系映射。了解和熟练掌握这些注解是使用JPA进行ORM开发的关键。
JPA的主要目标是简化持久化逻辑,减少开发工作量,并提供了一种对象关系映射(Object-Relational Mapping, ORM)的方法。 #### 二、JPA的关键特性 - **简化EJB持久性**: JPA简化了EJB持久性的实现过程,不再需要繁琐...
通过定义私有属性和公共的getter与setter方法,实现了数据的封装和访问控制。 2. **JSP(JavaServer Pages)**:JSP是Java Web开发中的视图层技术,用于生成动态网页内容。在本系统中,JSP页面负责展示用户界面,如...
这些JavaBeans可以通过属性、构造函数和方法暴露其功能,便于在JSP和Struts之间传递数据。 SQL Server 2005是微软公司的一款关系型数据库管理系统,用于存储和管理投票系统中的数据。在投票系统中,数据库可能包含...
- 创建Repository接口继承自Spring Data JPA提供的`JpaRepository`或`CrudRepository`,Spring会自动实现接口中的方法。 - 在Controller中注入Repository,通过其方法进行数据操作。 通过以上步骤,我们可以构建...