zoukankan      html  css  js  c++  java
  • hibertnate首次使用

    目标

    创建一个名为test的数据库,表名是category,里面有id 和name 列名。 表的用途是记录商品分类。(category的中文意思是类别)

    所需jar包,以及版本号

    新建一个javaBean

    配置Category.hbm.xml (hbm既hibertnate mapping的意思,这样容易记住)

    在包zsc.czy.pojo下 新建一个配置文件Category.hbm.xml, 用于映射Category类对应数据库中的category表(即使现在数据库表那边还没建表也无所谓,它会使用这个表名)
    注: 文件名 Category.hbm.xml C一定要大写,要和类保持一致

    <class name="Category" table="category">
    

    表示类Category对应表category

    <id name="id" column="id">
      <generator class="native">
      </generator>
    </id>
    

    表示属性id,映射表里的字段id

    意味着id的自增长方式采用数据库的本地方式

    ====================================

    <property name="name" />
    

    这里配置的时候,只写了属性name,没有通过column="name" 显式的指定字段,那么字段的名字也是name.(即是说Category里的name成员属性,默认指定数据库category表里的名为name的那列)

    =====================================
    如果上面那个声明没加,会报Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 43; cvc-elt.1: 找不到元素 'hibernate-mapping' 的声明。

    配置 hibernate.cfg.xml

    在src目录下创建 hibernate.cfg.xml
    配置访问数据库要用到的驱动,url,账号密码等等
    其他配置及含义:

    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    这表示使用MYSQL方言。 什么方言呢? 因为在代码层面,开发人员不用关心底层到底用Oracle还是Mysql,写的代码都是一样的。 可是Oracle和Mysql所用的sql语句的语法是有所区别的,那么这件事就交给Hibernate来做了。这个时候就需要告诉Hibernate底层用的是什么数据库,它才知道应该用什么样的“方言” 去对话。

    <property name="current_session_context_class">thread</property>
    这是Hibernate事务管理方式,即每个线程一个事务

    <property name="show_sql">true</property>
    这表示是否在控制台显示执行的sql语句

    ==============================================

    <property name="hbm2ddl.auto">update</property>
    这表示是否会自动更新数据库的表结构,有这句话,其实是不需要创建表的,因为Hibernate会自动去创建表结构

    ===================================================

    <mapping resource="zsc/czy/pojo/Category.hbm.xml" />

    这表示Hibernate会去识别Category这个实体类

    =================================================

    测试类 TestHibernate

    创建一个Product对象,并通过hibernate把这个对象,插入到数据库中

    运行TestHibernate.java,数据库成功插入了一个新表

    观察下建文件的结构

    总结

    应用程序通过Hibernate把 一个 Category对象插入到数据库的category表中

    hibernate.cfg.xml 配置文件提供链接数据库的基本信息
    账号 密码 驱动 数据库ip 端口 以及 配置映射资源XXXX.hbm.xml

    Category.hbm.xml 提供对象与表的映射关系
    对应哪个表? 什么属性,对应什么字段

    hibernate和mybatis 的文件映射关系是非常相近的。

  • 相关阅读:
    svn使用总结
    捕获JS 错误日志
    致敬 54岁的刘德华
    Mac 下 命令收藏
    坑人的七牛CDN
    【No.1】监控Linux性能25个命令行工具
    PAC 自动代理
    jquery 事件 多次绑定,多次触发,怎么清除历史绑定事件
    Squid 操作实践
    ntpdate[16603]: the NTP socket is in use
  • 原文地址:https://www.cnblogs.com/czy16/p/8867703.html
Copyright © 2011-2022 走看看