SSH的增删改查

目录

  • 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 {/*** 登录方法* @param user* @return*/
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();}});}/*** 注册用户方法* @param user* @return*/
public int add(User user) {Serializable a = this.getHibernateTemplate().save(user);int n = 0;if(StringUtils.isNotBlank(a+"")) {n=1;}return  n;
}/*** 查看树形菜单* @return*/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) {// TODO Auto-generated method stubreturn userdao.list(user);}@Overridepublic int add(User user) {// TODO Auto-generated method stubreturn userdao.add(user);}@Overridepublic List<TreeNode> listNode() {// TODO Auto-generated method stubreturn 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;}/*** 登录* @return*/public String dologin() {List<User> list = userBiz.list(user);if(list.size()>0) {System.out.println("登录成功");}else {System.out.println("登录失败,用户名或密码错误");}return null;}
/*** 注册* @return*/public String addUser() {int n = userBiz.add(user);if(n>0) {System.out.println("注册成功");}else {System.out.println("注册失败");}return null;}/*** 菜单* @return*/
public String listNode() {List<TreeNode> listNode = userBiz.listNode();for (TreeNode treeNode : listNode) {System.out.println(treeNode);}return null;
}@Overridepublic User getModel() {// TODO Auto-generated method stubreturn 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

/*** 文章属性* @author 林凡**/
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 {/*** 查询书籍* @return*/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();}}}/*** 增加数据* @param articles* @return*/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;}/*** 修改书籍* @param articles* @return*/public int edit(Article article) {this.getHibernateTemplate().update(article);return 1;}/*** 删除书籍* @param article* @return*/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() {// TODO Auto-generated method stubreturn articleDao.list();}@Overridepublic int add(Article article) {// TODO Auto-generated method stubreturn articleDao.add(article);}@Overridepublic int edit(Article article) {// TODO Auto-generated method stubreturn articleDao.edit(article);}@Overridepublic int delete(Article article) {// TODO Auto-generated method stubreturn articleDao.delete(article);}
}

ArticleAction

public class ArticleDao extends BaseDao {/*** 查询书籍* @return*/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();}}}/*** 增加数据* @param articles* @return*/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;}/*** 修改书籍* @param articles* @return*/public int edit(Article article) {this.getHibernateTemplate().update(article);return 1;}/*** 删除书籍* @param article* @return*/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>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部