本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正。

开发环境: Eclipse Version: Photon Milestone 6

WCP:http://www.wcpdoc.com/home/Pubindex.html

目录:

Hibernate自动生成(1)

Hibernate自动生成(2)

动软生成的WCP DAO层模板(不使用接口)

在第一部分,已经生成了实体对象,现在我们正式使用。

1.把刚才的test项目重构改名,wcp-tpmember, 建立包 com.farm.member.Dao

博主本次需要链接第二个数据库MSSQL,需要新建一个SessionFactory,以下步骤并没有顺序。

2.这个静态方法手动向bean获取实例。(这步现在不做也没事,我还不知道这个类什么时候用)

参考HibernateSeesionFactory.java 新建HibernateSeesionFactoryForMSSQL.java

3.配置jdbc

4.加一个方言:

hibernate.dialectsql

org.hibernate.dialect.SQLServer2008Dialect

5.XML文件配置

在hibernate配置文件spring-hibernate.xml中增加一个sessionFactorymssql

 <!-- MSSQL的sessionFactory 添加:陆慧 -->
<bean id="sessionFactorymssql"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSourcemssql" /> <!-- 注意这里的ref名字 -->
<property name="packagesToScan">
<list>
<!-- 可以加多个包 -->
<value>com.farm</value>
<value>com.manor</value>
<value>org.sdkj</value> </list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.dialect">${hibernate.dialectsql}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
</props>
</property>
</bean> <!-- MSSQL的数据库映射- 添加:陆慧 -->
<bean id="dataSourcemssql"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.mssqldriverClassName}" />
<property name="url" value="${jdbc.mssqlurl}" />
<property name="username" value="${jdbc.mssqlusername}" />
<property name="password" value="${jdbc.mssqlpassword}" />
</bean> <!-- 配置Hibernate事务管理器 添加:陆慧 -->
<bean id="transactionManagermssql"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactorymssql" />
</bean>

主配置文件spring-mvc.xml中增加一个 transactionManagermssql

    <context:component-scan base-package="com.farm,com.manor,org.sdkj" />
<!-- 基于注释的事务,当注释中发现@Transactional时,使用id为“transactionManager”的事务管理器 -->
<!-- 如果没有设置transaction-manager的值,则spring以缺省默认的事务管理器来处理事务,默认事务管理器为第一个加载的事务管理器 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!--这个事务由陆慧添加,当多个事务时,注解可以有value参数,默认不写就是上面叫 transactionManager的管理器,其他的都写一个@Transactional("transactionManagermssql")-->
<tx:annotation-driven transaction-manager="transactionManagermssql" />

6.新建DAO层

注意点:

1. 类注解 @Repository ,表示此类被spring 接管

2. @Resource如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。

    @Resource(name = "sessionFactorymssql")
private SessionFactory sessionFactorymssql;

3. 所有的方法写上: @Transactional(value="transactionManagermssql")  表示方法外面包一层事物。

@Transactional 写在Controller层调用的那个层上。这个层可以是Service层,也可以是Dao层。只是人为规定的而已,没有这个东东反正会报错。

一般情况下,写在Service层。因为Dao层是单个方法。Service层是Dao层方法的组合使用。Service层是需要事务的。

7 wcp-web的pom.xml中加一个依赖:

        <dependency>
<groupId>com.farm</groupId>
<artifactId>wcp-tpmember</artifactId>
<version>${wcp.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>

注意exclusion的东东,因为和tomcat下的lib包有重复,所以必须去除包含

【原创】Hibernate自动生成(2)的更多相关文章

  1. 【原创】Hibernate自动生成(1)

    本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正. 开发环境: Eclipse Version: Photon ...

  2. hibernate自动生成映射文件

    映射文件是O/R Mapping的关键,相当于控制中心.当数据库表较多时,手动配置该映射文件非常耗时.为了快速开发程序,使开发人员的注意力集中到业务逻辑上来,Hibernate官方提供的MiddleG ...

  3. Hibernate自动生成实体类注解(转)

    常用的hibernate annotation标签如下: @Entity --注释声明该类为持久类.将一个Javabean类声明为一 个实体的数据库表映射类,最好实现序列化.此时,默认情况下,所有的类 ...

  4. intellij配置hibernate自动生成hbm.xml文件

    1.首先创建一个Java web项目,这里因为已经在整个项目中配置好tomcat了,所以我是直接创建module的,其实和创建project的配置方法一样,创建的时候选择Web Application ...

  5. MyEclipse 2015 如何使项目能够使用 Hibernate自动生成文件

    在MyEclipse-Project facets 下 对hibernate这一栏打钩即可

  6. Hibernate 自动生成数据库表

    http://blog.csdn.net/u010096526/article/details/50533428

  7. hibernate自动生成时报错问题

    创建好了实体类和.hbm.xml文件,运行项目报上错: 实体类和xml文件中的字段要一致.(顺序和字段)

  8. hibernate如何配置自动生成表

    hibernate自动生成表有两种方法: 1.直接写代码,通过方法来创建数据库表. 2.通过 hibernate.cfg.xml配置标签来创建数据表. 下面依次实现: 1.直接写代码,通过方法来创建数 ...

  9. python 自动生成C++代码 (代码生成器)

    python 代码自动生成的方法 (代码生成器) 遇到的问题 工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错:而借用pyth ...

随机推荐

  1. apache 的rewrite函数配置伪静态

    配置伪静态目的:对于访问比较长的uri,利于网站搜索工具更容易记住,换句话利于SEO 在配置文件中添加或找到 <IfModule mod_rewrite.c> </IfModule& ...

  2. ylb:事务

    ylbtech_sqlserver create database bank go use bank go create table users ( uid ,), uname ) not null, ...

  3. ES翻译之Function Score Query

    Function Score Query 原文链接 function_score允许你修改通过查询获取文档的分数,很有用处,score function是计算昂贵的,以及在过滤一系列文档上计算分数是高 ...

  4. jquery给多个span赋值

    因为我想在页面载入完毕后,有几个地方显示当前时间,所以我须要给多个span赋值. span代码的写法例如以下: <span name="currentDate">< ...

  5. 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_字符串

    一般声明字符串都会加一个长度的限制,比如A:STRING(80);至于真实的字符串长度不要超过这个限制即可   在测试中,我演示了两个字符串的方法,CONCAT字符串拼接和REPLACE字符串替换.拼 ...

  6. quick-cocos2d-x教程9:实例之加上背景图片

    在梳理完quick-cocos2d-x框架的各个文件夹后,我们開始我们的实例教程,在helloworld后面.加上一张图片,lua编辑器,我用的lua editor.还不错. 我们首先还是參照教程.创 ...

  7. swift 可变參数

    func sumof(numbers:Int...)->Int{  var sum = 0;  for number in numbers{   sum+=number;  }  return ...

  8. xpinyin-函数返回多个值-lambda匿名函数-列表生成式-三元表达式

    import xpinyinp=xpinyin.Pinyin() #实例化print(p.get_pinyin('小白','')) 函数返回多个值:1.函数如果返回多个值的话,它会把这几个值放到一个元 ...

  9. 【转】GitHub入门详细讲解

    第一:请登录https://windows.github.com/ 下载您需要的安装软件,进行安装.安装后桌面有:GitHub 和 Git Shell 第二: 申请一个帐号https://github ...

  10. trac 的安装设置

    Trac的安装设置 原网页:http://wiki.ubuntu.org.cn/Trac%E7%9A%84%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE 出自Ubuntu中文 ...