spring入门(五) spring mvc+hibernate
2024-08-26 13:45:53
核心是让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
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";
}
}
最新文章
- Java Swing interview
- HSV
- Java遇见HTML——JSP篇之JSP状态管理
- shell test -n -z
- SharedPreferences保存用户登录信息
- Hibernate的回调与拦截
- SaaS系列介绍之三: SaaS的特性与作用
- GridView中使用如下button OnClientClick代码会出现解析错误
- 24种设计模式--模版方法模式【Template Method Pattern】
- 快速构建Windows 8风格应用10-设备方向
- loadrunner中的web_convert_param函数
- chmod命令相关
- linux开启新端口
- DAC连接
- 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
- Scrapy学习篇(一)之框架
- Jmeter(二)Jmeter目录介绍
- HUAS 2018暑假第一周比赛-题解
- ubuntu server 无线网卡的处理
- BASIC-29_蓝桥杯_高精度加法
热门文章
- [转]<;加密算法c#>;——— 3DES加密之ECB模式 和 CBC模式
- Javascript 5种设计风格
- c# 使用队列保存图片
- 从零开始的全栈工程师——JS面向对象( 原型 this 继承)
- cocos2d-x 学习笔记之 CCMenuItemToggle用法
- C++字符分割
- uwsgi特性
- EJB是什么?
- 【Leetcode】【Easy】Remove Duplicates from Sorted List
- 启动PyCharm cannot start under Java 1.7 : Java 1.8 or later is required 解决方案