hibernate框架一之基本知识及编写一个基本的项目

session/actionQueue/insertions/elementData是保存对象在session管理器的状态:如果一个对象存在则该对象在这个elementData对象中有值,如果不在session管理器中,则该对象在该elementData对象中没有值

session/persistenceContext/entityEntries/map/table是保存程序中关于数据库中的对象的值,程序查询数据库中对象的内容保存在该对象中
hibernate重配置,我们来看看一个简单的hibernate的配置信息,首先我们应该知道一个hibernate是一个持久层框架,所以需要配置连接数据库信息:hibernate.cfg.xml

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

<hibernate-configuration>
    <session-factory>
        <!-- 这里是提供连接数据库URL -->
        <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</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>
        <!-- 配置sql的方言:hibernate独有的hql语句:面向对象的数据库语句,通过这个配置转化为相应的底层数据库操作。从而实现了跨数据库平台 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 是否显示程序执行的sql语句 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 是否自动更新数据库 -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- 这里配置的是持久层对象,对应的就是数据库的表 -->
        <mapping resource="com/xingyao/model/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

我们从hibernate.cfg.xml配置文件中看到了,持久层对象User.hbm.xml的配置,那么我们来看看这个配置有哪些信息

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.xingyao.model">
    <class name="User" >
        <id name="id" type="java.lang.String">
            <generator class="uuid"/>
        </id>
        <property name="username"  type="java.lang.String"/>
        <property name="password"  type="java.lang.String"/>
        <property name="createTime"  type="java.util.Date"/>
    </class>
</hibernate-mapping>

——————————————————————————————————————————我们来谈谈这里面涉及到的标签
:这个是配置所有的mapping的信息,也就是数据库物理表,其中package属性是:如果该mapping下有许多class信息,则用这个指定包名,简化下面的的信息
:配置一个bean对象;其中names属性值是:一个bean对象(包名+类名,如果上文配置了package属性则可以不需要配置包名)
:配置一个bean里面的主键信息;name属性值是:配置在该类中那个属性为主键;type属性值是:指定id的类型
:指定该主键的生成策略;class属性值是:指定该主键采用什么生成策略,我这里用的是uuid(由系统自动生成一个32为的世界唯一的字符串)在后面会专门有一章将生成策略
:指定该类的其他属性值信息;name的属性值是:指定该类的属性,type属性值是:指定该属性的类型
这里我们完成了hibernate的相关配置,但是我们来看看User.hbm.xml对应的bean是怎么写的


package com.xingyao.model;

import java.util.Date;

public class User {
    private String id;
    private String username;
    private String password;
    private Date createTime;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

——————————————————————————————————————————这里就是一个基本的Bean代码

下面是怎么根据这个bean,怎么创建一个表

  @Test
    public void create_table() {
        Configuration configuration = new Configuration().configure();
        SchemaExport schemaExport = new SchemaExport(configuration);
        schemaExport.create(true, true);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值