夜光带你走进Hibernate(一)

版权声明:Genius https://blog.csdn.net/weixin_41987706/article/details/89235144

夜光序言:

 

 

用力的喜欢想换来的不过是车水马龙中的回眸一瞥。

 

正文:夜光: Hibernate框架

ORM 规则

ORM,  Object Relation Mapping 对象关系映射

目标:

通过orm(对象关系映射), 可以做到:

a. 不写sql,包对象直接保存到数据库中

b. 不写sql, 从数据库中读取,直接获取的是封装好的对象

 

ORM是一种思想,或者说是一种规则的定义, 基于orm的应用:

1. hibernate 框架

2. mybatis 框架

3. 自定义一套程序

 

Hibernate框架

概念

基于ORM的持久层框架,对jdbc操作进行了封装

Hibernate与具体数据库无关的技术,即可以框数据库平台

 

 

Hibernate开发环境搭建

Hibernate版本: 3.6版本

 

整体步骤:

1. 下载源码,引入jar文件

2. 写配置

* hibernate.cfg.xml  主配置

* Users.hbm.xml    映射配置

3. Api

Configuration   

SessionFactory

Transaction

Session

Query

 

 

步骤实现:

1. 建库、建表

-- 删除数据库

DROP DATABASE hib_demo;

 

-- 创建数据库

CREATE DATABASE hib_demo DEFAULT CHARACTER SET utf8;

 

-- 建表

CREATE TABLE users(

   id INT PRIMARY KEY AUTO_INCREMENT,

   NAME VARCHAR(20),

   age INT

)

2. 引入hibernate核心jar文件

源码中:

hibernate3.jar   +   required 目录中所有  + jpa  + 数据库驱动包

 

antlr-2.7.6.jar

commons-collections-3.1.jar

dom4j-1.6.1.jar

hibernate-jpa-2.0-api-1.0.0.Final.jar

hibernate3.jar

javassist-3.12.0.GA.jar

jta-1.1.jar

mysql-connector-java-5.1.12-bin.jar

slf4j-api-1.6.1.jar

 

3. 主配置文件:  hibernate.cfg.xml

<!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>

     <!-- 数据库连接的参数配置 -->

     <property name="hibernate.connection.url">jdbc:mysql:///hib_demo</property>

     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

     <property name="hibernate.connection.username">root</property>

     <property name="hibernate.connection.password">root</property>

     <!-- 通过数据库方言,告诉hibernate如何生产sqlhibernate会根据配置的方言,生产符合当前数据库语言的SQL语句 -->

     <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

    </session-factory>

</hibernate-configuration>

4.  javabean/ 映射文件

<?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">

 

<!--

通过XML映射,把对象映射到数据库的表中

 -->

<hibernate-mapping package="cn.Genius.a_config">

 

<class name="Users" table="users">

<id name="userId" column="id">

<generator class="native"></generator>

</id>

<property name="userName" column="name"></property>

<property name="age" column="age"></property>

</class>

 

</hibernate-mapping>

 

 

5.  App

 

// 测试类

public class App {

 

@Test

// 保存

public void testSave() throws Exception {

 

// 对象

Users users = new Users();

users.setUserName("Genius");

users.setAge(100);

 

// 1. 创建配置管理器对象

Configuration config = new Configuration();

// 2. 加载主配置文件, 默认加载src/hibernate.cfg.xml

config.configure();

// 3. 根据加载的主配置文件,创建对象

SessionFactory sf = config.buildSessionFactory();

// 4. 创建Session对象

Session session = sf.openSession();

// 5. 开启事务

Transaction tx = session.beginTransaction();

 

// --- 保存

session.save(users);

 

// 6. 提交事务/关闭session

tx.commit();

session.close();

 

}

 

@Test

// 获取对象

public void testGet() throws Exception {

 

 

// 1. 创建配置管理器对象

Configuration config = new Configuration();

// 2. 加载主配置文件, 默认加载src/hibernate.cfg.xml

config.configure();

// 3. 根据加载的主配置文件,创建对象

SessionFactory sf = config.buildSessionFactory();

// 4. 创建Session对象

Session session = sf.openSession();

// 5. 开启事务

Transaction tx = session.beginTransaction();

 

// --- 获取 (根据主键查询)

Users users = (Users) session.get(Users.class, 1);

 

System.out.println(users);

 

// 6. 提交事务/关闭session

tx.commit();

session.close();

 

}

}

 

猜你喜欢

转载自blog.csdn.net/weixin_41987706/article/details/89235144
今日推荐