MyEclipse中搭建Hibernate环境
前提一:下载好hibernate-release-xxxx.Final,我使用的是hibernate-release-5.0.1.Final,下载地址是:Hibernate官网具体下载步骤见我的另一篇博客: 解压得到如下: 前提二:Hibernate是持久层的框架,那么你的电脑上得有个数据库,或者将来你的程序要能连上一个远程数据库,很重要的一点是:你要清楚你的数据版本是多少,并且准备好相对应的连接驱动jar包,如果jar版本搞错了,这个错误你可能要排一天…… 我的数据库版本: 所以我可以用MySQL-connector-java-5.1.7-bin.jar 一、打开MyEclipse,因为只是单独搭建Hibernate环境,所以可以单纯地见一个Java PRoject,取名随意,我的就叫Hibernate 二、在工程里新建一个文件夹用来放所需jar包,和src同级目录下 三、到hibernate-release-5.0.1.Final文件夹下去拷贝所需jar到lib文件夹下 具体包含哪些jar看自己需求,我的因为包含一个c3p0连接池和需要输出调试日志,所以jar比较多,如下 可以看到,连接数据的jar也在其中,下一步就是选中所有jar,右击BuildPath—>Configur BuildPath,这样jar就准备好了 四、创建实体类
package com.hibernate.beans;public class Student { private Integer id; private String name; private int age; private double score; public Student() { super(); } public Integer getId() { return id; } public Student(String name, int age, double score) { super(); this.name = name; this.age = age; this.score = score; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", age=" + age + ", score=" + score + "]"; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getScore() { return score; } public void setScore(double score) { this.score = score; }}五、编写实体映射文件,映射文件的存放位置与实体所在的包一致,名字格式为:xxxx.hbm.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.hibernate.beans"> <!-- 映射文件的作用 1)类到表的映射 2)属性到字段的映射 --> <class name="Student" table="t_student"> <id name="id" column="t_id"> <!-- 主键生成策略 --> <generator class="native"></generator> </id> <property name="name" column="t_name"></property> <property name="age" column="t_age"></property> <property name="score" column="t_score"></property> </class> </hibernate-mapping>六、编写Hibernate主配置文件,配置文件命名是固定的,必须为:hibernate.cfg.xml,一般放在src根目录下
<?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> <!--DB连接四要素 Ctrl shift C --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.passWord">123456</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 数据源:数据库连接池 --> <property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property> <!-- 当前session的上下文 保证在同一线程中获取到的是同一个session--> <property name="hibernate.current_session_context_class">thread</property> <!-- 自动建表--> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 显示SQL --> <property name="hibernate.show_sql">true</property> <!-- 格式化SQL --> <property name="hibernate.format_sql">true</property> <!-- 加载映射文件 --> <mapping resource="com/hibernate/beans/Student.hbm.xml"/> </session-factory></hibernate-configuration>七、测试是否成功 到此环境已经搭建的差不多了,测试一下环境是否可用,最直接的方式是往数据库中插入一条数据
package com.hibernate.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import com.hibernate.beans.Student;public class TestHibernate { public static void main(String[] args) { /** * 第一步:加载配置 */ Configuration configure = new Configuration().configure(); /** * 第二步:获取sessionFactory */ SessionFactory sessionFactory = configure.buildSessionFactory(); /** * 第三步:获取session对象 */ Session session = sessionFactory.getCurrentSession(); /** * 第四步:开启事务 */ try { session.beginTransaction(); /** * 第五步:执行操作 */ Student student = new Student("李四", 20, 89.9); //执行操作 session.save(student); /** * 第六步:提交事务 */ session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); // 回滚 session.getTransaction().rollback(); } }}结果显示如下: 文中涉及jar包等资源在群:511906138 均有!
新闻热点
疑难解答