Hibernate 使用注释

Hibernate 使用注释

Hibernate使用注释有个好处就是我们不需要建立.hbm.xml文件,直接在实体类中添加注解就可以完成往数据库中进行数据操作

配置文件:hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/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/student?serverTimezone=UTC</property>
      <property name="connection.username">root</property>
      <property name="connection.password">123456</property>

      <!-- JDBC connection pool (use the built-in) -->
      <!-- <property name="connection.pool_size">1</property> -->

      <!-- SQL dialect 方言 MySQLDialect不同数据库不一样-->
      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

      <!-- Enable Hibernate‘s automatic session context management -->
      <!-- <property name="current_session_context_class">thread</property> -->

      <!-- Disable the second-level cache -->
      <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

      <!-- Echo all executed SQL to stdout  生产的sql打印出来-->
      <property name="show_sql">true</property>
      <!-- <mapping resource="com/xxc/model/Student.hbm.xml"></mapping> -->
      <mapping class="com.xxc.model.Teacher"></mapping>
    </session-factory>

</hibernate-configuration>

实体类Teacher.java

package com.xxc.model;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="teacher")
public class Teacher {
    private int id;
    private String name;
    private String title;
    @Id
    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 String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }

}

操作类TeacherTest.java

在这里,我们使用StandardServiceRegistryBuilder类和MetadataSources类从持久化类获取映射的信息。

package hibernateTest;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import com.xxc.model.Teacher;

public class TeacherTest {

    public static void main(String[] args) {
        Teacher t = new Teacher();
        t.setId(1);
        t.setName("xxc");
        t.setTitle("高级");
        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
        SessionFactory sf = new MetadataSources(registry).buildMetadata().buildSessionFactory();
        Session session = sf.openSession();
        //开始事务
        session.beginTransaction();
        session.save(t);
        //结束事务
        session.getTransaction().commit();
        session.close();
        sf.close();
    }
}

原文地址:https://www.cnblogs.com/alex-xxc/p/9751901.html

时间: 2024-11-09 02:02:48

Hibernate 使用注释的相关文章

Hibernate validation 注释

@AssertTrue   //用于boolean字段,该字段只能为true @AssertFalse //该字段的值只能为false @CreditCardNumber //对信用卡号进行一个大致的验证 @DecimalMax //只能小于或等于该值 @DecimalMin //只能大于或等于该值 @Digits (integer= 2 ,fraction= 20 ) //检查是否是一种数字的整数.分数,小数位数的数字. @Email //检查是否是一个有效的email地址 @Future /

hibernate简单注释(一)

*****************************hibernate.cfg.xml************************************ <?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibern

hibernate简单注释(一.1)

*********************************************************************************************************** package com.ij34.web; import org.hibernate.*;import org.hibernate.boot.registry.*;import org.hibernate.cfg.*;import org.hibernate.service.*; i

Hibernate 一对一注释

/*   * @OneToOne注释指明Person 与IDCard为一对一关系,@OneToOne注释五个属性:targetEntity.cascade.fetch.optional 和mappedBy,   *fetch属性默认值是FetchType.EAGER.optional = true设置idcard属性可以为null,也就是允讦没有身份证,未成年人就是没有身份证的.   *   *targetEntity属性:Class类型的属性.定义关系类的类型,默认是该成员属性对应的类类型,所

Spring的DataSource配置、将Hibernate配置全部写到Spring配置

DataSource可以集中管理数据库连接,减少维护工作量,使部署更简单: Spring的DataSource配置:(Spring数据源配置)这里使用dbcp,还有很多其他的如c3p0,jdbc,jndi等 DataSource和定义普通Bean一样,指定id.类别,注入属性: 站点停止时,应该调用DataSource的close方法,通过destroy-method属性配置实现: 1,在Spring配置文件配置DataSource的bean: <bean id="dataSource&q

JBoss Seam 2.3.1新功能

jboss seam reference 2.3(第4章) jboss seam reference 2.3 Final    24.09.2012   第四章 从2.2迁移到2.3 在你开始Seam 2.3以前,有一些事情你应该注意.这个过程应该不是太痛苦--如果被卡住了,只是回来参考在Seam分发版中的更新Seam例子即可. 这个迁移指南假设你正在使用Seam2.2,如果你正从Seam 1.2 或 2.0迁移,请看jboss-seam-x.y.z.Final/seam2migration.t

Seam - 无缝集成 JSF

第 1 部分: 为 JSF 量身定做的应用程序框架 ----> 发现 Seam 对 JSF 生命周期特有的增强 JavaServer Faces (JSF) 是用于 Java? Web 应用程序的第一个标准化的用户界面框架.而 Seam 是一个扩展 JSF 的强大的应用程序框架.在这个由三部分组成的新系列中的第一篇文章中,发现这两种框架之间的互补性.Dan Allen 介绍了 Seam 对 JSF 生命周期的增强,包括上下文状态管理. RESTful URL.Ajax remoting.适当的异

eclipse从数据库逆向生成Hibernate实体类(eclipse中反向生成hibernate实体类+jpa注释)

eclipse从数据库逆向生成Hibernate实体类 做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再"自己"建立一变VO.意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表:要么就先进行数据库表设计,再逆向生成实体类.没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计. 原因是: 1. 1.5倍工作量,浪费时间.(时间对公司来说很重要) 2. 无法

(原创)hibernate 一对多建表实例详解 附上各个注释的含义

这个是hibernate的一对多建表实例:一的一端是部门(Department),对的一端是员工(Employee),下面贴上成员源代码:其中@mappedBy是加在@OneToMany一端,并且它的name属性=多的那一端(N端)属性是一的那一端的属性名,mappedBy是定义在Department类中,即Department类不负责维护级联关系.即维护者是Employee类 Department类: package com.javabean; import java.io.Serializa