• hibernate5小案例讲解


    Student类

    package com.wangning.bean;
    
    public class Student {
    private Integer id;
    private String name;
    private int age;
    private double score;
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + ", score="
                + score + "]";
    }
    public Student() {
        super();
    }
    public Student(String name, int age, double score) {
        super();
        this.name = name;
        this.age = age;
        this.score = score;
    }
    public Integer getId() {
        return id;
    }
    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;
    }
    }
    View Code

    Student.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.wangning.bean">
        <!-- 映射文件的作用:
                1、完成类到表的映射 2、属性到字段的映射 -->
        <class name="Student" table="t_student">
            <id name="id" column="tid">
                <generator class="native"></generator>
            </id>
            <property name="name" column="tname"></property>
            <property name="age" column="tage"></property>
            <property name="score" column="tscore"></property>
        </class>
    </hibernate-mapping>

    hibernate.cfg.xml  

    <?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链接4要素 -->
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.url">jdbc:mysql:///world</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">huadiyatou1314</property>
            <!-- 方言 -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</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/wangning/bean/Student.hbm.xml"/>
        </session-factory>
    
    
    </hibernate-configuration>

    分析:

    <!DOCTYPE hibernate-configuration PUBLIC
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>

    DTD----->这段代码可以从        

    hibernate-core-5.1.9.Final.jar/org/hibernate/hibernate-configuration-3.0.dtd

    路径下copy。同理映射文件中的dtd也相应加入。

    package test;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.junit.Test;
    
    import com.wangning.bean.Student;
    
    public class Test1 {
    @Test
        public  void mytest() {
            //加载主配置文件
            Configuration config=new Configuration().configure();
            //创建Session工厂
            SessionFactory sessionFactory=config.buildSessionFactory();
            //获取Session
            Session session=sessionFactory.getCurrentSession();
            session.getTransaction().begin();
            //执行操作        
            Student student =new Student("王五",21,100);
            session.save(student);
            session.getTransaction().commit();
        }
    
    
    }


    1、默认名字:hibernate.cfg.xml 是因为 new Configuration().configure()方法。如下定义:

        public static final String DEFAULT_CFG_RESOURCE_NAME = "hibernate.cfg.xml";
        public Configuration configure() throws HibernateException {
            return configure( StandardServiceRegistryBuilder.DEFAULT_CFG_RESOURCE_NAME );
        }

    我们也可以更换名字为 wangwu.cfg.xml。只需在方法调用时 变更为

    //加载主配置文件
            Configuration config=new Configuration().configure("wangwu.cfg.xml");
  • 相关阅读:
    Linux OpenSSH后门的加入与防范
    Oracle APEX 4.2安装和配置
    springboot 配置jsp支持
    java 多线程 yield方法的意义
    java多线程状态转换
    Jquery_artDialog对话框弹出
    ThinkPHP框架学习摘要
    js弹窗对象不能通过全局对象移到外部函数中执行
    关于rawurldecode PHP自动解码
    td高度不随内容变化display:block;display:block;display:block;display:block;display:block;
  • 原文地址:https://www.cnblogs.com/huadiyatou/p/7512811.html
Copyright © 2020-2023  润新知