1. 在IntelliJ中新建maven项目

给出一个建好的示例

2. 在pom.xml中配置依赖

包括:
spring-context
spring-orm
hibernate-core
mysql
commons-dbcp

3. resources右键new一个Xml Configuration File--Spring Config配置文件:spring-config.xml(或者applicationContext.xml)

    配置dataSource、sessionFactory及transactionManager。

    可能会提示一个Application Context的什么配置,按提示操作即可;或者在IntelliJ工具的Project Structure下的Facets中进行spring的配置。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--自动扫描指定包及其子包下的所有Bean类-->
<context:component-scan base-package="com.test.app.dao.impl"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/javaee"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="annotatedClasses">
<list>
<value>com.test.app.domain.User</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
<!--hibernate.format_sql=true-->
</value>
</property>
</bean> <!--配置hibernate事务管理器-->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!--根据Annotation来生成事务代理-->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

4. 新建User实体类,并进行Annotation注解

@Entity    //把当前bean设置成实体对象
@Table(name = "user") //设置数据库的表名,默认为类名首字母小写
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY) //id生成策略:自增
@Column(name = "user_id")
private int id;
@Column
private String name;
@Column
private int age;
//省略setter和getter方法
}

5. 新建UserDao接口及其实现类UserDaoImpl,并进行Annotation注解

public interface UserDao {
Integer insert(User user);
void delete(User user);
void update(User user);
User find(int id);
}

UserDaoImpl实现类代码如下:

//指定该类作为Spring Bean,实例名为userDao。默认为Bean类的首字母小写
@Repository("userDao") //标注一个DAO组建类
@Transactional
public class UserDaoImpl implements UserDao {
@Autowired //自动装配 或者用@Resource(name = "sessionFactory")配置依赖
private SessionFactory sessionFactory; @Override
public Integer insert(User user) {
return (Integer) sessionFactory.getCurrentSession().save(user);
} @Override
public void delete(User user) {
sessionFactory.getCurrentSession().delete(user);
} @Override
public void update(User user) {
sessionFactory.getCurrentSession().update(user);
} @Override
public User find(int id) {
return (User) sessionFactory.getCurrentSession().get(User.class, id);
}
}

使用@Repository注解需要在Spring的配置文件中指定搜索路径,如下:

<context:component-scan base-package="com.test.app.dao.impl"/>

使用@Transactional注解需要在Spring配置文件中增加如下配置片段

<!--配置hibernate事务管理器-->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!--根据Annotation来生成事务代理-->
<tx:annotation-driven transaction-manager="transactionManager"/>

6. 新建测试类MainTest

public class MainTest {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");
UserDao userDao = (UserDao) applicationContext.getBean("userDao"); User user = new User();
user.setName("zhangsan");
user.setAge(23); userDao.insert(user);
}
}

在此,推荐使用junit测试类进行测试,下面进行简要介绍

1. 添加依赖

在pom.xml中添加junit和spring-test依赖,如下:

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>

2. 创建测试类

UserDaoImpl——Alt+Enter——Create Test,将自动新建一个UserDapImplTest测试类

3. 配置测试类

在类名上方添加如下内容,用于配置Spring配置文件的位置

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config.xml")

4. 执行测试类

类名:右键——Run,执行所有方法

方法名:右键——Run,执行当前方法

5. 示例代码

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config.xml")
public class UserDaoImplTest {
@Resource
private UserDao userDao; @Test
public void testInsert() throws Exception {
//省略...
} @Test
public void testDelete() throws Exception {
//省略...
} @Test
public void testUpdate() throws Exception {
User user = userDao.find(2);
user.setAge(20);
userDao.update(user);
} @Test
public void testFind() throws Exception {
User user = userDao.find(2);
System.out.println(user.getName());
}
}

Spring4.2.3+Hibernate4.3.11整合( IntelliJ maven项目)(使用Annotation注解)(Junit测试类)的更多相关文章

  1. Spring4.2.3+Hibernate4.3.11整合( IntelliJ maven项目)

    1. 在IntelliJ中新建maven项目 给出一个建好的示例 2. 在pom.xml中配置依赖 包括: spring-context spring-orm hibernate-core mysql ...

  2. (转)Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发

    http://blog.csdn.net/yerenyuan_pku/article/details/52902851 前面我们已经学会了Spring4.2.5+Hibernate4.3.11+Str ...

  3. (转)Spring4.2.5+Hibernate4.3.11组合开发

    http://blog.csdn.net/yerenyuan_pku/article/details/52887573 搭建和配置Spring与Hibernate整合的环境 今天我们来学习Spring ...

  4. spring mvc4.1.6 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明

    一.准备工作 开始之前,先参考上一篇: struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 struts2.3 ...

  5. (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案二

    http://blog.csdn.net/yerenyuan_pku/article/details/52894958 前面我们已经集成了Spring4.2.5+Hibernate4.3.11+Str ...

  6. (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一

    http://blog.csdn.net/yerenyuan_pku/article/details/52888808 前面我们已经集成了Spring4.2.5+Hibernate4.3.11这两个框 ...

  7. Spring Data Jpa示例(IntelliJ maven项目)

    1. 在IntelliJ中新建maven项目 给出一个建好的示例,(本示例中省略了业务逻辑组件UserService) 2. 在pom.xml中配置依赖 包括: spring-context spri ...

  8. 高并发秒杀系统--junit测试类与SpringIoc容器的整合

    1.原理是在Junit启动时加载SpringIoC容器 2.SpringIoC容器要根据Spring的配置文件加载 [示例代码] package org.azcode.dao; import org. ...

  9. struts2.3.24 + spring4.1.6 + hibernate4.3.11+ mysql5.5.25开发环境搭建及相关说明

    一.目标 1.搭建传统的ssh开发环境,并成功运行(插入.查询) 2.了解c3p0连接池相关配置 3.了解验证hibernate的二级缓存,并验证 4.了解spring事物配置,并验证 5.了解spr ...

随机推荐

  1. python爬取网站数据保存使用的方法

    这篇文章主要介绍了使用Python从网上爬取特定属性数据保存的方法,其中解决了编码问题和如何使用正则匹配数据的方法,详情看下文     编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这 ...

  2. (转)java enum枚举

    转载自: 原理:http://singleant.iteye.com/blog/686349 应用:http://www.cnblogs.com/happyPawpaw/archive/2013/04 ...

  3. jQuery实现的浮动层div浏览器居中显示效果

    本文实例讲述了jQuery实现的浮动层div浏览器居中显示效果.分享给大家供大家参考,具体如下: 1.在页面的head中引入jQuery <script type="text/java ...

  4. PatternSyntaxException:Syntax error in regexp pattern

    Caused by: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1:      ...

  5. bzoj2656

    题目链接:传送门 题目大意:已知 a0=0:a1=1: n为偶数 an=a(n/2):n为基数 an=a(n/2)+a(n/2+1): 题目思路:因为n过大,所以要用java高精度,还有最多20组数据 ...

  6. JavaWeb项目中文乱码问题

    1.从浏览器读数据乱码(post 请求方式) 前提是前端页面是UTF-8编码,因为服务器端默认采用ISO解码,所以乱码,在读取前加上: request.setCharacterEncoding(&qu ...

  7. [LeetCode] Factorial Trailing Zeros

    Well, to compute the number of trailing zeros, we need to first think clear about what will generate ...

  8. CodeForces 663A Rebus

    A. Rebus time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  9. IIS7发布wcf服务遇到的问题

    如果没有上图所列出的asp.net 40,请在cmd中运行:C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i 注:C:\Wi ...

  10. 获取当前日期和农历的js代码

    来自:http://www.cnblogs.com/Gnepner/archive/2011/09/07/2169822.html 获取当前日期 getToday.js: function GetCu ...