Hibernate用注解生成表

User.java实体来

package com.tao.pojo;
import javax.persistence.Column;
//用注解的方式生成表
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;
@Entity        //标明当前类是受Hibernate管理的,相当于映射了一个.XML文件
@Table(name="User")    //    表名和类名不一致的时候用,table是表名,当前类对应表的名字
public class User {
    //主键
    @Id
//    自动增长
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;
    //column指数据库表中的普通列(不是主键或外键的列),  name里面写列名,当列名和属性名相同的时候,column可以不写,nullable=false 不为空
    @Column(name="name1",length=200,nullable=false)
    private String name;
    private Double money;

    public User() {
        super();
    }
    public User(int id, String name, Double money) {
        super();
        this.id = id;
        this.name = name;
        this.money = money;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getMoney() {
        return money;
    }
    public void setMoney(Double money) {
        this.money = money;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", money=" + money + "]";
    }
}

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>
        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/test1123?characterEncoding=utf-8</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <!-- 如果没有就创建,有就更新 -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <mapping class="com.tao.pojo.User"/>

    </session-factory>

</hibernate-configuration>

Test001.java测试类
package com.tao.test;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.tao.pojo.User;

public class Test001 {
    public static void main(String[] args) {
        Configuration config = new Configuration().configure();
        SessionFactory factory = config.buildSessionFactory();
        Session session = factory.openSession();
        session.beginTransaction();
//        设置了自动增长之后,这里的Id不起作用,可以不写,按照1,2,3,4,5,的顺序走,如果把,5删了,下一个是6,
        //在创建表的时候先把save屏蔽掉,
//        User us = new User(32, "啊哈", 32.0);
//        session.save(us);
        session.getTransaction().commit();
        session.close();
        factory.close();
    }
}

原文地址:https://www.cnblogs.com/jili6254/p/8244697.html

时间: 2024-08-01 17:52:20

Hibernate用注解生成表的相关文章

Hibernate设置自动生成表失败

出错代码: <?xml version='1.0' encoding='utf-8'?> <!-- ~ Hibernate, Relational Persistence for Idiomatic Java ~ ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later. ~ See the lgpl.txt file in the root directory or <http://www.

hibernate不能自动生成表的原因总结

1. upate->create <property name="hbm2ddl.auto">create</property> 2. 2.Mapping的映射文件有重名的,如: <mapping resource="com/runsky/domain/Status.hbm.xml" /> <mapping resource="com/runsky/domain/Status.hbm.xml" /&

菜鸟学SSH(十一)——Hibernate之SchemaExport+配置文件生成表结构

今天说点基础的东西,说说怎样通过SchemaExport跟Hibernate的配置文件生成表结构.事实上方法很easy,仅仅须要两个配置文件,两个Java类就能够完毕. 首先要生成表,得先有实体类,以Person.java为例: /** * * @author Administrator * @hibernate.class table="T_Person" */ public class Person { /** * @hibernate.id * generator-class=&

Hibernate使用自定义脚本替换注解或者xml文件中的自动生成表结构

本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan/article/details/50534361 我们都清楚,可以使用hibernate的metadata元数据生成表结构,但是一般情况下,我们光靠hibernate的自动生成是远远不够的,我们期待使用自己的sql脚本,你hibernate自动执行那个脚本就可以.那么hibernate支持不支持呢?答案是yes! 只需要我们做以下设置: <property name="hibernate.hb

Hibernate笔记②--hibernate类生成表、id生成策略、级联设置、继承映射

一.多表的一个关联关系 老师和学生是一对多的关系 student:tid属性 外键约束 对应teacher表中的id属性 teacher:id 在myeclipse的db窗口中选中两个表来生成类. ? 写一个CRUD //老师和学生实体保存 ????public void save(){ ????????Teacher t=new Teacher(); ????????t.setName("彭老师"); ???????? ????????Student s1=new Student()

菜鸟学SSH(十二)——Hibernate与Spring配合生成表结构

前几天向大家介绍了一种用工具类生成数据表的方法,只是之前的方法须要使用一个跟项目关系不大的工具类.不免让人认为有些多余,所以呢.今天再向大家介绍一种方法.即Hibernate与Spring配合生成表结构. 首先.要将Spring的信息配置的web.xml.配置Spring用于初始化容器对象的监听器. web.xml <? xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="ht

Hibernate之SchemaExport+配置文件生成表结构

首先要生成表,得先有实体类,以Person.java为例: /** * * @author Administrator * @hibernate.class table="T_Person" */ public class Person { /** * @hibernate.id * generator-class="native" */ private int id; /** * @hibernate.property */ private String name

java注解演示 映射生成表 示例 来自thinking in java 4 20章部分代码

java注解演示 映射生成表 示例  来自thinking in java 4 20章部分代码 package org.rui.annotation.database; import java.lang.annotation.*; /** * 生成一个数据库表 * @author lenovo * */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface DBTable { public

Hibernate框架hibernate.cfg.xml配置文件,配置自动生成表结构策略。

<property name="hbm2ddl.auto"></property> key -- hbm2ddl.auto:自动生成表结构策略 value -- update(使用最多):当数据库不存在表时,hibernate启动后会自动生成表结构. 当数据库表存在时,如果一样,则只会写入数据,不会改变表结构. 当数据库表存在时,如果不一样,则会修改表结构,原有的表结构不会改变.  create(很少):无论表结构是否存在,hibernate启动后都会重新生成表