`
ll_feng
  • 浏览: 389917 次
  • 性别: 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
分享到:
评论

相关推荐

    maven(springmvc+spring+hibernate)

    SSH整合指的是Spring、Struts和Hibernate这三大Java开源框架的集成应用。这三大框架分别负责控制层、视图层和持久层,它们的结合能够构建出功能强大的企业级Web应用程序。 Spring框架是整个SSH整合的核心,它提供了...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门012

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的开源框架和技术,它们在构建高效、可维护的企业级应用程序方面发挥着关键作用。本篇将详细介绍这些技术及其整合入门的知识点。 **Struts2** 是...

    maven整合spring+hibernate+struts2

    本项目“maven整合spring+hibernate+struts2”就是一个典型的Java Web开发模式,它利用Maven作为项目管理工具,Spring作为核心框架,Hibernate作为持久层解决方案,Struts2作为表现层控制器。以下将详细阐述这些技术...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频002

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的技术栈,它们各自在应用开发中扮演着重要的角色。这个视频教程应该是针对初学者,旨在介绍如何将这些技术整合到一起,构建一个完整的Web应用程序...

    ssi(struts+spring+maven+mybatis)整合

    **SSI(Struts + Spring + Maven + MyBatis)整合详解** 在现代Java Web开发中,集成多种框架来实现高效、灵活的应用程序架构是常见的做法。`SSI`整合,即Struts、Spring、Maven和MyBatis的组合,旨在提供一个强大...

    图书管理系统spring+struts+hibernate

    《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...

    Struts2+Spring3+Hibernate4+Maven+EasyUI

    Struts2负责请求分发和业务逻辑,Spring3处理依赖管理和事务控制,Hibernate4管理数据库操作,Maven确保项目的构建过程,而EasyUI则提供了用户友好的前端展示。这样的组合在大型企业级应用中非常常见,因为它提供了...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    1. 配置环境:确保项目中引入了Struts2、Spring和Hibernate的相应库,这通常通过Maven或Gradle等构建工具完成。 2. 配置Spring:创建Spring的配置文件(如`applicationContext.xml`),定义Bean并设置其依赖。例如...

    idea14+maven+struts+spring+mybatis框架

    标题 "idea14+maven+struts+spring+mybatis框架" 描述的是一个使用IntelliJ IDEA 14集成开发环境,结合Maven构建工具,以及SSH(Struts、Spring、Hibernate)经典企业级开发框架,并融入MyBatis持久层框架的项目。...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    标题 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发" 指向的是一个关于如何在集成开发环境Eclipse与MyEclipse中搭建Struts、Spring和Hibernate(SSH)框架的教程。SSH是Java Web开发中常用的一个...

    Struts2.3.28+spring4.1.6+hibernate4.3.8整合总结(注解)

    Struts2.3.28、Spring4.1.6和Hibernate4.3.8是三个经典的Java EE框架,它们的整合是企业级应用开发中常见的技术栈,通常被称为S2SH。在这个版本的整合中,注解的使用极大地简化了配置过程,使得开发更加高效。以下是...

    maven+struts2+hibernate3+spring+eclipse项目

    该项目是一个经典的Java Web开发组合,使用了Maven作为构建工具,Struts2作为表现层框架,Hibernate3作为持久层框架,Spring3作为依赖注入和事务管理框架,且基于Eclipse IDE进行开发。以下是对这些技术栈的详细说明...

    Maven下搭建Struts2+spring+hibernate框架

    在完成上述配置后,开发者可以创建Action类(Struts2的控制器),Service层(Spring的业务逻辑),DAO层(数据访问对象,使用Hibernate进行数据库操作),以及相应的视图(JSP页面)。通过Maven的生命周期管理,可以...

    SSH整合 struts+spring3.1+hibernate3

    SSH整合,即Struts、Spring和Hibernate三大框架的集成,是Java Web开发中常见的技术栈。这个整合项目中包括了MySQL数据库的相关驱动,意味着它将使用MySQL作为后端数据存储。接下来,我们将深入探讨SSH整合的关键...

    Eclipse+Struts+Spring+Hibernate+Mysql环境搭建及访问数据库实例

    在IT行业中,开发Java Web应用时常常会使用到一套名为SSH2(Struts2、Spring、Hibernate)的技术栈,这是一套成熟的后端框架组合,能够有效地帮助开发者构建高效、可维护的应用程序。本教程将详细讲解如何在Eclipse...

    maven+spring3+struts2+hibernate4+mybatis3整合

    这五者的整合使得开发者能够利用Maven管理依赖,Spring3作为核心容器进行服务注入和事务管理,Struts2处理Web请求,Hibernate4和MyBatis3则负责数据持久化。这样的组合提供了从依赖管理到数据库操作的完整解决方案,...

    框架struts2.3.4+spring3.12+hibernate4.1.7+maven整合

    总结来说,"框架struts2.3.4+spring3.12+hibernate4.1.7+maven整合"项目展示了如何利用Maven构建一个包含Struts2、Spring和Hibernate的Java Web应用。这个整合涉及到多层架构的设计,依赖注入的实现,以及数据库操作...

    Maven项目ssh Struts2+hibernate+Spring+maven框架.zip

    在"SSH Struts2+hibernate+Spring+maven框架.zip"这个项目中,开发者可以通过Maven构建系统来管理项目依赖,使用Struts2处理HTTP请求和展现逻辑,Hibernate进行数据持久化,而Spring则负责组件的管理和事务控制。...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频006

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的开源框架和技术,它们在构建高效、可维护的Web应用程序时发挥着关键作用。本视频教程"Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频006...

    整合Struts2+spring+hibernate

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责Web应用的不同层面:Struts2专注于表现层,Spring则是一个全面的框架,涵盖了依赖注入、事务管理、AOP(面向切面编程)等多个方面,而Hibernate...

Global site tag (gtag.js) - Google Analytics