• Hibernate学习笔记


    Hibernate是ORM(Object Relationship Mapping)对象映射关系的持久层框架

    开发环境eclipse + MySQL8.0 + JDK1.7+hibernate5

    1.准备工作:创建测试用的数据库

    2.在eclipse中新建项目一个项目

    导入相关jar包:

    a.数据库驱动包:

    b.hibernate/lib/required/下的jar包:

    c.日志记录包:

    3.创建实体类User.java:

    public class User {
        private int uid;
        private String username;
        private String userAddress;
        private String userPassword;
        public Integer getUid() {
            return uid;
        }
        public void setUid(int uid) {
            this.uid = uid;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getUserAddress() {
            return userAddress;
        }
        public void setUserAddress(String userAddress) {
            this.userAddress = userAddress;
        }
        public String getUserPassword() {
            return userPassword;
        }
        public void setUserPassword(String userPassword) {
            this.userPassword = userPassword;
        }
        
        
    
    }

    4.在实体类同目录下创建映射配置文件User.bhm.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>
    <!-- 建立类和标的映射关系 -->
    <!-- 
        class标签:用来建立类和表的映射
        name:类的全路径
        table:数据库表名
        catalog:数据库名
     -->
    <class name="com.hxzy.hibernate_demo.entity.User" table="t_user">
    <!-- 
        id标签:用来建立类中的属性与标的主键字段的对应
        name:类中的属性名
        column:表中对应的字段名 (若与属性名相同)可省略
        length:字段的长度
        type:类型
     -->
    <id name="uid" column="uid">
        <!-- 主键生成策略 -->
        <generator class="native" />
    </id>
    <!-- 建立类中普通属性与表中字段的映射 -->
     <!-- 
        property标签:用来建立类中普通属性与表中字段的映射
        name:类中的属性名
        column:表中字段名,若与类名一致可省略
        length:字段长度
        type:类型,Java类型,hibernate类型,SQL类型
      -->
      <property name="username" column="username"/>
      <property name="userAddress" column="userAddress"/>
      <property name="userPassword" column="userPassword"/>
      
    </class>
    </hibernate-mapping>

    5.创建Hibernate核心配置文件,一般放在src目录下命名为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>
        <!-- 必要的配置信息 -->
        <property name="hibernate.connection.driver_class">
          com.mysql.jdbc.Driver
        </property>

      <!-- 数据库地址,若不加?useUnicode=true&amp;characterEncoding=utf8可能出现连接失败,或汉字存储乱码问题 -->
    <property name="hibernate.connection.url"> jdbc:mysql:///hibernate_demo?useUnicode=true&amp;characterEncoding=utf8 </property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">111111</property> <!-- hibernate属性 --> <!-- 方言:设定链接数据库类型 --> <!-- 显示SQL语句 --> <property name="hibernate.show_sql">true</property> <!-- 格式化SQL语句 --> <property name="hibernate.format_sql">true</property> <!-- hbm2ddl.auto的取值 none:不用hibernate自动生成 create:每次都会创建新表 create:drop:每次创建信表,执行结束后删掉 update:如果库中有表,使用原来的表,没有则自动生成,可以更新表结构? validate: 只使用原有的表结构,对映射关系进行校验 --> <property name="hibernate.hbm2ddl.auto">update</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 加载映射 --> <mapping resource="com/hxzy/hibernate_demo/entity/User.hbm.xml" /> </session-factory> </hibernate-configuration>

    6.创建测试类

    public class HibernateTest {
        
        @Test
        public void test1(){
            //1.加载配置文件
            Configuration cfg = new Configuration();
            //配置文件加载!!!!!
            cfg.configure();
         //可以简写为:
    //Configuration cfg = new Configuration().configure();
    //2.创建一个sessionFactory,一般会将SessionFactory包装为一个工具类 SessionFactory sf = cfg.buildSessionFactory(); //3.创建Session对象 Session session = sf.openSession(); //4.开启事务 Transaction ts = session.beginTransaction(); //5.执行相关操作 User user = new User(); user.setUsername("古树柳"); user.setUserPassword("111111"); user.setUserAddress("宫家庄"); session.save(user); //6.事务提交 ts.commit(); //7.释放资源 session.close(); sf.close(); } public static void main(String[] args) { } }
  • 相关阅读:
    Centos7 Apache 2.4.18编译安装
    Centos7 mysql-community-5.7.11编译安装
    Centos7 安装MPlayer过程详解
    Vmware虚拟机克隆的网卡问题
    虚拟机VMware新增硬盘无法识别问题
    python推导式
    Python迭代器和生成器
    Python装饰器
    Python函数初识二
    Python函数初识
  • 原文地址:https://www.cnblogs.com/annofyf/p/9715066.html
Copyright © 2020-2023  润新知