(crm笔记1-2) Dao层的搭建
来源:互联网 发布:静态网页源码 编辑:程序博客网 时间:2024/06/06 06:49
Dao层的搭建
上一节里面提到的,现在还在搭建dao层的阶段
目录如下:
首先创建一个共有的Dao层,里面设置共有的方法的接口
package com.huiyu.crm.dao;public interface ICommonDao<T> { public void save(T entity);}
然后创建实现类:
public class CommonDaoImpl<T> extends HibernateDaoSupport implements ICommonDao<T> { @Override public void save(T entity) { this.getHibernateTemplate().save(entity); }}
里面继承spring里面的HibernateDaoSupport支持类
并通过该类实现接口的方法。
beans.xml的配置
首先我们对beans.xml进行一些基本的配置,配置的代码如下:
<!-- 配置注解的自动扫描 --> <context:component-scan base-package="com.huiyu.crm"></context:component-scan> <!-- 配置本地化代理工厂bean,这是spring整合hibernate的入口 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> </bean> <!-- 事物管理器 aop切面 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 配置处理事务的注解 --> <tx:annotation-driven transaction-manager="txManager"/>
主要是配置一些spring中特有的aop等一些,将事物代理工厂设置好。然后将beans.xml文件中的会话工厂和java文件中的会话工厂相对应,需要更改CommonDaoImpl.java的代码:
增加:
//通过注解的方式注入sessionfactory @Resource(name="sessionFactory") public void setSessionFactoryDI(SessionFactory sessionFactory){ System.out.println("sessionFactory+"+sessionFactory); //调用父类,hibernateDaoSupport中的setSessionFactory方法,注入sessionFactory super.setSessionFactory(sessionFactory); }
然后就开始对Dao层代码进行完善。主要是完成右边的两个代码文件:ISysUserGroupDao和SysUserGroupDaoImpl
代码如下:
ISysUserGroupDao .java
public interface ISysUserGroupDao extends ICommonDao<SysUserGroup>{ public final static String SERVICE_NAME="com.huiyu.crm.dao.impl.SysUserGroupDaoImpl"; }
SysUserGroupDaoImpl .java
@Repository(ISysUserGroupDao.SERVICE_NAME)public class SysUserGroupDaoImpl extends CommonDaoImpl<SysUserGroup> implements ISysUserGroupDao{}
这样就实现了整个Dao层如最上图所示的架构。下面进行junit单元测试
测试类:
public class TestSysUserGroupDao { @Test public void testSave() { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); ISysUserGroupDao sysUserGroupDao = (ISysUserGroupDao) ctx .getBean(ISysUserGroupDao.SERVICE_NAME);//插入数据 SysUserGroup sysUserGroup = new SysUserGroup(); sysUserGroup.setId(2); sysUserGroup.setIncumbent("销售部"); sysUserGroup.setName("李四"); sysUserGroup.setPrincipal("张三"); sysUserGroup.setRemark("no remark"); sysUserGroupDao.save(sysUserGroup); }}
这里运行junit单元会发现运行出现输入如下:
这里在数据库中会发现,其实没有数据真正的插入,需要更改一下hibernate配置文件。
<property name="hibernate.connection.autocommit">true</property>
这样就成功运行插入保存数据了。
阅读全文
0 0
- (crm笔记1-2) Dao层的搭建
- (crm笔记1-7)搭建好框架后对dao层进行功能扩充
- (crm笔记1-3)Service层搭建
- (crm笔记1-4)Struts2层搭建
- (2)开发环境搭建-DAO层
- (crm笔记1-1) 框架的搭建
- (crm笔记2-1)struts2层与前端页面的连接
- ssm框架搭建(一)-Dao层搭建-mybatis
- 通过Hibernate框架搭建简单的dao层
- 搭建DAO层和Service层代码
- CRM的学习笔记1
- hibernate的dao层
- Hibernate笔记02完整的DAO层编写
- JAVA学习笔记(五十二)- 开发DAO层的经典实现
- 笔记:关于hibernate在dao层要导入的包
- 关于service层和dao层的设计。(转载)
- DAO层小结2(查询)
- 秒杀模块碎碎念笔记(1)-Dao层
- Python的异常处理
- 【POJ 2112 Optimal Milking】网络流 & 二分 & floyd
- 海量数据处理
- Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0
- 解决No module named google.protobuf.internal
- (crm笔记1-2) Dao层的搭建
- 并行计算及其发展
- wc命令的C语言实现
- 记录一次问题
- matlib同一界面中不同控件之间的数据传递机制
- ubuntu常用软件
- Runtime.getRuntime().exec
- 爬虫去重策略
- Ubuntu 16.04 下配置adb工具环境变量