85-002-2 搭建Hibernate开发环境
来源:互联网 发布:三级域名 新网 编辑:程序博客网 时间:2024/06/05 07:59
图文版:http://note.youdao.com/yws/public/redirect/share?id=abc20790e48da5130e227d9390e4df92&type=false
资源文件下载 https://yunpan.cn/OcRaTMHR3NWIIf 访问密码 4b2c
资源文件下载 https://yunpan.cn/OcRaTMHR3NWIIf 访问密码 4b2c
2.1 定义配置文件,同样的通过buildpath来配备相关的jar包 hibernateX.XX.jar(在一般的公司里面,jar包一般不需要你配置,他们都会放到maven伺服里面);
因为要牵扯到逆向工程(也就是通过数据表生成POJO类),所以需要进行相关设置:
首先建立一个mysql数据库的连接,建立DB browser的连接
在buildpath中的userLib里面添加hibernate的jar包之后,然后在此项目中添加hibernate的配置文件,通过下图的向导完成;
在配置向导中注意图中的两个选项要勾上 ;
因为之前已经建立了Database driver了,所以这里直接选择就可以了;
之前已经通过buildpath配置了自己提供的jar包,所以这里也不需要选了;
以上的配置步骤完成后最终目的只是要生成所需要的HibernateSessionFactory和hibernate.cfg.xml文件,这些数据专门保存在hibernate.cfg.xml文件中:
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/shop</property>
<property name="connection.username">zz</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="myeclipse.connection.profile">mysql</property>
</session-factory>
</hibernate-configuration>
通过buildpath添加Mysql驱动包 ;
2. 逆向生成modal和ORM映射文件;
首先创建一个数据库脚本
类别表.sql
直接在利用myEclipse工具执行sql语句
DROP DATABASE IF EXISTS shop ;
CREATE DATABASE shop DEFAULT CHARACTER SET utf8 ;
USE shop ;
DROP TABLE IF EXISTS category ;
CREATE TABLE category(
id INT NOT NULL AUTO_INCREMENT,
type VARCHAR(20) , -- 类别名称
hot BOOL DEFAULT false ,
PRIMARY KEY(id)
) ;
生成表之后,通过逆向工程--通过表生成modal和映射文件 ;
完成以上步骤之后,通过此逆向过程,工具自动生成pojo类Category.java以及 ORM的配置文件Category.hbm.xml,
同时工具自动在hibernate总配置文件hibernate.cfg.xml生成一个节点
3. 以上步骤只是搭建了hibernate环境,但是还没有整合hibernate与spring ;
<mapping resource="cn/it/shop/modal/Category.hbm.xml" />
建立一个service接口,放到cn.it.shop.service包中,用来测试hibernate ;
建立一个实现上述接口的service,放到cn.it.shop.service.impl包中,用来测试hibernate
package cn.it.shop.service;
import cn.it.shop.modal.Category;
public interface CategoryService {
public void save(Category category) ;
}
public class CategoryServiceImpl implements CategoryService {
public void save(Category category) {
// 通过工具类HibernateSessionFactory获取session
Session session = HibernateSessionFactory.getSession();
try{
//手动来设置事务提交getTransaction的意思即为手动获得事务权
session.getTransaction().begin();
//执行业务逻辑
session.save(category) ;
//执行手动提交
session.getTransaction().commit();
}catch(Exception e){
//只要出现了异常,就让事务回滚
session.getTransaction().rollback();
throw new RuntimeException(e) ;
}finally{
//末后手动释放资源
HibernateSessionFactory.closeSession();
}
}
}
为此实现类建立一个配置文档applicationContext-service.xml<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<!-- 因为hibernate还没有与spring发生整合,就没有注入的方式,所以需要再配置文件中搞一个bean的方式来生成对象。 -->
<!-- 也因为没有与spring整合,没有注入依赖所以还可在SSHTest类中直接new一个对象,此时配置文件中的bean也就可以免掉了。 -->
<!-- <bean id="categoryService" class="cn.it.shop.service.categoryServiceImpl">
</bean> -->
</beans>
注意如果因为之前工具配置问题出现了applicationContext-public.xml文件中有其他bean节点时,请删除,只保留Date的bean节点<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean id="date" class="java.util.Date"/>
</beans>
然后开始进行测试,直接在之前的SSHTest.java中进行代码编写@Test
//测试hibernate的开发环境,因为还没有进行框架整合,
//此时还不能利用@Resource的依赖注入,可以直接new 一个对象 ,如果new的话就不需要
//配置xml文档
public void hibernate(){
CategoryService categoryService = new CategoryServiceImpl() ;
categoryService.save(new Category("老人休闲",true)) ;
}
如果一开始测试会出现异常: No CurrentSessionContext configured 请在hibernate.cfg.xml文件中加入一句:
<property name="current_session_context_class">thread</property>
并且把J2EE 6改为版本J2EE 5就能通过JUnit测试了 ; 4.以上的测试,通过创建一个service,然后在里面new一个对象在通过hibernate存入数据库中 ,在J2EE6中如果出现
Unable to get the default Bean Validation Factory。解决办法是删除掉J2EE6类库中的jar包bean-validator.jar或者直接用J2EE5的版本或者是在配置文件中加入一个元素 ;
hibernate.cfg.xml
<property name="javax.persistence.validation.mode">none</property>
小结:
hibernate中每个session在一创建完毕,就会放到当前的线程中去,所以要取的session直接在threadLocal中get()取得 ;
在hibernate中逆向工程的定义:通过表生成映射文件和modal ;
0 0
- 85-002-2 搭建Hibernate开发环境
- 搭建hibernate开发环境
- 搭建Hibernate开发环境
- Hibernate开发环境搭建
- hibernate开发环境搭建
- 【搭建hibernate开发环境】
- 搭建Hibernate 开发环境
- Struts 2 + Hibernate 开发环境搭建
- Hibernate基本开发环境搭建
- Hibernate-开发环境搭建(1)
- Hibernate开发环境的搭建
- hibernate 框架开发环境搭建
- 【Hibernate】搭建一个Hibernate环境,开发步骤
- Hibernate环境搭建2
- 搭建springMvc+spring+hibernate+maven开发环境002
- Eclipse下搭建struts、spring、hibernate开发环境 搭建环境
- spring+hibernate+struts2搭建开发环境
- spring+hibernate+struts2搭建开发环境
- 百度地图获取发布版SHA1
- 一致性哈希算法
- NodeJS、NPM安装配置步骤(windows版本) 以及环境变量
- 使用jquery.qrcode生成二维码及常见问题解决方案
- linux 统计目录下所有文件数量
- 85-002-2 搭建Hibernate开发环境
- java本地化 国际化
- 最省最小最牛软件推荐(每日更新)
- AfxBeginThread创建线程并指定优先级
- MySQL 时间条件查询
- unity3d导出pdf
- Hadoop学习笔记(2)----命令归总
- "围观"设计模式(24)--行为型之访问者模式(Visitor Pattern)
- 85-002-3 spring与hibernate的整合(采用AOP来管理事务实现声明式事务)