使用Maven3+Hibernate 3.1+Mysql实现一个简单的模型
使用到的工具:
Eclipse 4.3
Maven 3.1
Hibernate 3.1rc2
MySQL 5.0
具体搭建实现步骤:
1.创建一个数据库为David。
2.在David数据库中创建一个表
DROP TABLE IF EXISTS `stock`;
CREATE TABLE `stock` (
`STOCK_ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`STOCK_CODE` VARCHAR(10) NOT NULL,
`STOCK_NAME` VARCHAR(20) NOT NULL,
PRIMARY KEY (`STOCK_ID`) USING BTREE,
UNIQUE KEY `UNI_STOCK_NAME` (`STOCK_NAME`),
UNIQUE KEY `UNI_STOCK_ID` (`STOCK_CODE`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.在Eclipse中创建一个Maven Project
4.编写POM.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.david.common</groupId>
<artifactId>SpringExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringExample</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.1rc2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
<!-- Hibernate library dependecy start -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<!-- Hibernate library dependecy end -->
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.jolira</groupId>
<artifactId>asm</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies>
</project>
5.
配置Stock.hbm.xml 这个文件要放在src/main/resources/com/david/common/Stock.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.david.common.Stock" table="stock" catalog="david">
<id name="stockId" type="java.lang.Integer">
<column name="STOCK_ID" />
<generator class="identity" />
</id>
<property name="stockCode" type="string">
<column name="STOCK_CODE" length="10" not-null="true" unique="true" />
</property>
<property name="stockName" type="string">
<column name="STOCK_NAME" length="20" not-null="true" unique="true" />
</property>
</class>
</hibernate-mapping>
6.编写Stock实体类
public class Stock implements Serializable {
private static final long serialVersionUID = 1L;
private Integer stockId;
private String stockCode;
private String stockName;
public Stock () {
}
public Stock(String stockCode, String stockName){
this.stockCode = stockCode;
this.stockName = stockName;
}
public Integer getStockId() {
return stockId;
}
public void setStockId(Integer stockId) {
this.stockId = stockId;
}
public String getStockCode() {
return stockCode;
}
public void setStockCode(String stockCode) {
this.stockCode = stockCode;
}
public String getStockName() {
return stockName;
}
public void setStockName(String stockName) {
this.stockName = stockName;
}
public String toString(){
return "[ stockId:"+stockId
+" stockName:"+stockName+" stockCode:"+stockCode+"]";
}
}
7.编写一个简单的Hibernate工具类。用来获取Session等操作
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
public static SessionFactory buildSessionFactory(){
try {
return new Configuration().configure().buildSessionFactory();
} catch (Exception ex) {
System.err.println("Initial SessionFactory creation fails"+ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
public static void shutdown(){
getSessionFactory().close();
}
}
8.
最后编写Hibernate.cfg.xml放在/src/main/resources/hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/david</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<mapping resource="com/david/common/Stock.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
9.写个测试类来验证下配置是否有问题
public class App
{
public static void main( String[] args )
{
System.out.println("Maven +hibernate + Mysql");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Stock stock = new Stock();
stock.setStockCode("47135");
stock.setStockName("GENM");
session.save(stock);
session.getTransaction().commit();
}
}
10.运行发现报错了。报错信息如下:
Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at org.hibernate.impl.SessionFactoryImpl.<clinit>(SessionFactoryImpl.java:362)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1145)
at com.david.utils.HibernateUtil.buildSessionFactory(HibernateUtil.java:16)
at com.david.utils.HibernateUtil.<clinit>(HibernateUtil.java:12)
at com.david.common.App.main(App.java:17)
11.解决这个问题:原来是包的冲突(asm没有引入3.3版本的话,由于maven的依赖传递会自动引入一个1.5.3版本的asmjar包,这个包会跟cglib 2.2版本的包发生冲突。因此要显示的引入一个高版本的asm包)
在pom.xml中显示加入
<dependency>
<groupId>com.jolira</groupId>
<artifactId>asm</artifactId>
<version>3.3.0</version>
</dependency>
12.再次运行就没问题了。
分享到:
相关推荐
通过Maven的pom.xml配置文件,我们可以定义项目的信息、依赖、构建过程等,使得团队协作和持续集成变得更加便捷。 在这个项目中,SSH框架的整合主要涉及以下几个方面: 1. **依赖注入**:Spring 4通过DI管理所有...
总的来说,"Struts2+Hiberante+ajax+Mysql 三级联动"项目展示了如何利用这些技术进行高效的Web开发,特别是在处理多级交互和动态数据展示方面。通过学习和实践这样的项目,开发者可以提升对Java Web开发的理解,尤其...
springMVC+maven+hibernate框架,搭建的过程 可以参考 java进阶(五)------springMVC---springMVC+Hibernate+maven完整搭建运行步骤 http://blog.csdn.net/zzq900503/article/details/49892783
详细讲述通过Struts2+hiberante+Spring+ExtJs实现的实例说明,包括S2SH环境搭建和开发的过程,有详细的开发步骤说明,包括通用基类,事务等关键地方的讲解,图文并茂,适合初中级学习者
Struts2、Hibernate、Spring、ExtJS 和 OA(Office Automation)办公系统的整合是企业级Java应用开发中的常见架构,这个组合通常被称为SSH2E。这是一个强大的框架集合,用于构建高效、可扩展且易于维护的企业级应用...
在这个项目中,Maven 负责管理项目的构建过程,通过POM.xml文件定义项目依赖关系,自动下载所需的库文件,并提供了一套标准化的构建生命周期和插件,使得构建过程更加规范和自动化。 2. Spring:Spring 是一个全面...
开发工具:MyEclipse 6.× 测试平台:windowxp tomcat6.0 mysql 5.0数据库 ...无需配置任何文件、只需在mysql中创建一个空数据库 如:create database test; 注:mysql数据库用户名:root 密码:root
总的来说,"经典struts+hiberante+spring课件"涉及的知识点主要包括Java Web开发中的Struts、Hibernate和Spring三大框架的原理和使用,以及相关的Servlet和JavaBeans概念。学习这些内容,开发者可以构建出高效、可...
在这个DEMO中,Spring2.5.6采用了Annotation注解的方式,使得代码更加简洁,无需XML配置文件,只需在类或方法上添加注解,就可以声明bean和其依赖。Spring还提供了事务管理、AOP(面向切面编程)等功能,增强了应用...
环境:Windows Professional XP, JDK 1.6, Ant 1.7, jboss-4.2.1.GA, MySQL 5.0, 连接池C3P0. 使用步骤: 1....--比纯Hiberante+Spring开发简化得多。 面向人员:熟悉Hibernate、Spring的开发人员
mysql-connector-java-5.1.22-bin.jar是MySQL的JDBC驱动,使得Hibernate可以连接到MySQL数据库执行SQL操作。 Direct Web Remoting (DWR) 是一种JavaScript到Java的反向Ajax库,允许浏览器与服务器进行实时通信。dwr...
毕业设计,基于SSH2+MySql+Bootstrap开发的快递寄件仓库物流配送管理系统,内含Java完整源代码,数据库脚本 JSP基于SSH2快递寄件仓库物流配送管理系统设计毕业源码案例设计 开发软件:Eclipse或者Idea 数据库: ...
1. **struts2** 目录:Struts2的配置文件如struts.xml,Action类和相关的JSP页面。 2. **spring** 目录:Spring的配置文件如beans.xml,Spring MVC的DispatcherServlet配置,以及Service和DAO层的类。 3. **...
在 XML 配置文件中,我们可以声明 Spring MVC 的 DispatcherServlet,它是整个 Web 应用的入口点,负责接收请求并分发到相应的处理器。同时,我们还需要配置 ViewResolver,它解析视图,例如 JSP 页面。 接下来,...
1、springmvc3.2.5+hiberante4.2.0+spring3.2.5+maven-3.0.4+jasperreport5.5.1 + ireport4.5.1 2、请导入 WEB-INFO/doc/test.sql 3、直接访问http://localhost:8080/express/hello
3. Annotation配置:除了XML,Hibernate也支持注解配置。通过在实体类上使用@Entity、@Table、@Id等注解,可以声明对象的数据库映射信息,简化配置。 4. 缓存配置:Hibernate提供了一级缓存和二级缓存,一级缓存是...
在使用Hibernate3.jar之前,开发者需要创建一个配置文件(通常命名为hibernate.cfg.xml),配置包括数据库连接信息、实体类映射等。此外,还需要为每个Java实体类创建一个对应的.hbm.xml映射文件,定义对象与表之间...
2. JSON与Ajax:由于XML在实际应用中的复杂性,JSON(JavaScript Object Notation)已成为Ajax传输数据的首选格式。书中会介绍JSON的语法,以及如何在Ajax请求中使用JSON。 3. Ajax库与框架:虽然原生的...
"疯狂Ajax讲义5+Spring+hiberante" 这个标题和描述暗示了我们即将探讨的主题是关于Web开发中的三个关键技术和框架:Ajax、Spring和Hibernate。Ajax(Asynchronous JavaScript and XML)是一种用于创建动态网页的技术...
一、Hibernate核心配置文件(hibernate.cfg.xml) 在Hibernate应用中,`hibernate.cfg.xml` 是核心配置文件,它包含了连接数据库所需的全部信息,如数据库URL、用户名、密码、驱动类等。以下是一份基本配置示例: ...