底层方法封装(CommonDaoImpl类)

  1. public class CommonDaoImpl<T> extends HibernateDaoSupport implements ICommonDao<T> {
  2.  
  3. //泛型转化
  4. Class entityClass = TUtils.getActualType(this.getClass());
  5. /**
  6. * 如何来实现这个save方法:通过HibernateDaoSupport 来实现,需要注入sessionFactory
  7. */
  8. @Resource
  9. public void setDi(SessionFactory sessionFactory){
  10. this.setSessionFactory(sessionFactory);
  11. }
  12. @Override
  13. public void save(T entity) {
  14. this.getHibernateTemplate().save(entity);
  15. }
  16.  
  17. public void update(T entity){
  18. this.getHibernateTemplate().update(entity);
  19. }
  20. @Override
  21. public T findObjectById(Serializable id) {
  22. // Class entityClass = TUtils.getActualType(this.getClass());
  23. return (T) this.getHibernateTemplate().get(entityClass, id); //entityClass 此处需要类型
  24. }
  25. @Override
  26. public void deleteObjectByIds(Serializable... ids) {
  27. if(ids != null && ids.length > 0){
  28. for(Serializable id:ids){
  29. Object entity = this.findObjectById(id);
  30. this.getHibernateTemplate().delete(entity);
  31. }
  32. }
  33. // this.getHibernateTemplate().delete(entity);
  34. }
  35. @Override
  36. public void deleteObjectByCollection(List<T> list) {
  37. this.getHibernateTemplate().deleteAll(list);
  38. }
  39. }

 测试类:

  1. package junit;
  2.  
  3. import java.io.Serializable;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.List;
  7.  
  8. import org.junit.Test;
  9. import org.springframework.context.ApplicationContext;
  10. import org.springframework.context.support.ClassPathXmlApplicationContext;
  11.  
  12. import com.itheima.elec.bean.ElecText;
  13. import com.itheima.elec.dao.IElecTextDao;
  14.  
  15. public class TestDao {
  16.  
  17. @Test
  18. public void save(){
  19. //加载spring容器
  20. ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
  21. IElecTextDao elecTextDao = (IElecTextDao) ac.getBean(IElecTextDao.SERVICE_NAME);
  22.  
  23. ElecText elecText = new ElecText();
  24. elecText.setTextName("aaaaaaaaaa");
  25. elecText.setTextDate(new Date());
  26. elecText.setTextRemark("aaaaaaaaaaaaaaa test");
  27.  
  28. elecTextDao.save(elecText);
  29. }
  30.  
  31. @Test
  32. public void update(){
  33. ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
  34. IElecTextDao elecTextDao = (IElecTextDao) ac.getBean(IElecTextDao.SERVICE_NAME);
  35.  
  36. ElecText elecText = new ElecText();
  37. elecText.setTextID("8a80809359876a330159876a365b0001");
  38. elecText.setTextName("TestDaoupdate");
  39. elecText.setTextDate(new Date());
  40. elecText.setTextRemark("TestDao test update");
  41.  
  42. elecTextDao.update(elecText);
  43.  
  44. }
  45.  
  46. @Test
  47. public void findObjectById(){
  48. ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
  49. IElecTextDao elecTextDao = (IElecTextDao) ac.getBean(IElecTextDao.SERVICE_NAME);
  50. Serializable id = "8a80809359876a330159876a365b0001";
  51. ElecText elecText= elecTextDao.findObjectById(id);
  52. System.out.println(elecText.getTextName() + "+" + elecText.getTextRemark());
  53. }
  54. @Test
  55. public void deleteObjectByIds(){
  56. ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
  57. IElecTextDao elecTextDao = (IElecTextDao) ac.getBean(IElecTextDao.SERVICE_NAME);
  58. // Serializable ids = "297e3503598229df0159822ac8000001";
  59. Serializable[] ids = {"297e3503598229df0159822ac8000001","297e35035985f149015985f1ea770001"};
  60. elecTextDao.deleteObjectByIds(ids);
  61. }
  62.  
  63. @Test
  64. public void deleteObjectByCollection(){
  65. ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
  66. IElecTextDao elecTextDao = (IElecTextDao) ac.getBean(IElecTextDao.SERVICE_NAME);
  67.  
  68. List<ElecText> list = new ArrayList<ElecText>();
  69. ElecText elecText1 = new ElecText();
  70. elecText1.setTextID("297e350359873d030159873d7ab20001");
  71.  
  72. ElecText elecText2 = new ElecText();
  73. elecText2.setTextID("8a80809359876a330159876a365b0001");
  74.  
  75. ElecText elecText3 = new ElecText();
  76. elecText3.setTextID("8a8080935987d7c5015987d7c8d40001");
  77.  
  78. list.add(elecText1);
  79. list.add(elecText2);
  80. list.add(elecText3);
  81.  
  82. elecTextDao.deleteObjectByCollection(list);
  83.  
  84. }
  85. }  

SSH电力项目二的更多相关文章

  1. SSH电力项目

    第一步:创建测试表Elec_Text: create table Elec_Text(textID varchar(50) not null primary key,textName varchar( ...

  2. SSH电力项目一 搭建Hibernate框架

    Hibernate所需要的基本文件: ElectText.java ElecText.hbm.xml hibernate.cfg.xml 第一步:创建测试表Elec_Text: create tabl ...

  3. SSH电力项目四-显示首页

    1.登录页面: 将上一节中的页面放到/WEB-INF/page/目录下,需要登录后才能访问该页面: 对应页面:/WEB-INF/page/menu/home.jsp <%@ page langu ...

  4. SSH电力项目三 - Dao层、service层查询实现(HQL)

    底层方法封装:模糊查询,姓张的人 查询思路:select * from elec_text o           #Dao层     where o.textName like '%张%'     ...

  5. SSH电力项目九--运行监控首页显示

    需求:在首页显示出设备运行情况,并去掉<br>换行符,每隔十分钟刷新一次页面. ElecMenuAction.java 首先注入运行监控service public class ElecM ...

  6. SSH框架项目开发命名规范

    SSH 框架项目开发命名规范   一.各层包及类命名规范   总体原则:包名所有字母小写,类名采用 "驼峰标识",具体如下:   1. Action 类      包命名规范:co ...

  7. 搭建ssh框架项目(一)

    一.创建web项目 二.导入jar包 三.创建数据库(MySQL) 四.建立javaBean对象(ElecText.java),属于持久层对象(PO对象) package com.cppdy.ssh. ...

  8. Eclipse+Maven创建webapp项目<二> (转)

    Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...

  9. Vue小项目二手书商城:(四)详情页和购物车(emit、prop、computed)

    实现效果: 点击对应商品,对应的商品详情页出现,详情页里面还有“Add to cart”按钮和“×”退出按钮. 点击“Add to cart”可以将商品加入购物车,每件商品只能添加一次,如果把购物车的 ...

随机推荐

  1. 分布式下的session处理方式

    分布式下的session处理方式 现在的企业级别开发下,分布式的问题是随处可见.今天我们来看看分布式情况下session的处理. 目前的处理方式有以下几种: 1.session黏性.就是说,用户在访问 ...

  2. 重复数据删除 开源实现 (deduputil) (转)

    [dedup util] dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码 ...

  3. 弄明白html、css3、js这个问题。。。

  4. ROS 教程之 navigation :在 catkin 环境下创建costmap layer plugin

    在做机器人导航的时候,肯定见到过global_costmap和local_costmap.global_costmap是为了全局路径规划服务的,如从这个房间到那个房间该怎么走.local_costma ...

  5. 【从0開始Tornado建站】整体设计

    Tornado是一个非堵塞的webserver,也是python的web框架中很优秀的一款.网上关于django的tutorial许多并且具体,关于tornado的使用就很少了.我想以我从0開始的方式 ...

  6. mysql数据库要按当天、昨天、前七日、近三十天、季度、年查询

    mysql数据库要按当天.昨天.前七日.近三十天.季度.年查询

  7. 五大移动GPU厂商

    <谁能笑傲江湖?移动处理器门派那些事儿>一文中我们把2012年的移动处理器的厂商做了一番介绍,并依照各自的属性给划分了门派.既然把他们称为江湖门派.那么每一个门派总要有自己的绝活.移动处理 ...

  8. Git高级操作

    本文是在Git操作指南基础上衍生出来的高级操作,如果你对git不是很熟悉,建议你先阅读Git操作指南. 一.忽略提交特定文件 如果你不想让一些文件上传到git仓库中,可以让Git忽略特定文件或是目录, ...

  9. C#设计模式系列:抽象工厂模式(AbstractFactory)

    出自:http://www.cnblogs.com/libingql/archive/2012/12/09/2809754.html 1. 抽象工厂模式简介 1.1 定义 抽象工厂(Abstract ...

  10. UVA 1203 - Argus(优先队列)

    UVA 1203 - Argus 题目链接 题意:给定一些注冊命令.表示每隔时间t,运行一次编号num的指令.注冊命令结束后.给定k.输出前k个运行顺序 思路:用优先队列去搞,任务时间作为优先级.每次 ...