hibernate.cfg.xml里可以设置一个值显示更详细的sql语句:

<property name="format_sql">true</property>
  • 表明和类名不同的时候, 需要对表名进行配置

Annotation的情况:

1. Teacher.java  , 加@Table(name="--")

@Entity
@Table(name="_Teacher")

运行 junit自动生成 _teacher这个表

XML的情况:

1. 修改配置文件Student.hbm.xml:

<class name="Student" table="_student">

StudentTest.java, 内容如下:

package com.bjsxt.hibernate.model;

import static org.junit.Assert.*;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test; public class StudentTest {
private static SessionFactory sf=null;
@BeforeClass
public static void beforeClass(){
sf=new AnnotationConfiguration().configure().buildSessionFactory();
}
@Test
public void testStudentSave() {
Student s =new Student();
s.setId(4);
s.setName("wdfd");
s.setAge(30); Session session = sf.openSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
sf.close();
}
@AfterClass
public static void afterClass(){
sf.close();
} }
  • 如果是字段名和属性名不同的话:

Annotation方式:

1. 在Teacher.java里加入如下信息 @Column(name="--")

@Column(name="_name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

XML方式:

1. 修改配置文件Student.hbm.xml:

<property name="name" column="_name"/>

  

  • 如果类里有个属性不想存在数据库里

Annotation方式: 在类里 该属性get方法之前 加@Transient

XML方式:  直接不写

  • 映射日期与时间类型

Annotation方式:

1. 在类里 添加一个Date类型属性,并生成get set方法:

private Date birthDate;

	public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}

2. 在TeacherTest里写入一行:

t.setBirthDate(new Date());

结果:  2016-04-19 16:15:54

我们只想要年月日, 只需要加入@Temporal(TemporalType.DATE)

XML方式:  指定type, 很麻烦

  • 映射枚举类型:

Annotation方式: @Enumerated(EnumType.STRING)

1. 在Teacher.java同目录下新建一个Enum: Zhicheng.java, 内容如下:

package com.bjsxt.hibernate.model;

public enum Zhicheng {
A,B,C
}

2. 在 Teacher.java里加入字段:

private Zhicheng zc;
@Enumerated(EnumType.STRING)
public Zhicheng getZc() {
return zc;
}
public void setZc(Zhicheng zc) {
this.zc = zc;
}

3. 在TeacherTest.Java里加入:

t.setZc(Zhicheng.A);

运行出来的_teacher表里有个zc, 值为A

如果用 @Enumerated(EnumType.STRING) , zc的值为0.

junit有个bug, 就是在@beforeclass里出现异常的时候错误不会报出来, 会吞掉,

解决方法1: @beforeclass加try..catch.

解决方法2:在test方法里写个main方法,调用beforeClass()方法.

Hibernate---基础配置的更多相关文章

  1. Hibernate学习笔记2.1(Hibernate基础配置)

    Hibernate基础配置 1.<property name="hbm2ddl.auto">update</property> 在SessionFactor ...

  2. Hibernate 基础配置及常用功能(三)

    本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...

  3. Hibernate 基础配置及常用功能(一)

    本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hi ...

  4. Hibernate 基础配置及常用功能(二)

    本章主要是描述几种经典映射关系,顺带比较Hibernate4.x和Hibernate5.x之间的区别. 一.建立测试工程目录 有关实体类之间的相互映射关系,Hibernate官方文档其实描述的非常详细 ...

  5. hibernate基础配置

    数据库表名和类名 一致 注解:可写可不写: XML:可写可不写: <class name="Student"> 不一致 注解:  public class Teache ...

  6. 3.Hibernate基础配置

    1.Hibernate.cfg.xml:hbm2ddl.auto 在SessionFactory创建时,自动检查数据库结构,或者将数据库schema的DDL导出到数据库 <property na ...

  7. Hibernate学习笔记2.3(Hibernate基础配置)

    映射,注释可以放在成员变量上面,也可以放在get方法上面 写在成员变量的话 破坏了java的面向对象思维 直接让hibernate访问内部的私有元素 要是能直接设指不合适哈哈 所以主张写在get方法上 ...

  8. Hibernate游记——装备篇《二》(基础配置示例)

    <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...

  9. Java进阶知识03 Hibernate的基础配置详解

    1.Hibernate的原理/流程步骤 1.通过Configuration().configure(); 读取并解析hibernate.cfg.xml配置文件,并创建一个configuration对象 ...

  10. hibernate学习笔记(1)基础配置与jar包

    下载hibernate基础jar包,并解压hibernate-core-4.2.4.final 在myeclipse中添加hibernate的dtd支持: location为D:\学习\imooc-h ...

随机推荐

  1. 最大边和最小边之差最小的生成树 UVA 1394

    题目大意:给你n个点的图,求苗条度(最大边减最小编)尽量小的生成树 思路:sort以后暴力枚举区间即可 //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #inclu ...

  2. Inno Setup入门(十六)——Inno Setup类参考(2)

    分类: Install Setup 2013-02-02 11:28 815人阅读 评论(0) 收藏 举报 这里将接着在前面的基础上介绍如何在自定义页面上添加按钮.按钮属于Tbutton类,该类继承自 ...

  3. git 创建分支,删除分支,管理分支

    参考  http://blog.csdn.net/dijason/article/details/9042425   查看分支: 1 查看本地分支: $ git branch 2 查看远程分支 $ g ...

  4. JQuery获取input type="text"中的值的各种方式

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. MySQL整理碎片

    1 innodb引擎表 alter table TABLE_NAME engine='innodb'; 还有一种方法 optiize table TABLE_NAME; http://stackove ...

  6. http請求瀏覽器的緩存機制

    轉載自:http://kb.cnblogs.com/page/73901/ 流程 当资源第一次被访问的时候,HTTP头部如下 (Request-Line) GET /a.html HTTP/1.1 H ...

  7. php中获取各种路径

    echo $_SERVER['DOCUMENT_ROOT'].""; //获得服务器文档根 echo $_SERVER['PHP_SELF'].""; //获得 ...

  8. MySql数据库基本介绍和基本语法

    一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系统中,关系型数据库使用最为 ...

  9. java 网络编程Socket编程

    Server.java import java.io.*; import java.net.*; public class Server { public static void main(Strin ...

  10. HDU 4828 Grids(卡特兰数+乘法逆元)

    首先我按着我的理解说一下它为什么是卡特兰数,首先卡特兰数有一个很典型的应用就是求1~N个自然数出栈情况的种类数.而这里正好就对应了这种情况.我们要满足题目中给的条件,数字应该是从小到大放置的,1肯定在 ...