ssh框架原理及流程中如何插入有外键的表

求大神解答一下 SSH一对多 更新主表信息 另一张表外键为空
[问题点数:40分,结帖人l]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:0
本版专家分:0
本版专家分:35
本版专家分:15049
2016年6月 Java大版内专家分月排行榜第一2016年5月 Java大版内专家分月排行榜第一2016年4月 Java大版内专家分月排行榜第一
2017年2月 Java大版内专家分月排行榜第二2017年1月 Java大版内专家分月排行榜第二2016年7月 Java大版内专家分月排行榜第二
2016年12月 Java大版内专家分月排行榜第三2016年10月 Java大版内专家分月排行榜第三2016年8月 Java大版内专家分月排行榜第三
本版专家分:0
匿名用户不能发表回复!|
其他相关推荐SSH的多表操作要怎么做,增删改查
[问题点数:40分,结帖人u]
本版专家分:0
结帖率 40%
CSDN今日推荐
本版专家分:1502
本版专家分:0
本版专家分:0
本版专家分:20
本版专家分:496
本版专家分:1312
本版专家分:0
匿名用户不能发表回复!|
其他相关推荐
一.整合步骤1. 通过MyEclipse向导,添加struts功能2. 通过MyEclipse向导,添加Hibernate3功能:生成会话工厂的那个步骤中一定要将那个对号要去掉,不能由hibernate来生成,而是交给Spring来生成;还有就是导入jar包的时候选择复制到lib目录下这一项。3. 通过MyEclipse向导,导入实现Spring功能,注意导入jar包的时候选择复制到lib目录下这一项。3. 利用MyEclipse反向工程的方法,以Spring生成dao对象的方式创建Hibernate D
SSH结合EasyUI的分页操作(数据的增删改查)一.效果展示图如下:
注:1.可以根据条件进行检索,结果直接显示在列表当中。
2.可以双击当前行,进入编辑模式,点击保存则修改确认,点击撤销则取消编辑。
3.点击添加,会在第一行新增编辑行,点击保存,会在列表的结尾新增一条记录。二.前端代码分析
Body部分代码
网上银行系统SSH简单实现增删改查,包含数据库文件
ssh增删改查
在网上看到一篇写的很不错的关于SSH 整合实现简单的增删改查功能的实例。
因为也是初次使用SSH框架,如有不足,请多指教。
先看一下我们完整的工程目录:
我们废话不多说 直接上操作:
1.(1.)Dept
我们的Bean
包名:com.bdqn.entity(根据自己的习惯定义就可以)
package com.bdqn.
import java.
多表下的ssh整合
数据库用的是mysql,用的时候自己创建一个叫ssha的数据库,然后部署后就可以运行起来了,没有花哨的页面展示,只有简单的逻辑,可以让初学ssh的人快速明白web的逻辑
SSH的增删改查和SSH需要的多数的jar包
ssh AJAX 增删改查ssh AJAX 增删改查ssh AJAX 增删改查ssh AJAX 增删改查
Struts2+hibernate实现用户登录和增删改查案例
开发工具MyEclipse 10.7.1
创建一个项目 web项目project。
部署好Struts2的开发环境:
1、引入需要的类库文件 jar
2、添加struts2的配置文件 struts.xml
:classespath:一对多关联外键添加,修改保存失败问题
今天博主在做一个ssh项目时候,需要使用到一级分类和二级分类关联,然后是在保存二级分类的时候,二级分类的name可以正常保存,而二级分类关联的一级分类的cid不能插入老是为空。
憋了一天一夜终于把问题解决,,虽然不知道为撒,,但是个人感觉还是因为
关联问题的原因。。。首先建立各自的实体类:
public class Category implements Serializable{
private static final long serialVersionUID = 1L;
// 一级分类中存放二级分类的集合:
private Set&CategorySecond& categorySeconds = new HashSet&CategorySecond&();
public Integer getCid() {
public void setCid(Integer cid) {
this.cid =
public String getCname() {
public void setCname(String cname) {
this.cname =
public Set&CategorySecond& getCategorySeconds() {
return categoryS
public void setCategorySeconds(Set&CategorySecond& categorySeconds) {
this.categorySeconds = categoryS
二级分类的实体类:
public class CategorySecond {
// 所属一级分类.存的是一级分类的对象.
// 配置商品集合
private Set&Product& products = new HashSet&Product&();
public Integer getCsid() {
public void setCsid(Integer csid) {
this.csid =
public String getCsname() {
public void setCsname(String csname) {
this.csname =
public Category getCategory() {
public void setCategory(Category category) {
this.category =
public Set&Product& getProducts() {
public void setProducts(Set&Product& products) {
this.products =
他们各自的配置文件如下:一级分类的配置文件&?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 name="shop.category.vo.Category" table="category"&
&id name="cid"&
&generator class="native"/&
&property name="cname"/&
&!-- 配置二级分类的集合 ,每一次刷新之后都不变--&
name="categorySeconds" inverse="true" lazy="false"
order-by="csid" cascade="all"
&!-- 外键 --&
&key column="cid"/&
&one-to-many class="shop.categorysecond.vo.CategorySecond"/&
&/hibernate-mapping&二级分类的配置文件:&?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 name="shop.categorysecond.vo.CategorySecond" table="categorysecond"&
&id name="csid"&
&generator class="native"/&
&property name="csname"/&
&!-- 二级分类与一级分类的关联 ....多的一端,是many,name是类这一段的属性,columu找表里的属性--&
&many-to-one
name="category"
lazy="false" class="shop.category.vo.Category" column="cid"
&&/many-to-one&
&!-- 二级分类与商品的关联 --&
&set name="products"&
&key column="csid"/&
&one-to-many class="shop.product.vo.Product"/&
&/hibernate-mapping&
此处使用一对多的set集合这种形式进行关联,,然后查阅网上原因的时候,特意加了下面的主控方和被空方问题
inverse="true"这个加在一对多的
一的那一方。
关于这个问题,还是没有解决我的问题。
然后又怀疑是级联问题,特意把级联加了进去
cascade=“all”,结果问题还是没有解决。
这是我的action,package shop.categorysecond.
import java.util.L
import com.opensymphony.xwork2.ActionC
import com.opensymphony.xwork2.ActionS
import com.opensymphony.xwork2.ModelD
import com.sun.org.apache.bcel.internal.generic.NEW;
import shop.category.service.CategoryS
import shop.category.vo.C
import shop.categorysecond.service.CategorySecondS
import shop.categorysecond.vo.CategoryS
import shop.utils.PageB
* 后台二级分类的对象
* @author feng
public class AdminCategorySecondAction extends ActionSupport implements ModelDriven&CategorySecond& {
private CategorySecond categorySecond = new CategorySecond();
public CategorySecond getModel() {
// TODO Auto-generated method stub
return categoryS
// 注入二级分类的service
private CategorySecondService categorySecondS
public void setCategorySecondService(CategorySecondService categorySecondService) {
this.categorySecondService = categorySecondS
// 接受page
public void setPage(Integer page) {
this.page =
//接受cid;;;;此处我也不知道为啥需要用一个这个才好使,,,因为在ad
&span style="color:#ff0000;"&/*private I
public Integer getCid() {
public void setCid(Integer cid) {
this.cid =
}*/&/span&
// 注入一级分类的Service
private CategoryService categoryS
public void setCategoryService(CategoryService categoryService) {
this.categoryService = categoryS
// 查询二级分类的方法
public String findAll() {
PageBean&CategorySecond& pageBean = categorySecondService.findByPage(page);
// 在service方法中我们已经获取到了pagebean 将pagebean放到值栈中
ActionContext.getContext().getValueStack().set("pageBean", pageBean);
return "findAll";
// 二级分类的添加页面:跳转
public String addPage() {
// 查询所有一级分类
List&Category& cList = categoryService.findAll();
// 把数据显示到页面的下拉列表中,保存到值栈
ActionContext.getContext().getValueStack().set("cList", cList);
// 页面跳转
return "addPageSuccess";
// 保存二级分类的方法
public String save() {
&span style="color:#ff0000;"&categorySecond.setCategory(categoryService.findByCid(cid));&/span&
categorySecondService.save(categorySecond);
return "saveSuccess";
// 删除二级分类的方法:
public String delete() {
// 根据id查询二级分类:如果级联删除。先查询在删除,配置cascade。。。
System.out.println(categorySecond.getCsid());
categorySecond = categorySecondService.findByCsid(categorySecond.getCsid());
categorySecondService.delete(categorySecond);
return "deleteSuccess";
//编辑二级分类的方法
public String edit(){
//根据二姐分类id查询二级分类的对象
categorySecond=categorySecondService.findByCsid(categorySecond.getCsid());
//查询所有的一级分类
List&Category& cList=categoryService.findAll();
ActionContext.getContext().getValueStack().set("cList", cList);
return "editPageSuccess";
// 修改二级分类的方法:
public String update(){
categorySecond.setCategory(categoryService.findByCid(cid));
categorySecondService.update(categorySecond);
return "updateSuccess";
然后是我的添加页面:&body&
&form id="userAction_save_do" name="Form1" action="${pageContext.request.contextPath}/adminCategorySecond_save.action" method="post" enctype="multipart/form-data"&
&table cellSpacing="1" cellPadding="5" width="100%" align="center" bgColor="#eeeeee" style="border: 1px solid #8ba7e3" border="0"&
&td class="ta_01" align="center" bgColor="#afd1f3" colSpan="4"
height="26"&
&strong&&STRONG&添加二级分类&/STRONG&
&td width="18%" align="center" bgColor="#f5fafe" class="ta_01"&
二级分类名称:
&td class="ta_01" bgColor="#ffffff"&
&input type="text" name="csname" value="" id="userAction_save_do_logonName" class="bg"/&
&td width="18%" align="center" bgColor="#f5fafe" class="ta_01"&
所属的一级分类:
&span style="color:#cc0000;"&&td class="ta_01" bgColor="#ffffff"&
&select name="cid"&
&s:iterator value="cList" var="c"&
&option value="&s:property value="#c.cid"/&" &&s:property value="#c.cname"/& &/option&
&/s:iterator&
&/td&&/span&
&td class="ta_01" style="WIDTH: 100%" align="center"
bgColor="#f5fafe" colSpan="4"&
&button type="submit" id="userAction_save_do_submit" value="确定" class="button_ok"&
&FONT face="宋体"&
&button type="reset" value="重置" class="button_cancel"&重置&/button&
&FONT face="宋体"&
&INPUT class="button_ok" type="button" onclick="history.go(-1)" value="返回"/&
&span id="Label1"&&/span&
dao层和service层一级配置文件和struts.xml经楼主检查没有错误,便不在贴出来了。
楼主的最终解决办法,可以看到在action中有一段用红色标记的注释掉的内容,开始是没有的,后来添加上,,就好使了。具体原因我也不知道为啥。
但是此处我还是有很多疑惑,希望各位大神为我解答:
1.在action中我是用modelDriven之后,本来可以用模型categorySecond直接接收数据的,但是这里为什么没有接受到一级分类中的cid,而是需要我自己去重新定义这样一个id,然后set,get呢。
没有更多推荐了,我用的是ssh框架,我想在一个action里获取另外一张表的数据(id作为外键)如何获取 并且显示在页面中_百度知道
我用的是ssh框架,我想在一个action里获取另外一张表的数据(id作为外键)如何获取 并且显示在页面中
提示怎么做也行
我有更好的答案
在写了dao和biz的情况下,在action里调用获取另外一张表数据的方法,用一个list接收,将这个list作为属性写在action里,生成这个属性的get
set方法,然后在页面里用&c:foreach&循环显示出来
采纳率:41%
根据id去查 另外一个表
本回答被网友采纳
在上一页面将需要的数据隐式的传过来吧,hidden标签吧,不知是不是这意思,希望提醒到你。
action不直接连接数据库的,一般在dao层连接数据库。
其他1条回答
为您推荐:
其他类似问题
ssh框架的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。ssh框架通过外链接查询三张表_百度知道
ssh框架通过外链接查询三张表
表1id(外键)表3字段 id
表2id(外键)如何通过表1查出三张表的所有内容最后再通过ssh返回到页面?
是在dao层通过id查表1时把表2和表2相关联的都查出,有dao层详细代码最好
我有更好的答案
使用你自己写的session对象调用createSQLQuery(sql).list(),应该没什么问题,你说把list转换成 List&PointEquipFrom &,那要首先看你获取List&E&中E这个对象是什么
使用你自己写的session对象调用createSQLQuery(sql).list(),应该没什么问题,你说把list转换成 List&PointEquipFrom &,那要首先看你获取List&E&中E这个对象是什么?
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 ssm框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信