maven构建Hibernate项目
1. 构建一个基本的Web项目
这里请参考前面的博客,一样的
2. 添加依赖,修改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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.deppon.demo</groupId>
- <artifactId>test03</artifactId>
- <packaging>war</packaging>
- <version>0.0.1-SNAPSHOT</version>
- <name>test03 Maven Webapp</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>4.10</version>
- <scope>test</scope>
- </dependency>
- <!-- 添加Hibernate依赖 -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>3.6.5.Final</version>
- </dependency>
- <!-- 添加Log4J依赖 -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.16</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.6.1</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-nop</artifactId>
- <version>1.6.4</version>
- </dependency>
- <!-- 添加javassist -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.11.0.GA</version>
- </dependency>
- </dependencies>
- <build>
- <finalName>test03</finalName>
- </build>
- </project>
在保存的时候,Maven会自动从库中各种包下载到本地,如果有异常的话,可以尝试手动下载
3. 添加hibernate.cfg.xml和log4j.properties资源文件
注意,资源文件的话,根据约定,需要放在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://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factory>
- <!-- Database connection settings -->
- <propertyname="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
- <propertyname="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=Demo</property>
- <property name="connection.username">ygy</property>
- <property name="connection.password">shishi</property>
- <property name="javax.persistence.validation.mode">none</property>
- <propertyname="dialect">org.hibernate.dialect.SQLServerDialect</property>
- <property name="current_session_context_class">thread</property>
- <property name="show_sql">true</property>
- <property name="format_sql">true</property>
- <property name="hbm2ddl.auto">update</property>
- <mapping class="com.deppon.test03.entity.PersonEntity"/>
- </session-factory>
- </hibernate-configuration>
log4j.properties
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.Target=System.out
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
- log4j.rootLogger=debug, stdout
- log4j.logger.org.hibernate.tool.hbm2ddl=debug
4. 新建一个实体类,测试一下
PersonEntity.java
- package com.deppon.test03.entity;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.Id;
- import javax.persistence.Table;
- @Entity
- @Table(name = "t_person")
- public class PersonEntity implements java.io.Serializable {
- private static final long serialVersionUID = -4376187124011546736L;
- private Integer id;
- private String name;
- @Id
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- @Column(length = 50 , nullable = false , unique = true)
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Override
- public String toString() {
- return "PersonEntity [id=" + id + ", name=" + name + "]";
- }
- }
HibernateUtil.java
- package com.deppon.test03.util;
- import org.apache.log4j.Logger;
- import org.hibernate.HibernateException;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.cfg.Configuration;
- public class HibernateUtil {
- /** ThreadLocal Session Map */
- public static final ThreadLocal<Session> SESSIONMAP = newThreadLocal<Session>();
- private static final SessionFactory sessionFactory;
- private static final Logger LOGGER = Logger.getLogger(HibernateUtil.class);
- static {
- try {
- LOGGER.debug("HibernateUti.static - loading cofig");
- sessionFactory = new Configuration().configure("hibernate.cfg.xml")
- .buildSessionFactory();
- LOGGER.debug("HibernateUtil.static - end");
- } catch (Throwable ex) {
- ex.printStackTrace();
- LOGGER.error("HibernateUti error : ExceptionInInitializerError");
- throw new ExceptionInInitializerError(ex);
- }
- }
- private HibernateUtil() {
- }
- public static Session getSession() throws HibernateException {
- Session session = SESSIONMAP.get();
- if(session == null) {
- session = sessionFactory.openSession();
- SESSIONMAP.set(session);
- }
- return session;
- }
- public static void closeSession() throws HibernateException {
- Session session = SESSIONMAP.get();
- SESSIONMAP.set(null);
- if(session != null) {
- session.close();
- }
- }
- }
测试类 ModelTest.java
- package com.deppon.test03.model;
- import java.util.List;
- import org.hibernate.Session;
- import org.hibernate.Transaction;
- import org.hibernate.cfg.Configuration;
- import org.hibernate.tool.hbm2ddl.SchemaExport;
- import org.junit.Assert;
- import org.junit.Test;
- import com.deppon.test03.entity.PersonEntity;
- import com.deppon.test03.util.HibernateUtil;
- public class ModelTest {
- @Test
- public void testGetSession() {
- Session session = HibernateUtil.getSession();
- Assert.assertNotNull(session);
- HibernateUtil.closeSession();
- }
- @Test
- public void testExport() {
- new SchemaExport(new Configuration().configure()).create(true , true);
- }
- @Test
- public void testSave() {
- PersonEntity person = new PersonEntity();
- person.setId(100);
- person.setName("路飞");
- Session session = HibernateUtil.getSession();
- Transaction tx = session.beginTransaction();
- session.save(person);
- tx.commit();
- HibernateUtil.closeSession();
- }
- @Test
- public void testQuery() {
- Session session = HibernateUtil.getSession();
- session.beginTransaction();
- @SuppressWarnings("unchecked")
- List<PersonEntity> personList = session.createQuery("select p from PersonEntity p").list();
- for(PersonEntity eachPerson : personList) {
- System.out.println(eachPerson);
- }
- session.getTransaction().commit();
- HibernateUtil.closeSession();
- }
- }
项目结构如下图所示:
对了,注意一下,在上面的pom.xml中,没有看到数据库驱动包,我用的是SQL Server,直接将jar包放到了项目的lib文件夹下,而从网上查的说,使用scope引入本地的包,试了一下,好像不行,等我再试一试。
5. 测试
如果你现在运行JUnit测试的话,是不会成功的,昨天晚上就是这个原因,提示说找不到hibernate.cfg.xml,
后来发现,在target文件夹下,并没有生成class文件,配置文件也没有,这样当然运行不成功
这里需要执行两个命令
使用CMD窗口,进入当前项目的根目录:
第一条命令:输入mvn compile
注意:这里一定要成功啊,即 BUILD SUCCESS
第二条命令:输入mvn test-compile
同样的,这里一定要 BUILD SUCCESS
这样的话,再一次运行测试程序,就可以成功了!
maven构建Hibernate项目相关推荐
- maven(3)------maven构建web项目详细步骤
eclipse集成工具,轻松通过maven构建web项目步骤如下: 一, 右键,new -->project, 进入下一页面 二,选择"Maven Project", 点击下 ...
- 转】用Maven构建Mahout项目
原博文出自于: http://blog.fens.me/hadoop-mahout-maven-eclipse/ 感谢! 用Maven构建Mahout项目 Hadoop家族系列文章,主要介绍Hadoo ...
- 用Maven构建Mahout项目
Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, ...
- Maven构建java项目
本篇文章,我们会教你如何用maven创建一个java项目,学会如何导入到eclipse中,将该java项目打包成一个jar文件并成功执行. 关于maven:它是apache基金会推出的一个项目管理工具 ...
- maven 构建java项目,jdk版本问题
为什么80%的码农都做不了架构师?>>> 使用maven构建Java项目,默认的 jdk 版本是1.5 详情见官方说明:https://maven.apache.org/plu ...
- 设置maven 参数调休_IDEA 使用 Maven构建Spark项目
上一篇讲了普通构建spark项目 这次分享用Maven构建Spark项目,中间遇到了很多坑!其根本原因是Scala 与 Spark的版本不一致! 本次环境: Java1.8 Scala 2.11.8 ...
- 使用Maven构建Java项目
使用Maven构建Java项目 本指南将引导您使用Maven构建一个简单的Java项目. 你会建立什么 您将创建一个提供一天中时间的应用程序,然后使用Maven进行构建. 你需要什么 约15分钟 最喜 ...
- IntelliJ 使用Maven构建Android项目过程
这是我的第一篇博客!对我的意义十分重大!在这篇博客的编写过程就是我在使用Maven构建Android项目中踩过的坑的记录.在此由于本人的水平有限,这篇文章也只能当作经验借鉴而已,希望后来者能够避开这些 ...
- 转】用Maven构建Hadoop项目
原博文出自于: http://blog.fens.me/hadoop-maven-eclipse/ 感谢! 用Maven构建Hadoop项目 Hadoop家族系列文章,主要介绍Hadoop家族产品,常 ...
最新文章
- 使用Express和MongoDB构建简单的CRUD应用程序
- java对象引用出错_上传图片错误:尝试在空对象引用上调用虚拟方法’java.lang.String android.net.Uri.getLastPathSegment()’...
- 工信部拟规定基本功能软件外的预置App均可卸载
- python用户登陆,Python入门基础--用户登陆
- 内存管理-之启动-基于linux3.10
- Linux Server中搭建NAS存储服务(一)
- 在abap中的SQL嵌套
- Android shell脚本自动启动app,关闭app,遇到crash自动停止
- 新一年级家长快查收,小学入学必备物品超强清单!
- python 验证码字符分割
- pytorch用多层感知机实现鸢尾花3分类(亲测可用)
- 明天我们用鼠标吃饭 ---- 乔赢盯上“新新人类”
- mymps蚂蚁分类信息5.8短信接口配置教程
- 阅读中的程序员 —— 第一期推荐书籍:《浪潮之巅》
- 蚂蚁金服春招算法实习岗电话一面总结 2021.4.3
- 《我的兄弟叫顺溜》中的肚包鸡
- 飞鸽传书来解释 HTTPS 机制
- 2022相亲交友婚恋源码支持公众号APP小程序
- BZOJ 3823: 定情信物
- 福尔摩斯探案集(上)
热门文章
- mysql解压版怎么添加服务_Windows系统下MySQL添加到系统服务方法(mysql解压版)
- 运行java黑窗口是什么意思_黑窗口运行java文件步骤
- 树莓派环境处理_一种基于树莓派的便携式的环境监测系统的制作方法
- 源码编译打包_Atlas 2.1.0 实践(1)—— 编译Atlas
- android在java下建立模块,Android Studio:如何在Android模块中包含Java模块?
- echart关系树状图_Echarts关系图-力引导布局
- Tableau中的行级数据安全性——第2部分
- 活在贫困线之下的开源软件项目——开源的可持续性斗争
- .NET中的异步编程 - 动机和单元测试
- c语言返回二叉树的大小,C语言中计算二叉树的宽度的两种方式