Hibernate---基础配置
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---基础配置的更多相关文章
- Hibernate学习笔记2.1(Hibernate基础配置)
Hibernate基础配置 1.<property name="hbm2ddl.auto">update</property> 在SessionFactor ...
- Hibernate 基础配置及常用功能(三)
本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...
- Hibernate 基础配置及常用功能(一)
本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hi ...
- Hibernate 基础配置及常用功能(二)
本章主要是描述几种经典映射关系,顺带比较Hibernate4.x和Hibernate5.x之间的区别. 一.建立测试工程目录 有关实体类之间的相互映射关系,Hibernate官方文档其实描述的非常详细 ...
- hibernate基础配置
数据库表名和类名 一致 注解:可写可不写: XML:可写可不写: <class name="Student"> 不一致 注解: public class Teache ...
- 3.Hibernate基础配置
1.Hibernate.cfg.xml:hbm2ddl.auto 在SessionFactory创建时,自动检查数据库结构,或者将数据库schema的DDL导出到数据库 <property na ...
- Hibernate学习笔记2.3(Hibernate基础配置)
映射,注释可以放在成员变量上面,也可以放在get方法上面 写在成员变量的话 破坏了java的面向对象思维 直接让hibernate访问内部的私有元素 要是能直接设指不合适哈哈 所以主张写在get方法上 ...
- Hibernate游记——装备篇《二》(基础配置示例)
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...
- Java进阶知识03 Hibernate的基础配置详解
1.Hibernate的原理/流程步骤 1.通过Configuration().configure(); 读取并解析hibernate.cfg.xml配置文件,并创建一个configuration对象 ...
- hibernate学习笔记(1)基础配置与jar包
下载hibernate基础jar包,并解压hibernate-core-4.2.4.final 在myeclipse中添加hibernate的dtd支持: location为D:\学习\imooc-h ...
随机推荐
- Asp.Net调用Office组件操作时的DCOM配置 (转)
Asp.Net调用Office组件操作时的DCOM配置 http://blog.csdn.net/gz775/article/details/6447758 在项目中将数据导出为Excel格式时出现“ ...
- spice-vdagent
The spice-vdagent should be running in the guest. Have you installed the spice guest tools in your w ...
- ibatis resultMap 结果集映射
1.结果集映射 就是将返回的记录,逐个字段映射到java对象上:如果数据库字段与java对象的成员变量名对应的话,则使用resultClas即可 2.实现 结合 ibatis初探这篇文章中提到的pro ...
- asp:cookies的属性
Expires – 过期时间.指定cookie的生命期.具体是值是过期日期.如果想让cookie的存在期限超过当前浏览器会话时间,就必须使用这个属性.当过了到期日期时,浏览器就可以删除cookie文件 ...
- 将decimal类型的数据转成2.12这样价钱的显示方式
UnitPrice = string.Format("{0:.00}", m.UnitPrice),
- Beam me out!
Beam me out! 题目描述 King Remark, first of his name, is a benign ruler and every wrongdoer gets a second ...
- JAVA-基本知识
1.JAVA跨平台 其实就是在每个平台上要安装对应该操作系统的JVM,JVM负责解析执行,即实现了跨平台.JVM是操作系统与java程序之间的桥梁. 2.JRE:java运行环境,包含JVM+核心类库 ...
- Swift 响应式编程 浅析
这里我讲一下响应式编程(Reactive Programming)是如何将异步编程推到一个全新高度的. 异步编程真的很难 大多数有关响应式编程的演讲和文章都是在展示Reactive框架如何好如何惊人, ...
- 一个完整的项目中,需要的基本gulp
一个完整的项目需要使用gulp的多种功能,包括—— (1)加载各种需要的插件 var concat=require('gulp'); var clean=require(''gulp); 等等.需要的 ...
- ==和equals的异同
== 和 Equals 的区别 1. == 是一个运算符. 2.Equals则是string对象的方法,可以.(点)出来. 我们比较无非就是这两种 1.基本数据类型比较 2.引用对象比较 1.基本数据 ...