maven 构建spring ssh mybatis 配置
详情参与
http://blog.csdn.net/yuguiyang1990/article/details/8811817
前面我们使用Maven构建了Struts2项目,这里我们来试一下Hibernate项目:
ps: 昨天晚上没有整明白,例子也一直有问题,就没有完成博客,早上起来才明白错在哪
这里的例子,大体框架应该是正确的,但是,对于Maven的很多约定都没有掌握,估计包的命名都不是非常好,等以后,理解深刻了再改吧
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 -->
- <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
- <property name="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>
- <property name="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 = new ThreadLocal<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 构建spring ssh mybatis 配置的更多相关文章
- 基于maven进行spring 和mybatis的整合(Myeclpise)
学习日记:基于maven进行spring和mybatis的整合,进行分页查询 什么是maven:maven是一个项目管理工具,使用maven可以自动管理java项目的整个生命周期,包括编译.构建.测试 ...
- 使用maven整合spring+springmvc+mybatis
使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中, ...
- 使用Maven构建Spring Security应用
1.概述 本文将解释如何使用Maven构建Spring Security应用程序.将讨论使用Spring Security依赖项的特定用例.最新的Spring Security版本可以在Maven C ...
- 在eclipse中使用maven构建spring cloud微服务
使用eclipse中使用maven构建spring cloud微服务,springcloud通过maven构建项目.springcloud项目搭建. 工具/原料 eclipse maven spr ...
- spring集成mybatis配置多个数据源,通过aop自动切换
spring集成mybatis,配置多个数据源并自动切换. spring-mybatis.xml如下: <?xml version="1.0" encoding=" ...
- Spring Boot + Mybatis 配置多数据源
Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...
- 使用intellij idea搭建MAVEN+SSM(Spring+SpringMVC+MyBatis)框架
基本概念 使用SSM(Spring,SpringMVC和Mybatis) 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod ...
- IDEA中maven搭建Spring+SpringMVC+mybatis项目
一.介绍 使用IDEA搭建maven web项目,整合框架Spring+SpringMVC+mybatis 项目结构图:
- Eclipse Maven构建Spring MVC项目
工作中项目开发使用Maven管理项目的构建.打包.编译,框架採用的是Spring MVC框架,而且实现了多模块.多项目的管理.自己也简单的參与了架构的设计.对于刚開始学习的人来说,使用Maven构建项 ...
随机推荐
- 编写高质量代码改善C#程序的157个建议
1.使用StringBuilder或者使用string.Format("{0}{1}{2}{3}", a, b, c, d)拼接字符串. 2.使用默认转型方法,比如使用类型内置的P ...
- C#发送邮件源码
介绍 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/IP协议 ...
- xtrabackup之Innobackupex增量备份及恢复
演示增量备份 #启动一个全备 innobackupex \ > --defaults-/my.cnf \ > --host=127.0.0.1 \ > --user=xtrabk \ ...
- .NET设计模式系列文章 from TerryLee
http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html 最初写探索设计模式系列的时候,我只是想把它作为自己学习设计模式的读书笔记来 ...
- 关于iphone消息推送把C#当服务器端来发送
看了苹果消息推送文档,感觉推送很简单的,但是还是按个人习惯把这些简单知识记录下来,在需要时候再查看一下! 在开发之前,要准备以下的资料 1.证书(包括产生证书和调试证书) 2.证书密码 3.唯一标识( ...
- 发布web项目时,忽略指定文件夹或文件
参考:http://blogs.msdn.com/b/webdev/archive/2010/04/22/web-deployment-excluding-files-and-folders-via- ...
- [.NET]程序在线更新,力求通用
@微微一笑 :貌似是我的第一篇博客,在外流浪了很久很久,最终还是驻留在博客园混日子吧. 在线更新,想想自己做过的项目中都有这么一个功能.虽然比较简单,但是功能还是比较重要的.抽点时间写了一个在线更新程 ...
- IE8中JSON.stringify方法对自动转换unicode字符的解决方案
IE8内置了JSON对象,用以处理JSON数据.与标准方法的不同,IE8的JSON.stringify会把utf-8字符转码: var str = "我是程序员" var json ...
- C语言如何 实现 下雪效果
题外话 前言 1.本文主要围绕 如何 在 控制台上 下起 一场 只有自己能看见的雪 2.是个简易跨平台的,主要是C语言 3.动画 采用 1s 40帧, 雪花具有 x轴速度和y轴速度 4.比较简单,可 ...
- 初探oracle删除重复记录,只保留rowid最小的记录
如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种方法,如下只是介绍了两种方法(exist和in两种). 1.首 ...