目录
- User的登陆和注册和树形菜单
- 实体类
- User
- User.hbm.xml
- TreeNode
- TreeNobe.hbm.xml
- Userdao
- UserBiz
- UserBizimpl
- UserAcrion
- 配置spring跟struts
- Spring-user.xml
- Struts-user.xml
- Article的增删改查
- 实体类
- Article
- Article.hbm.xml
- ArticleDao
- ArticleBiz
- ArticleBizImpl
- ArticleAction
- 配置spring和struts
- spring-article.xml
- struts-article.xml
- 配置主要文件
- spring-context.xml
- spring-hibernate.xml
User的登陆和注册和树形菜单
实体类
User
public class User extends BaseEntity {private static final long serialVersionUID = 1L;private String uname;private String upwd;public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getUpwd() {return upwd;}public void setUpwd(String upwd) {this.upwd = upwd;}@Overridepublic String toString() {return "User [uname=" + uname + ", upwd=" + upwd + "]";}
}
User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class table="t_vue_user" name="com.user.entity.User"><id name="uname" type="java.lang.String" column="uname"></id> <property name="upwd" type="java.lang.String" column="pwd"></property></class>
</hibernate-mapping>
TreeNode
public class TreeNode {private Integer nodeId;private String nodeName;private Integer treeNodeType;private Integer position;private String url;private TreeNode parent;private Set<TreeNode> children = new HashSet<TreeNode>();private Integer initChildren = 0;public Integer getNodeId() {return nodeId;}public void setNodeId(Integer nodeId) {this.nodeId = nodeId;}public String getNodeName() {return nodeName;}public void setNodeName(String nodeName) {this.nodeName = nodeName;}public Integer getTreeNodeType() {return treeNodeType;}public void setTreeNodeType(Integer treeNodeType) {this.treeNodeType = treeNodeType;}public Integer getPosition() {return position;}public void setPosition(Integer position) {this.position = position;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public TreeNode getParent() {return parent;}public void setParent(TreeNode parent) {this.parent = parent;}public Set<TreeNode> getChildren() {return children;}public void setChildren(Set<TreeNode> children) {this.children = children;}public Integer getInitChildren() {return initChildren;}public void setInitChildren(Integer initChildren) {this.initChildren = initChildren;}@Overridepublic String toString() {return "TreeNode [nodeId=" + nodeId + ", nodeName=" + nodeName + ", treeNodeType=" + treeNodeType+ ", position=" + position + ", url=" + url + ", parent=" + parent + ", children=" + children+ ", initChildren=" + initChildren + "]";}
}
TreeNobe.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class table="t_vue_tree_node" name="com.node.entity.TreeNode"><id name="treenodeid" type="java.lang.Integer" column="tree_node_id"><generator class="increment"></generator></id><property name="treenodename" type="java.lang.String" column="tree_node_name"></property><property name="treenodetype" type="java.lang.Integer" column="tree_node_type"></property><property name="parentnodeid" type="java.lang.Integer" column="parent_node_id"></property><property name="url" type="java.lang.String" column="url"></property><property name="position" type="java.lang.Integer" column="position"></property><property name="icon" type="java.lang.String" column="icon"></property></class>
</hibernate-mapping>
Userdao
public class UserDao extends BaseDao {
public List<User> list(User user){return this.getHibernateTemplate().execute(new HibernateCallback<List<User>>() {@Overridepublic List<User> doInHibernate(Session arg0) throws HibernateException {Query query = arg0.createQuery("from User");String uname = user.getUname();String upwd = user.getUpwd();if(StringUtils.isNotBlank(uname)&& StringUtils.isNotBlank(upwd)) {query = arg0.createQuery("from User where uname = :uname and upwd = :upwd ");query.setParameter("uname", uname);query.setParameter("upwd", upwd);}return query.list();}});}
public int add(User user) {Serializable a = this.getHibernateTemplate().save(user);int n = 0;if(StringUtils.isNotBlank(a+"")) {n=1;}return n;
}public List<TreeNode> listNode(){return this.getHibernateTemplate().execute(new HibernateCallback<List<TreeNode>>() {@Overridepublic List<TreeNode> doInHibernate(Session session) throws HibernateException {return session.createQuery("from TreeNode").list();}});
}}
UserBiz
public interface UserBiz {public List<User> list(User user);public int add(User user);public List<TreeNode> listNode();
}
UserBizimpl
public class UserBizImpl implements UserBiz {private UserDao userdao;public UserDao getUserdao() {return userdao;}public void setUserdao(UserDao userdao) {this.userdao = userdao;}@Overridepublic List<User> list(User user) {return userdao.list(user);}@Overridepublic int add(User user) {return userdao.add(user);}@Overridepublic List<TreeNode> listNode() {return userdao.listNode();}}
UserAcrion
public class UserAction extends BaseAction implements ModelDriven<User> {private static final long serialVersionUID = 1L;private User user =new User();private UserBiz userBiz;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public UserBiz getUserBiz() {return userBiz;}public void setUserBiz(UserBiz userBiz) {this.userBiz = userBiz;}public String dologin() {List<User> list = userBiz.list(user);if(list.size()>0) {System.out.println("登录成功");}else {System.out.println("登录失败,用户名或密码错误");}return null;}
public String addUser() {int n = userBiz.add(user);if(n>0) {System.out.println("注册成功");}else {System.out.println("注册失败");}return null;}
public String listNode() {List<TreeNode> listNode = userBiz.listNode();for (TreeNode treeNode : listNode) {System.out.println(treeNode);}return null;
}@Overridepublic User getModel() {return null;}}
配置spring跟struts
Spring-user.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"><bean id="userDao" class="com.user.dao.UserDao" parent="baseDao" ></bean><bean id="userBiz" class="com.user.biz.UserBizImpl" parent="baseBiz" ><property name="userDao" ref="userDao"></property></bean><bean id="userAction" class="com.user.web.UserAction" parent="baseAction"><property name="userBiz" ref="userBiz"></property></bean>
</beans>
Struts-user.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN""http://struts.apache.org/dtds/struts-2.5.dtd">
<struts><package name="user" extends="base" namespace="/user"><action name="/user_*" class="userAction" method="{1}"></action></package>
</struts>
Article的增删改查
实体类
Article
public class Article extends BaseEntity {private static final long serialVersionUID = 1L;private int id;private String title;private String body;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}@Overridepublic String toString() {return "Article [id=" + id + ", title=" + title + ", body=" + body + "]";}
}
Article.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class table="t_vue_articles" name="com.article.entity.Article"><id name="id" type="java.lang.Integer" column="id"><generator class="increment"></generator></id><property name="title" type="java.lang.String" column="title"></property><property name="body" type="java.lang.String" column="body"></property></class>
</hibernate-mapping>
ArticleDao
public class ArticleDao extends BaseDao {public List<Article> list(){return this.getHibernateTemplate().execute(new HibernateCallback<List<Article>>(){@Overridepublic List<Articles> doInHibernate(Session session) throws HibernateException {return session.createQuery("from Article").list();}}}public int add(Article article) {Serializable a = this.getHibernateTemplate().save(article);int n = 0;System.out.println(a);if(StringUtils.isNotBlank(a+"")) {n = 1;}return n;}public int edit(Article article) {this.getHibernateTemplate().update(article);return 1;}public int delete(Article article) {this.getHibernateTemplate().delete(article);return 1;}
}
ArticleBiz
public interface ArticleBiz {public List<Article> list();public int add(Article article);public int edit(Article article);public int delete(Article article);
}
ArticleBizImpl
public class ArticleBizImpl implements ArticleBiz {private ArticleDao articleDao;public ArticleDao getArticleDao() {return articleDao;}public void setArticleDao(ArticleDao articleDao) {this.articleDao = articleDao;}@Overridepublic List<Article> list() {return articleDao.list();}@Overridepublic int add(Article article) {return articleDao.add(article);}@Overridepublic int edit(Article article) {return articleDao.edit(article);}@Overridepublic int delete(Article article) {return articleDao.delete(article);}
}
ArticleAction
public class ArticleDao extends BaseDao {public List<Article> list(){return this.getHibernateTemplate().execute(new HibernateCallback<List<Article>>(){@Overridepublic List<Articles> doInHibernate(Session session) throws HibernateException {return session.createQuery("from Article").list();}}}public int add(Article article) {Serializable a = this.getHibernateTemplate().save(article);int n = 0;System.out.println(a);if(StringUtils.isNotBlank(a+"")) {n = 1;}return n;}public int edit(Article article) {this.getHibernateTemplate().update(article);return 1;}public int delete(Article article) {this.getHibernateTemplate().delete(article);return 1;}
}
配置spring和struts
spring-article.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"><bean id="articleDao" class="com.article.dao.ArticleDao" parent="baseDao"></bean><bean id="articleBiz" class="com.article.biz.ArticleBizImpl" parent="baseBiz"><property name="articleDao" ref="articleDao"></property></bean><bean id="articleAction" class="com.article.web.ArticleAction" parent="baseAction"><property name="articleBiz" ref="articleBiz"></property></bean></beans>
struts-article.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN""http://struts.apache.org/dtds/struts-2.5.dtd">
<struts><package name="articles" extends="base" namespace="/articles"><action name="/articles_*" class="articlesAction" method="{1}"></action></package>
</struts>
配置主要文件
spring-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><import resource="spring-hibernate.xml"/><import resource="spring-book.xml"/><import resource="spring-user.xml"/><import resource="spring-article.xml"/>
</beans>
spring-hibernate.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"><!-- 2、配置数据库连接池C3P0 --><!-- 注册数据库连接文件db.properties --><context:property-placeholder location="classpath:db.properties" /><!-- 配置c3p0连接池 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="user" value="${db.username}"></property><property name="password" value="${db.password}"></property><property name="driverClass" value="${db.driverClass}"></property><property name="jdbcUrl" value="${db.jdbcUrl}"></property><!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 --><property name="initialPoolSize" value="${db.initialPoolSize}"></property><!--连接池中保留的最大连接数。Default: 15 --><property name="maxPoolSize" value="${db.maxPoolSize}"></property><!--连接池中保留的最小连接数。 --><property name="minPoolSize" value="${db.minPoolSize}" /><!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --><property name="maxIdleTime" value="${db.maxIdleTime}" /><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --><property name="acquireIncrement" value="${db.acquireIncrement}" /><!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个connection而不是整个连接池。 所以设置这个参数需要考虑到多方面的因素。如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 --><property name="maxStatements" value="${db.maxStatements}" /><!--每60秒检查所有连接池中的空闲连接。Default: 0 --><property name="idleConnectionTestPeriod" value="${db.idleConnectionTestPeriod}" /><!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --><property name="acquireRetryAttempts" value="${db.acquireRetryAttempts}" /><!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。 如果设为true,那么在尝试 获取连接失败后该数据源将申明已断开并永久关闭。Default: false --><property name="breakAfterAcquireFailure" value="${db.breakAfterAcquireFailure}" /><!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议使用idleConnectionTestPeriod 或automaticTestTable 等方法来提升连接测试的性能。Default: false --><property name="testConnectionOnCheckout" value="${db.breakAfterAcquireFailure}" /></bean><!-- 3、配置sessionfactory相关信息 --><bean id="sessionFactory"class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"><!-- 数据源 --><property name="dataSource"><ref bean="dataSource" /></property><!-- hibernate相关属性 --><property name="hibernateProperties"><props><prop key="dialect">org.hibernate.dialect.MySQLDialect</prop><!--spring与Hibernate集成无法显示sql语句问题,请见集成后hibernate无法显示sql语句.txt --><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><!-- 实体映射文件 --><property name="mappingResources"><list><value>com/book/entity/Book.hbm.xml</value><value>com/user/entity/User.hbm.xml</value><value>com/article/entity/Article.hbm.xml</value></list></property></bean><!-- 4、配置事务 --><!--声明式事务配置开始 --><!-- 静态代理:一个代理对象->一个目标对象BookProxy(BookBizImpl+myMethodBeforeAdvice)->bookBizOrderProxy(OrderBizImpl+myMethodBeforeAdvice2)-> OrderBiz动态代理:一个代理对象->多个目标对象--><!--1) 开启自动代理 --><aop:aspectj-autoproxy /><!--2) 事务管理器 --><!--下面定义了增删改查事物规则,意味着只有符合下面命名规则的方法,才会获取到session,以及提交事务 --><bean id="transactionManager"class="org.springframework.orm.hibernate5.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!--3) 定义事务特性 --><!-- 下面定义了增删改查事务规则,以为这只有符合下面命名规则的方法,才会获取到session,以及提交事务 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="add*" propagation="REQUIRED" /><tx:method name="save*" propagation="REQUIRED" /><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="edit*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="del*" propagation="REQUIRED" /><tx:method name="remove*" propagation="REQUIRED" /><tx:method name="load*" propagation="REQUIRED" read-only="true" /><tx:method name="list*" propagation="REQUIRED" read-only="true" /><tx:method name="select*" propagation="REQUIRED" read-only="true" /><tx:method name="query*" propagation="REQUIRED" read-only="true" /><tx:method name="do*" propagation="REQUIRED" /></tx:attributes></tx:advice><!--4) 定义切入点 --><aop:config><!-- pointcut属性用来定义一个切入点,分成四个部分理解 [* ][*..][*Biz][.*(..)] --><!-- A: 返回类型,*表示返回类型不限 --><!-- B: 包名,*..表示包名不限 --><!-- C: 类或接口名,*Biz表示类或接口必须以Biz结尾 --><!-- D: 方法名和参数,*(..)表示方法名不限,参数类型和个数不限 --><!--配置声明式事务 --><aop:advisor advice-ref="txAdvice" pointcut="execution(* *..*Biz.*(..))" /><!-- 为什么一定要切在biz对应的接口上 --></aop:config><!-- 声明式事务配置结束 --><!-- 5、配置HibernateTemplate 相当于session --><bean class="org.springframework.orm.hibernate5.HibernateTemplate" id="hibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 6、分模块开发(只配置base模块) --><bean class="com.base.entity.BaseEntity" abstract="true" id="baseEntity"></bean><bean class="com.base.dao.BaseDao" abstract="true" id="baseDao" ><property name="hibernateTemplate" ref="hibernateTemplate"></property></bean><bean class="com.base.biz.BaseBiz" abstract="true" id="baseBiz"></bean><bean class="com.base.web.BaseAction" abstract="true" id="baseAction"></bean>
</beans>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!