`
ll_feng
  • 浏览: 383036 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用maven整合struts+spring+hibernate之二 数据库生成和测试数据

阅读更多
这一步要实现的目标是在执行mvn package时,maven为我们自动创建数据表,并将测试数据添加进去。是不是很实用?你要觉得不所谓,也要以跳过这步。

一、加入ssh支持
就是增加struts、spring、hibernate等的依赖包啦。。不细说了。后面详细说明。

二、配置插件
这一块是最复杂的,先来了解两个插件:

1、hibernate3-maven-plugin插件可实现自动生成数据库schema
hibernate3:hbm2cfgxml: Generates hibernate.cfg.xml
hibernate3:hbm2ddl: Generates database schema.
hibernate3:hbm2doc: Generates HTML documentation for the database schema.
hibernate3:hbm2hbmxml: Generates a set of hbm.xml files
hibernate3:hbm2java: Generates Java classes from set of *.hbm.xml files
hibernate3:schema-export: Creates SQL DDL file and generates the database schema from set of *.hbm.xml files
hibernate3:schema-update: Updates the database schema based on the set of *.hbm.xml files

2、dbunit-maven-plugin,可以实现数据库中数据的导入导出
dbunit:operation: Execute a database operation using an external dataset file.
dbunit:export: Export database tables into a dataset file.
dbunit:compare: Compare a dataset with database.

了解上面两个插件后,就可以用到它们了。怎么用,就是在pom.xml加入以下代码:
<build>
    <finalName>sshExt</finalName>
    <!-- hibernate3-maven-plugin负责生成数据库 -->
    <plugins>
		<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>hibernate3-maven-plugin</artifactId>
        <version>2.1</version>
        <dependencies>
           <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>5.0.5</version>
          </dependency>
        </dependencies>
        <configuration>
          <components>
            <component>
              <name>hbm2ddl</name>
              <implementation>annotationconfiguration</implementation>
            </component>
          </components>
          <componentProperties>
            <drop>true</drop>
            <jdk5>true</jdk5>
            <propertyfile>target/classes/jdbc.properties</propertyfile>
                     </componentProperties>
            <skip>${maven.test.skip}</skip><!--很重要,可以控制是否要在package时重新建表-->
        </configuration>
        <executions>
          <execution>
            <phase>process-test-resources</phase>
            <goals>
               <goal>hbm2ddl</goal>
            </goals>
         </execution>
       </executions>
	  </plugin>
	  
	  <!-- dbunit-maven-plugin负责数据库的导入导出 -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>dbunit-maven-plugin</artifactId>
        <version>1.0-beta-1</version>
        <executions>
          <execution>
            <id>test-compile</id>
            <phase>test-compile</phase>
            <goals>
              <goal>operation</goal>
            </goals>
          </execution>
          <execution>
            <id>test</id>
            <phase>test</phase>
            <goals>
              <goal>operation</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>${jdbc.groupId}</groupId>
            <artifactId>${jdbc.artifactId}</artifactId>
            <version>${jdbc.version}</version>
          </dependency>
        </dependencies>
        <configuration>
          <dataTypeFactoryName>${dbunit.dataTypeFactoryName}</dataTypeFactoryName>
          <driver>${jdbc.driverClassName}</driver>
          <username>${jdbc.username}</username>
          <password>${jdbc.password}</password>
          <url>${jdbc.url}</url>
          <src>src/test/resources/sample-data.xml</src>
          <type>${dbunit.operation.type}</type>
          <skip>${maven.test.skip}</skip><!--很重要,可以控制是否要在package时插入测试数据-->
        </configuration>
      </plugin>
    </plugins>
  </build>


三、配置数据库连接
除了pom.xml文件。还需一个jdbc.properties文件。内容如下:
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.connection.username=root
hibernate.connection.password=
hibernate.connection.url=jdbc:mysql://localhost/test?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8
hibernate.connection.driver_class=com.mysql.jdbc.Driver


四、配置实体,由于我们采用hibernate框架
hibernate.cfg.xml:

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <mapping class="net.apex.framework.model.User"/>
        <!-- <mapping class="net.apex.framework.model.Role"/> -->
    </session-factory>
</hibernate-configuration>


五、配置持久化方案
persistence.xml:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
    <persistence-unit name="ApplicationEntityManager" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <!-- 
        <properties>
			<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
		</properties>
		 -->
    </persistence-unit>
</persistence>

这个文件基本就这样。

六、添加实体对象
User.java:
/**
 * 
 */
package net.apex.framework.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * @author Administrator
 *
 */
@Entity
public class User {
	private Long id;
	private String name;
	/**
	 * @return the id
	 */
	@Id
	@GeneratedValue
	public Long getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * @return the name
	 */
	@Column(name="name")
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	
}


这个实体对象采用annotaion来做持久化映射

七、添加测试数据
sample-data.xml:
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <table name="user">
        <column>id</column>
        <column>name</column>
        <row>
            <value description="id">-1</value>
            <value description="name">user</value>
        </row>
        <row>
            <value description="id">-2</value>
            <value description="name">admin</value>
        </row>
    </table>

</dataset>


以上配置基本实现了。在这个maven工程启动时,会自动创建数据库,并将sample-data.xml中的测试数据插入到数据库中。那么如果数据库通过其它来源已插入了一些不错的数据,怎么将它导入到sample-data.xml中呢。有办法:
mvn dbunit:export -Ddest=sample-data.xml


上面的几个文件的目录是这样的:
src/main/resources/hibernate.cfg.xml
src/main/resources/jdbc.properties
src/main/resources/META-INF/persistence.xml
src/test/resources/sample-data.xml
pom.xml
分享到:
评论

相关推荐

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...

    Maven、Struts2、Spring3、Hibernate4、jetcd、spring动态加载properties

    项目框架是借鉴了使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境 这篇博文中的项目结构; 然后根据工作情况自己测试的一些代码内容如下: ①Struts2+Spring3+Hibernate4的整合开发环境 ②jetcd源码的本地...

    java开发的ssh框架社团管理系统源码Spring+struts2+hibernate3+jsp+mysql+maven

    后端技术:基于Spring+struts2+hibernate3+mysql+maven 数据库:mysql 5.7.16(个人测试使用) jdk版本:1.7(个人测试使用) 开发工具:Myeclipse或Eclipse或idea、jdk1.8、tomcat7、8、9。 注意:该项目只是学习...

    电影后台管理系统,没有使用maven构建项目,使用技术Spring+struts2+Hibernate+easyui.zip

    毕业设计可以包括文献综述、需求分析、方案设计、实施与测试等多个阶段,以确保整个过程的科学性和系统性。 其次,毕业设计的完成通常需要学生具备一定的独立思考和解决问题的能力。在研究过程中,学生可能需要采用...

    JQuery+Struts2+JSON0+Spring+Hibernat+XFire整合实例

    1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...

    基于SSH框架的大红鹰社团管理平台.zip

    后端技术:基于Spring+struts2+hibernate3+mysql+maven 数据库:mysql 5.7.16(个人测试使用) jdk版本:1.7(个人测试使用) 开发工具:Myeclipse或Eclipse或idea、jdk1.8、tomcat7、8、9。

    Spring in Action(第二版 中文高清版).part2

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    Spring in Action(第二版 中文高清版).part1

    16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...

    Spring in Action(第2版)中文版

    16.2协同使用spring和webwork2/struts2 16.3集成spring和tapestry 16.3.1集成spring和tapestry3 16.3.2集成spring和tapestry4 16.4协同使用spring和jsf 16.4.1解析jsf管理的属性 16.4.2解析springbean 16.4.3...

    达内java培训目录

    Spring整合Hibernate、Spring整合Struts,SpringMVC技术。 深入理解Ioc和AOP的基本原理和实现方式;熟练掌握SpringIoc及AOP实现方式;熟练掌握Spring事务管理;熟练掌握Spring与其他组件的整合技术。• 实训项目五:...

    应用级产品开发平台APDPlat.zip

    APDPlat提供了应用容器、多模块架构、代码生成、安装程序、认证授权、备份恢复、数据字典、web service、系统监控、操作审计、统计图、报表、机器绑定、防止破解、数据安全、内置搜索、数据转换、maven支持、WEB...

    SYPRO示例项目源码和EasyUI入门视频教程

    sshe示例程序(struts2+spring3+hibernate4+easyui)(Maven构建) easyui1.2.6整站文件.zip jquery1.7.2中文API修正版.chm jquery.easyui-1.2.5源码未压缩版.rar jquery-easyui-1.2.6.zip JQuery-esqyUI中文-1.2.5API....

    Java学习笔记-个人整理的

    {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{subsection.1.4.2} {1.4.3}\texttt {char}}{24...

    基于JavaEE的快速开发框架

    Tephra中对于Spring的使用仍旧仅局限于IoC和AOP,因为我觉得这哥俩才是Spring最吸引人的地方。 Hibernate是后来又补上的,最早的版本没有是因为第一个版本是为游戏服务器架构的,唯快不破的准则放弃了Hibernate,而...

    大数据培训课程安排.pdf

    主要技术包括:Hibernate、Spring、SpringMVC、log4j slf4j 整合、myBatis、struts2、Shiro 、redis、流程引擎activity, 爬 ⾍技术nutch,lucene,webService CXF、Tomcat集群和热备 、MySQL读写分离 4. 描述如下:...

Global site tag (gtag.js) - Google Analytics