什么是hibernate
首先看一下百度百科对hibernate的描述:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
这个项目使用hibernate也是用来为安卓端和web端提供数据库访问的,所以一步一步来上手,先从第一个例子开始。
hibernate例子
在第一个例子之前先介绍一下我使用的编译器,为Intellij IDEA,其中自动集成了hibernate和junit的jar包,使用eclipse的小伙伴们要自行装tools了。
第一步:先创建一个新项目
这时要选中web application、Hibernage和自动创建配置文件这三个选项,下一步、下一步……连接数据库的jar包请自行导入。。
第二步:修改hibernate的配置文件
项目创建完成后会自动创建这个配置文件,下面我们要修改配置文件了。
不同的数据库配置信息会略有差别,这里我用的mysql
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://localhost:3306/sh_books</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 配置hibernate的基本信息 -->
<!-- 配置数据库方言dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 指定自动生成数据表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- DB schema will be updated if needed -->
<!-- <property name="hbm2ddl.auto">update</property> -->
</session-factory>
</hibernate-configuration>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
第三步:创建对象-关系映射文件
这个嘛,来咱们先连接一下数据库
先点击IDEA左下角的小家伙,这时IDEA最右边就会出现一列工具栏,点击database,来连接我们的数据库。
这时候数据库已经成功连接上了,能看到数据库的信息。
接下来通过persistence创建映射文件。
点击IDEA最左边一栏的persistence,右键点击demo
这时IDEA就非常智能的帮我们创建了java文件和xml文件
第四步:编写相应测试类
import com.hibernate.demo.MajorEntity;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
/**
* Created by violet on 2016/3/10.
*/
public class majorTest {
private SessionFactory sessionFactory;
private Session session;
private Transaction transaction;
@Test
public void test(){
System.out.println("test....");
//1. 创建配置对象
Configuration config = new Configuration().configure();
//2. 创建服务注册对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
//3. 创建会话工厂对象
sessionFactory = config.buildSessionFactory(serviceRegistry);
//4. 会话对象
session = sessionFactory.openSession();
//5. 开启事务
transaction = session.beginTransaction();
//6. 生成专业对象
MajorEntity majorEntity = new MajorEntity("XXXX", "XXXX", 3);
//7. 保存对象进入数据库
session.save(majorEntity);
//8. 提交事务
transaction.commit();
//9. 关闭会话
session.close();
//10. 关闭会话工厂
sessionFactory.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
这时候别忘记hibernate的配置文件要更新,其实刚才产生关系映射文件的时候可以选择更新xml文件来着,给忘了。
好,这时候我们跑一下,发现运行成功,这时候log文件显示是这样的
再看一下数据库,完美的插入了一条新的数据,这就是用intellij创建第一个hibernate例子的过程,要继续学习啦!