Hibenate正向工程(对象-->表)

来源:互联网 发布:张炘炀现状 知乎 编辑:程序博客网 时间:2024/05/16 07:31

1.新建一个pojo类

package com.demo.pojo;/** * @author Bruce_shan * @version 创建时间:2016-11-10 下午04:23:02 * 类说明 */public class Student {     private int id;     private String sname;     private String sex;    public Student() {        super();    }    public Student(String sname, String sex) {        super();        this.sname = sname;        this.sex = sex;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getSname() {        return sname;    }    public void setSname(String sname) {        this.sname = sname;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    @Override    public String toString() {        return "Student [sex=" + sex + ", sname=" + sname + "]";    }}

2.编写pojo类对应的映射文件(Student.hbm.xml),让其自动生成对应的表结构

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.demo.pojo">    <class name="Student" table="student">        <!-- name属性值是TbUser类中的属性,column="id"是tb_user表的字段名,如果字段名和屬性名是相同的,那麼可以省略不寫 -->        <id name="id" column="id" type="int">            <!-- 主键生成策略,如果指定为sequence,表示使用序列号产生ID的值,但是我们没有指定序列名称的时候,默认使用的是hibernate提供的序列hibernate_sequence -->            <generator class="sequence">                <param name="sequence">tb_student_seq</param>            </generator>        </id>        <property name="sname" column="sname"></property>        <property name="sex"></property>    </class></hibernate-mapping>

3..在src目录下新建hibernate配置文件,文件名称为hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <!-- 数据库方言 hibernate.是可以省略 -->        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>        <property name="hibernate.connection.username">scott</property>        <property name="hibernate.connection.password">admin</property>        <!-- 执行代码的时候显示SQL语句到控制台 -->        <property name="show_sql">true</property>        <property name="format_sql">true</property>        <!-- 关联映射文件 -->        <mapping resource="com/demo/pojo/Student.hbm.xml" />    </session-factory></hibernate-configuration>

注意在hibernate.cfg.xml中一定记得要关联实体类的映射文件Student.hbm.xml !


4.编写建表测试类

package com.demo.util;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;/** * @author Bruce_shan * @version 创建时间:2016-11-10 下午04:26:03 * 类说明 */public class CreateTable {    public static void main(String[] args) {        // 获取Configuration对象        Configuration cfg = new Configuration();        // 读取的是 hibernate.cfg.xml        cfg.configure();        SchemaExport export = new SchemaExport(cfg);        export.create(true, true);    }}

由于在hibernate配置文件中配置了执行代码的时候显示SQL语句到控制台,在控制台输出如下sql语句,说明正向工程成功!

    drop table student cascade constraints    drop sequence tb_student_seq    create table student (        id number(10,0) not null,        sname varchar2(255 char),        sex varchar2(255 char),        primary key (id)    )    create sequence tb_student_seq

本文所提内容需要加入Hibernate支持,导入相关的jar包,
详情请看–

第一个 Hibernate应用程序(手动编写)

0 0
原创粉丝点击