核心是让SessionFactory由Spring管理

1.引入依赖

 <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.0.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.2.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>5.3.2.Final</version>
</dependency>

2.配置 springmvc-config.xml  重点是 dataSource和sessionFactory.

 <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mappingDirectoryLocations" value="classpath:mapping"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.c3p0.min_size">5</prop> <!--在连接池中可用数据库连接的最小数目-->
<prop key="hibernate.c3p0.max_size">30</prop> <!--在连接池中所有数据库连接的最大数目-->
<prop key="hibernate.c3p0.time_out">1800</prop> <!--设定数据库连接的超时时间-->
<prop key="hibernate.c3p0.max_statement">50</prop> <!--可以被缓存的PreparedStatement的最大数目-->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

3.建立 *.hbm.xml和实体类Customer

mapping:Customer.hbm.xml,
model:Customer

以上见  IntelliJ IDEA使用hibernate

4.测试

 package com.ice.service;

 import com.ice.model.Customer;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.stereotype.Component; import javax.annotation.Resource; @Component
public class CustomerService { @Resource
private SessionFactory sessionFactory;
public void save(Customer customer){
Session session=sessionFactory.openSession();
//可以根据情况决定是否用事务
//Transaction tx = session.beginTransaction();
session.save(customer);
//tx.commit();
}
}
 package com.ice.controller;

 import com.ice.model.Customer;
import com.ice.service.CustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @RequestMapping("/")
@Controller
public class HomeController {
@Autowired
private CustomerService customerService; @RequestMapping("/")
@ResponseBody
public String index(){
Customer customer = new Customer();
customer.setId(5);
customer.setName("hello!");
customerService.save(customer);
return "ok";
}
}

最新文章

  1. Java Swing interview
  2. HSV
  3. Java遇见HTML——JSP篇之JSP状态管理
  4. shell test -n -z
  5. SharedPreferences保存用户登录信息
  6. Hibernate的回调与拦截
  7. SaaS系列介绍之三: SaaS的特性与作用
  8. GridView中使用如下button OnClientClick代码会出现解析错误
  9. 24种设计模式--模版方法模式【Template Method Pattern】
  10. 快速构建Windows 8风格应用10-设备方向
  11. loadrunner中的web_convert_param函数
  12. chmod命令相关
  13. linux开启新端口
  14. DAC连接
  15. 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
  16. Scrapy学习篇(一)之框架
  17. Jmeter(二)Jmeter目录介绍
  18. HUAS 2018暑假第一周比赛-题解
  19. ubuntu server 无线网卡的处理
  20. BASIC-29_蓝桥杯_高精度加法

热门文章

  1. [转]&lt;加密算法c#&gt;——— 3DES加密之ECB模式 和 CBC模式
  2. Javascript 5种设计风格
  3. c# 使用队列保存图片
  4. 从零开始的全栈工程师——JS面向对象( 原型 this 继承)
  5. cocos2d-x 学习笔记之 CCMenuItemToggle用法
  6. C++字符分割
  7. uwsgi特性
  8. EJB是什么?
  9. 【Leetcode】【Easy】Remove Duplicates from Sorted List
  10. 启动PyCharm cannot start under Java 1.7 : Java 1.8 or later is required 解决方案