zoukankan      html  css  js  c++  java
  • Hibernate了解

    认知

    1. 百科定义
      • 对象关系映射框架(pojo与数据库表的映射)
      • 开源
      • 对JDBC轻量的封装
      • 自动生成SQL语句
    2. 同类的技术有哪些?
      MyBatis
    3. 主要组成部分:数据持久化
    4. 官方网站:http://hibernate.org/

    使用IDEA初次尝试Hibernate

    创建项目

    IDEA创建项目
    生成后目录结构:

    初始结构

    • 勾选create default... 生成默认的hibernate配置文件和主要类
    • 选中Libraries的Download令IDEA自动下载一些需要的依赖

    加入mySql需要的jar包

    导入mySql驱动的jar包

    创建一个测试用的数据库

    • 数据库名:test
    • 创建一个表:cars
      CREATE TABLE cars (
      id int(11) NOT NULL AUTO_INCREMENT,
      name varchar(30) ,
      price float ,
      PRIMARY KEY (id)
      ) DEFAULT CHARSET=UTF8;
      

    创建一个实体类Car

    • 用于对应数据库中的cars表
      实体类Car
    package entity;
    
    public class Car {
        int id;
        String name;
        float price;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public float getPrice() {
            return price;
        }
        public void setPrice(float price) {
            this.price = price;
        }
    }
    

    建立实体类到表的映射

    • 创建名为Car.hbm.xml的配置文件,建立实体类Car到表cars的映射
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    
    <hibernate-mapping package="entity">
        <!-- 类Car映射到表cars -->
        <class name="entity.Car" table="cars">
            <id name="id" column="id">
                <generator class="native">
                </generator>
            </id>
            <property name="name" />
            <property name="price" />
        </class>
    
    </hibernate-mapping>
    

    配置hibernate.cfg.xml

    • 这个文件就是前面勾选Create default hibernate configuration and main class默认生成的配置文件,如果没有默认生成,需要自己创建,需要注意的就是:路径固定(src文件夹下)、名称固定(hibernate.cfg.xml)
      配置hibernate.cfg.xml
    <?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>
            <!-- Database connection settings -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</property>
            <property name="connection.username">root</property>
            <property name="connection.password">123456</property>
            <!-- SQL dialect -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            <property name="current_session_context_class">thread</property>
            <property name="show_sql">true</property>
            <property name="hbm2ddl.auto">update</property>
            <mapping resource="entity/Car.hbm.xml" />
        </session-factory>
    
    </hibernate-configuration>
    

    测试

    package test;
    
    import entity.Car;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    public class test {
        public static void main(String[] args) {
            //获取SessionFactory
            SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
            //获取Session
            Session session = sessionFactory.openSession();
            //开启事务
            session.beginTransaction();
    
            //实例化对象,写具体的逻辑CURD操作
            Car car = new Car();
            car.setName("福特");
            car.setPrice(70000);
            session.save(car);
    
            //提交事务
            session.getTransaction().commit();
            //关闭Session、SessionFactory
            session.close();
            sessionFactory.close();
        }
    
    }
    

    结果

    结果

    总结

    1. 创建project(注意需要的依赖)
    2. 创建数据库、建表
    3. 创建实体类
    4. 配置实体类到表的映射
    5. 配置hibernate.cfg.xml
    6. 编写逻辑操作
      • 获取SessionFactory
      • 获取Session
      • 开启事务
      • 实例化对象、CURD操作
      • 提交事务
      • 关闭获取SessionFactory、Session
  • 相关阅读:
    《C# 爬虫 破境之道》:第二境 爬虫应用 — 第二节:以事件驱动状态、数据处理
    量化投资学习笔记37——《Python机器学习应用》课程笔记10
    量化投资学习笔记36——《Python机器学习应用》课程笔记09
    量化投资学习笔记35——《机器学习入门》第一部分
    量化投资学习笔记34——《Python机器学习应用》课程笔记08
    量化投资学习笔记33——《Python机器学习应用》课程笔记07
    量化投资学习笔记32——《Python机器学习应用》课程笔记06
    量化投资学习笔记31——《Python机器学习应用》课程笔记05
    量化投资学习笔记30——《Python机器学习应用》课程笔记04
    量化投资学习笔记29——《Python机器学习应用》课程笔记03
  • 原文地址:https://www.cnblogs.com/hhhqqq/p/12582905.html
Copyright © 2011-2022 走看看