结构图

articles模块

实体类Articles.java

package com.jt.articles.entity;

public class Articles {

    private Integer id;
private String title;
private String body; public Integer getId() {
return id;
}
public void setId(Integer 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;
}
@Override
public String toString() {
return "Articles [id=" + id + ", title=" + title + ", body=" + body + "]";
}
}

实体类映射文件articles.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.jt.articles.entity.Articles">
<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>

ArticlesBiz.java

package com.jt.articles.biz;

import java.util.List;

import com.jt.articles.entity.Articles;
import com.jt.base.util.PageBean; public interface ArticlesBiz { /**
* 新增
* @param articles
* @return
*/
public int add(Articles articles); /**
* 修改
* @param articles
*/
public void update(Articles articles); /**
* 删除
* @param articles
*/
public void del(Articles articles); /**
* 查询
* @param articles
* @param pageBean
* @return
*/
public List<Articles> list(Articles articles,PageBean pageBean);
}

ArticlesBizImpl.java

package com.jt.articles.biz.impl;

import java.util.List;

import com.jt.articles.biz.ArticlesBiz;
import com.jt.articles.dao.ArticlesDao;
import com.jt.articles.entity.Articles;
import com.jt.base.util.PageBean; public class ArticlesBizImpl implements ArticlesBiz{ private ArticlesDao articlesDao; public ArticlesDao getArticlesDao() {
return articlesDao;
} public void setArticlesDao(ArticlesDao articlesDao) {
this.articlesDao = articlesDao;
} @Override
public int add(Articles articles) {
return articlesDao.add(articles);
} @Override
public void update(Articles articles) {
articlesDao.update(articles); } @Override
public void del(Articles articles) {
articlesDao.del(articles); } @Override
public List<Articles> list(Articles articles, PageBean pageBean) {
// TODO Auto-generated method stub
return articlesDao.list(articles, pageBean);
} }

ArticlesDao.java

package com.jt.articles.dao;

import java.util.List;

import org.hibernate.Session;

import com.jt.articles.entity.Articles;
import com.jt.base.dao.BaseDao;
import com.jt.base.util.PageBean; public class ArticlesDao extends BaseDao{ private static final long serialVersionUID = -6077790395680289782L; /**
* 新增
* @param articles
* @return
*/
public int add(Articles articles) {
return (int) this.getHibernateTemplate().save(articles); } /**
*
* 删除
* @param articles
*/
public void del(Articles articles) {
this.getHibernateTemplate().delete(articles);
} /**
* 修改
* @param articles
*/
public void update(Articles articles) {
this.getHibernateTemplate().update(articles);
} /**
* 查询
* @param articles
* @param pageBean
* @return
*/
public List<Articles> list(Articles articles, PageBean pageBean){
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
session.beginTransaction();
return super.executeQuery(session, "from Articles", null,pageBean);
}
}

ArticlesAction.java

package com.jt.articles.web;

import com.jt.articles.biz.ArticlesBiz;
import com.jt.articles.entity.Articles;
import com.jt.base.web.BaseAction;
import com.opensymphony.xwork2.ModelDriven; public class ArticlesAction extends BaseAction implements ModelDriven<Articles>{ private static final long serialVersionUID = 5943402081349505372L; private ArticlesBiz articlesBiz;
private Articles articles =new Articles(); public ArticlesBiz getArticlesBiz() {
return articlesBiz;
} public void setArticlesBiz(ArticlesBiz articlesBiz) {
this.articlesBiz = articlesBiz;
} /**
* 查询
* @return
*/
public String list() {
System.out.println(articlesBiz.list(articles, null));
return null;
} /**
* 删除
*/
public void del() {
articlesBiz.del(articles);
} /**
* 修改
* @return
*/
public String update() {
articlesBiz.update(articles);
return null;
} /**
* 新增
* @return
*/
public String add() {
articlesBiz.add(articles);
return null; } @Override
public Articles getModel() {
// TODO Auto-generated method stub
return articles;
}
}

User模块

User.java

package com.jt.user.entity;

public class User {

    private String uname;
private String pwd;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User [uname=" + uname + ", pwd=" + pwd + "]";
}
}

实体类映射文件

<?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.jt.user.entity.User"> <id name="uname" type="java.lang.String" column="uname">
<generator class="assigned"></generator>
</id>
<property name="pwd" type="java.lang.String" column="pwd"></property>
</class>
</hibernate-mapping>

UserBiz.java

package com.jt.user.biz;

import com.jt.user.entity.User;

public interface UserBiz {

    /**
* 登录
* @param user
* @return
*/
public User login(User user); /**
* 注册
* @param user
* @return
*/
public int addUser(User user);
}

UserBizImpl.java

package com.jt.user.biz.impl;

import com.jt.user.biz.UserBiz;
import com.jt.user.dao.UserDao;
import com.jt.user.entity.User; public class UserBizImpl implements UserBiz{ private UserDao userDao; public UserDao getUserDao() {
return userDao;
} public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} @Override
public User login(User user) {
return userDao.login(user);
} @Override
public int addUser(User user) {
return userDao.addUser(user);
}
}

UserDao.java

package com.jt.user.dao;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate5.HibernateCallback; import com.jt.base.dao.BaseDao;
import com.jt.user.entity.User; public class UserDao extends BaseDao{ private static final long serialVersionUID = 3670806315799801488L; public User login(User user) {
return this.getHibernateTemplate().execute(new HibernateCallback<User>() { @Override
public User doInHibernate(Session session) throws HibernateException {
return (User) session.createQuery("from User where uname= '"+user.getUname()+"' and pwd= "+user.getPwd()).list();
}
});
} public int addUser(User user) {
return (int) this.getHibernateTemplate().save(user);
}
}

UserAction.java

package com.jt.user.web;

import com.jt.base.web.BaseAction;
import com.jt.user.biz.UserBiz;
import com.jt.user.entity.User;
import com.opensymphony.xwork2.ModelDriven; public class UserAction extends BaseAction implements ModelDriven<User>{ private static final long serialVersionUID = 4244808665377509950L; private UserBiz userBiz;
private User user=new User(); public UserBiz getUserBiz() {
return userBiz;
} public void setUserBiz(UserBiz userBiz) {
this.userBiz = userBiz;
} /**
* 登录
* @return
*/
public String login() {
userBiz.login(user);
return null;
} /**
* 注册
* @return
*/
public String addUser() {
userBiz.addUser(user);
return null;
} @Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}

tree_node模块

TreeNode.java

package com.jt.tree_node.entity;

import java.util.HashSet;
import java.util.Set; 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>();
// 加载方式(1强制加载关联,0懒加载)
private Integer initChildren = ; 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;
}
}

treeNode.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.jt.tree_node.entity.TreeNode">
<id name="nodeId" type="java.lang.Integer" column="tree_node_id">
<generator class="increment" />
</id>
<property name="nodeName" type="java.lang.String"
column="tree_node_name">
</property>
<property name="treeNodeType" type="java.lang.Integer"
column="tree_node_type">
</property>
<property name="position" type="java.lang.Integer"
column="position">
</property>
<property name="url" type="java.lang.String"
column="url">
</property>
<!--
parent定义了管理树形
column中指定了通过那个列段来关联 对应的是当前表的主键
-->
<many-to-one name="parent" class="com.jt.tree_node.entity.TreeNode" column="parent_node_id"/> <!--
这是定义子节点关联
-->
<set name="children" cascade="save-update" inverse="true">
<!--凡是parent_node_id是当前节点的tree_node_id的就统统加入集合-->
<key column="parent_node_id"></key>
<one-to-many class="com.jt.tree_node.entity.TreeNode"/>
</set> </class>
</hibernate-mapping>

TreeNodeBiz.java

package com.jt.tree_node.biz;

import java.util.List;

import com.jt.tree_node.entity.TreeNode;

public interface TreeNodeBiz {
/**
* 加载树
* @return
*/
public List<TreeNode> list();
}

TreeNodBizImpl.java

package com.jt.tree_node.biz.impl;

import java.util.List;

import com.jt.tree_node.biz.TreeNodeBiz;
import com.jt.tree_node.dao.TreeNodeDao;
import com.jt.tree_node.entity.TreeNode; public class TreeNodBizImpl implements TreeNodeBiz{ private TreeNodeDao treeNodeDao; public TreeNodeDao getTreeNodeDao() {
return treeNodeDao;
} public void setTreeNodeDao(TreeNodeDao treeNodeDao) {
this.treeNodeDao = treeNodeDao;
} @Override
public List<TreeNode> list() {
// TODO Auto-generated method stub
return treeNodeDao.list();
} }

TreeNodeDao.java

package com.jt.tree_node.dao;

import java.util.List;

import org.hibernate.Hibernate;
import org.hibernate.Session; import com.jt.base.dao.BaseDao;
import com.jt.tree_node.entity.TreeNode; public class TreeNodeDao extends BaseDao{ private static final long serialVersionUID = -4339387396332761044L; public List<TreeNode> list(){
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
session.beginTransaction();
//这是最好的做做法 非常好 使用 hql语句进行查询
List<TreeNode> treeNodes = super.executeQuery(session, "from TreeNode where treeNodeType = 1", null,null);
//进行强子加载子节点
if (treeNodes != null && treeNodes.size() > ) {
for (TreeNode t : treeNodes) {
//强制加载子节点
Hibernate.initialize(t.getChildren());
}
}
return treeNodes;
}
}

TreeNodeAction.java

package com.jt.tree_node.web;

import java.util.List;

import com.jt.base.web.BaseAction;
import com.jt.tree_node.biz.TreeNodeBiz;
import com.jt.tree_node.entity.TreeNode; public class TreeNodeAction extends BaseAction{ private static final long serialVersionUID = -6038611615430719428L; private TreeNodeBiz treeNodeBiz; public TreeNodeBiz getTreeNodeBiz() {
return treeNodeBiz;
} public void setTreeNodeBiz(TreeNodeBiz treeNodeBiz) {
this.treeNodeBiz = treeNodeBiz;
} public String list() {
List<TreeNode> list = treeNodeBiz.list();
System.out.println("我是长度" + list.size());
TreeNode node = list.get();
System.out.println(node);
System.out.println(node.getChildren());
for (TreeNode n: node.getChildren()) {
System.out.println("我是子节点:" + n.getNodeName());
}
return null;
}
}

SSH整合二的更多相关文章

  1. SSH整合(二)

    SSH框架实现登录.新闻增删改查.树形菜单 项目结构 pom.xml 网不好不要一次引入太多,容易下不全 <project xmlns="http://maven.apache.org ...

  2. 三大框架SSH整合

    三大框架SSH整合 -------------------------------Spring整合Hibernate------------------------------- 一.为什么要整合Hi ...

  3. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...

  4. Spring(八)SSH整合简述

    一.Spring与Struts2的整合 1.1.整合步骤 1.2.配置web.xml 1.3.配置spring配置文件applicationContext.xml 1.4.配置struts配置文件 1 ...

  5. SSH整合之spring整合hibernate

    SSH整合要导入的jar包: MySQL中创建数据库 create database ssh_db; ssh_db 一.spring整合hibernate带有配置文件hibernate.cfg.xml ...

  6. 【转载】Ssh整合开发介绍和简单的登入案例实现

    Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一  介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...

  7. SSH整合总结(xml与注解)

    本人自己进行的SSH整合,中间遇到不少问题,特此做些总结,仅供参考. 一.使用XML配置: SSH版本 Struts-2.3.31 Spring-4.3.5 Hibernate-4.2.21 引入ja ...

  8. Spring第四天——SSH整合

    (从整合开始,使用回归使用eclipse) 一.三大框架版本:  struts2 hibernate5 spring4 二.SSH三大框架回顾: Hibernate: ORM思想 核心配置文件: 单独 ...

  9. Java - 框架之 SSH 整合

                        代码获取 十四. ssh 整合1 - 包 1. Struts jar 包    - Struts-2.xx\apps\stutrs2-blank\WEB-INF ...

随机推荐

  1. Java描述设计模式(14):解释器模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.解释器模式 1.基础概念 解释器模式是对象的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端 ...

  2. 为什么delete后磁盘空间没有释放而truncate会释放?

    背景 因项目需求,需要清理一批旧数据,腾出空间给新数据,让同事负责这件事.料想会很顺利,但很快找到我,并告知在postgresql中把一张大的数据表删除掉了,查询表的size并没有改变. 我震惊了,问 ...

  3. WPF之行为

    Behavior的运用扩展了”交互“功能,以下记录示例: 在的项目中添加两个引用:Microsoft.Expression.Interactions.dllSystem.Windows.Interac ...

  4. Git实战指南----跟着haibiscuit学Git(第八篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  5. [转]UiPath State Machines

    本文转自:https://docs.uipath.com/studio/docs/state-machines A state machine is a type of automation that ...

  6. golang 安装脚本

    #!/bin/bash env sudo yum -y install wget curl echo "download golang ..." # 获取最新的golangurl ...

  7. VMware虚拟机Linux配置

    1.设置时区和时间 打开虚拟机,设置好用户名和密码,就可以进入了. 进入之后,可以先设置时区和时间 在CentOS桌面右上角,点击时间,然后进行设置 2.添加用户使用root权限 安装虚拟机之后,登录 ...

  8. 华为eNSP路由交换实验-生成树之RSTP

    RSTP基础配置 实验拓扑图 实验步骤 1.基本配置 根据实验编址表进行相应的基本IP配置. 2.配置RSTP基本功能. (1)把生成树模式由默认的MSTP(华为交换机默认开启)改为RSTP. [FW ...

  9. java之集合工具类Collections

    Collections类简介 java.utils.Collections 是集合工具类,用来对集合进行操作.此类完全由在 collection 上进行操作或返回 collection 的静态方法组成 ...

  10. 一文带你深入浅出Spring 事务原理

    Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...