热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringSidedml操作

【修改】方法一:根据id改变他的状态。就一个字段时。首先循环去的id,然后在他的action里遍历的根据id(要修改的字段的idÿ

=========================================================【修改】

方法一:根据id改变他的状态。就一个字段时。

首先循环去的id,然后在他的action里遍历的根据id(要修改的字段的id)查出实体对象,并且赋值setisnotice字段,最后save。

即:find——》set——》save

String[] IdArray=ids.split(",");

                            for(String tempId:IdArray){                                 

                                     Article temp=articleService.getArticleById(Long.parseLong(tempId));

                                     temp.setIsnotice(1L);

                                     articleService.saveArticle(temp);

                            }

方法二:

action里面:

         public String changeIsnotice(){                 

                   try {

                            String[] IdArray=ids.split(",");

                            for(String tempId:IdArray){                                 

                                     articleService.updateIsnoticeState(tempId);

                            }

                   } catch (Exception e) {

                            logger.error("显示出错!",e);

                   }

                   return RELOAD;

         }

service层里:

public void updateIsnoticeState(String isnoticeIds)

    {

                   System.out.println("updateIsnoticeState........ik");

       String hql = "update Article a set a.isnotice = 1 where a.articleid in ("+isnoticeIds+")";

       Query query = this.articleDao.createQuery(hql);

       query.executeUpdate();[d1]             

      

    }

 

方式二:【根据id修改所有的字段,并且弹出一个新页面】

页面传入的值:

                           

                                              

                                                        ${loginName} 

                                                        ${name} 

                                                        ${email} 

                                                        ${roleNames} 

                                                         

                                                                           修改 [d2] 

                                                                           删除

                                                                

                                                       

                                              

                                        

==========================================================【删除】====================================================================

页面传入的值

action内的值:

@Override

         public String delete() throws Exception {

                   try {

                            accountManager.deleteUser(id);

                            addActionMessage("删除用户成功");[d3] 

                   } catch (Exception e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                            addActionMessage("删除用户失败");

                   }

                   return RELOAD;

         }

// 添加删除 操作 要用这个封装数据

         @Override

         protected void prepareModel[d4] () throws Exception {

                   if (id != null) {

                            entity = accountManager.getUser(id);

                   } else {

                            entity = new User();

                   }

                  

         }

 

service内的值:

/**

          * 删除用户,如果尝试删除超级管理员将抛出异常.

          */

         public void deleteUser(Long id) {

                   if (isSupervisor(id)) {

                            logger.warn("操作员{}尝试删除超级管理员用户", SpringSecurityUtils.getCurrentUserName());

                            throw new ServiceException("不能删除超级管理员用户");

                   }

                   userDao.delete(id);[d5] 

         }

 

 

dao内的值:

 

==========================================================【添加】====================================================================

页面传入的值:

增加新用户

 

action内的值:

@Override

         public String save() throws Exception {

                   accountManager.saveUser(entity);

                   return RELOAD;

         }

 

 

service内的值:

public void saveUser(User entity) {

                   userDao.save(entity);

         }

 

dao内的值:

 

==========================================================【查询】====================================================================

页面传入的值

 

action内的值:

 

 

service内的值:

//第一次页面加载所有数据

         public List getAllNode(){     

                   return nodeDao.getAll();

         }

 

/**

          * 使用属性过滤条件查询用户.

          */

         @Transactional(readOnly = true)

         public Page searchUser(final Page page, final List filters) {

                   return userDao.findPage(page, filters);

         }

 

         @Transactional(readOnly = true)

         public User findUserByLoginName(String loginName) {

                   return userDao.findUniqueBy("loginName", loginName);

         }

 

 

dao内的值:

 

==========================================================【动态加载页面】============================================================

页面传入的值

 

action内的值:

         private Page page = new Page(5);//每页5条记录

         page = accountManager.searchUser(page, filters);//保存到page里面

 

service内的值:

         public Page searchUser(final Page page, final List filters) {

                   return userDao.findPage(page, filters);

         }

dao内的值:

         public class UserDao extends HibernateDao

jsp页面的值:

         //默认的是result属性。表示集合里的值

 

===========================================================【底层dao】============================================================

1)返回page分页:     busiGoodsDAO.findPage(page,hql);

2)返回list集合:         busiGoodsDAO.createQuery(hql).list();[d6] 

3)返回String不重复:   this.busiGoodsDAO.createQuery(hql).uniqueResult().toString();[d7] 

4)返回void:                 this.busiGoodsDAO.createQuery(hql);

                            query.executeUpdate();

 

 

 

 

 

 

 

 

 

 


 [d1]更新操作。Sql语句

 [d2]超链接,传id

 [d3]

 [d4]初始化数据,就实现了根据id获得整个实体类

 [d5]调用dao的delete方法,只需要传入id即可,不需要写语句

 [d6]

 [d7]


转:https://www.cnblogs.com/pujiajia/p/3287366.html



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
author-avatar
惬听风吟jyy_802
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有