动软生成的WCP DAO层模板(不使用接口)

时间:2024-04-18 21:59:14

本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正。

开发环境: Eclipse Version: Photon Milestone 6

WCP:http://www.wcpdoc.com/home/Pubindex.html

目录:

Hibernate自动生成(1)

Hibernate自动生成(2)

动软生成的WCP DAO层模板(不使用接口)

<#@ template language="c#" HostSpecific="True" #>
<#@ output extension= ".cs" #>
<#
TableHost host = (TableHost)(Host);
string s=host.GetModelClass(host.TableName);
string ClassName =s.Substring(,).ToUpper()+s.Substring().ToLower(); //根据表名首字母大写,其他小写
string EntityName=ClassName.ToLower(); // 小写
string sessionfactory="sessionFactorymssql"; //请检查此处的sessionFactory名字
string packagename="com.farm.member.domain.Member"; //请检查此处的领域模型domain的包名 example:com.farm.doc.domain.Doc
#>
package com.farm.<#= EntityName #>.Dao; import java.math.BigInteger;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional; import com.farm.core.sql.query.DBRule;
import com.farm.core.sql.query.DataQuery;
import com.farm.core.sql.result.DataResult;
import com.farm.core.sql.utils.HibernateSQLTools; import <#= packagename #>; //注意这里的包名 /**
* @author LuHui
* 本Dao类由动软生成
*/ @Repository
public class <#= ClassName #>Dao extends HibernateSQLTools<<#= ClassName #>> {
@Resource(name = "<#= sessionfactory #>")//此处的资源名称请核对
private SessionFactory sessionFactory; //增
public <#= ClassName #> insertEntity(<#= ClassName #> <#= EntityName #>) {
Session session = getSession();
session.save(<#= EntityName #>);
return <#= EntityName #>;
} //删
public void deleteEntity(<#= ClassName #> <#= EntityName #>) {
Session session = getSession();
session.delete(<#= EntityName #>);
} //改
public void editEntity(<#= ClassName #> <#= EntityName #>) {
Session session = getSession();
session.update(<#= EntityName #>);
} //查:返回一共几条记录,不带条件
public int getAllListNum() {
Session session = getSession();
SQLQuery sqlquery = session.createSQLQuery("select count(*) from <#= ClassName #>");
BigInteger num = (BigInteger) sqlquery.list().get();
return num.intValue();
} //查:根据主键id查询返回一个实体,注意:这里的id名字无所谓的,只是一个形参
//请注意这里的id的类型,必须是和你领域层模型的@id 类型一致
public <#= ClassName #> getEntity(int id) {
Session session = getSession();
return (<#= ClassName #>) session.get(<#= ClassName #>.class, id);
} //查:根据DataQuery查询
public DataResult runSqlQuery(DataQuery query) { try {
return query.search(getSession());
} catch (Exception e) {
return null;
}
} //下面是带条件的查询,返回数量,请自定义条件
/*
public Integer get<#= ClassName #>sNum() {
Session session = getSession();
SQLQuery sqlquery = session.createSQLQuery("select count(*) from <#= ClassName #> where STATE=1");
BigInteger num = (BigInteger) sqlquery.list().get(0);
return num.intValue();
}
*/ //----------以下几个根据DBRule实现增删改查--------------------------- //删:根据DBRules删除
public void deleteEntitys(List<DBRule> rules) { deleteSqlFromFunction(getSession(), rules);
} //查询:根据DBRules查询
public List<<#= ClassName #>> selectEntitys(List<DBRule> rules) { return selectSqlFromFunction(getSession(), rules);
} //更新:根据DBRules更新
public void updataEntitys(Map<String, Object> values, List<DBRule> rules) { updataSqlFromFunction(getSession(), values, rules);
} //查:返回一共几条记录,不带条件
public int countEntitys(List<DBRule> rules) { return countSqlFromFunction(getSession(), rules);
} //----------以上几个根据DBRule实现增删改查------------------------------------------------------- //---SessionFactory Getter Setter----
  protected SessionFactory getSessionFactory() {
return sessionFactory;
} public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
} // Current Session
public Session getSession() {
return sessionFactory.getCurrentSession();
} //获得类型
protected Class<<#= ClassName #>> getTypeClass() {
return <#= ClassName #>.class;
} }

生成的代码如下

package com.farm.member.Dao;

import java.math.BigInteger;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional; import com.farm.core.sql.query.DBRule;
import com.farm.core.sql.query.DataQuery;
import com.farm.core.sql.result.DataResult;
import com.farm.core.sql.utils.HibernateSQLTools; import com.farm.member.domain.Member; //注意这里的包名 /**
* @author LuHui
* 本Dao类由动软生成
*/ @Repository
public class MemberDao extends HibernateSQLTools<Member> {
@Resource(name = "sessionFactorymssql")//此处的资源名称请核对
private SessionFactory sessionFactory; //增
public Member insertEntity(Member member) {
Session session = getSession();
session.save(member);
return member;
} //删
public void deleteEntity(Member member) {
Session session = getSession();
session.delete(member);
} //改
public void editEntity(Member member) {
Session session = getSession();
session.update(member);
} //查:返回一共几条记录,不带条件
public int getAllListNum() {
Session session = getSession();
SQLQuery sqlquery = session.createSQLQuery("select count(*) from Member");
BigInteger num = (BigInteger) sqlquery.list().get(0);
return num.intValue();
} //查:根据主键id查询返回一个实体,注意:这里的id名字无所谓的,只是一个形参
//请注意这里的id的类型,必须是和你领域层模型的@id 类型一致
public Member getEntity(int id) {
Session session = getSession();
return (Member) session.get(Member.class, id);
} //查:根据DataQuery查询
public DataResult runSqlQuery(DataQuery query) { try {
return query.search(getSession());
} catch (Exception e) {
return null;
}
} //下面是带条件的查询,返回数量,请自定义条件
/*
public Integer getMembersNum() {
Session session = getSession();
SQLQuery sqlquery = session.createSQLQuery("select count(*) from Member where STATE=1");
BigInteger num = (BigInteger) sqlquery.list().get(0);
return num.intValue();
}
*/ //----------以下几个根据DBRule实现增删改查--------------------------- //删:根据DBRules删除
public void deleteEntitys(List<DBRule> rules) { deleteSqlFromFunction(getSession(), rules);
} //查询:根据DBRules查询
public List<Member> selectEntitys(List<DBRule> rules) { return selectSqlFromFunction(getSession(), rules);
} //更新:根据DBRules更新
public void updataEntitys(Map<String, Object> values, List<DBRule> rules) { updataSqlFromFunction(getSession(), values, rules);
} //查:返回一共几条记录,不带条件
public int countEntitys(List<DBRule> rules) { return countSqlFromFunction(getSession(), rules);
} //----------以上几个根据DBRule实现增删改查------------------------------------------------------- //---SessionFactory Getter Setter----
protected SessionFactory getSessionFactory() {
return sessionFactory;
} public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
} // Current Session
public Session getSession() {
return sessionFactory.getCurrentSession();
} //获得类型
protected Class<Member> getTypeClass() {
return Member.class;
} }