java 配置hibernate_Hibernate实现有两种配置,xml配置与注释配置
hibernate实现有两种配置,xml配置与注释配置。
(1):xml配置:hibernate.cfg.xml (放到src目录下)和实体配置类:xxx.hbm.xml(与实体为同一目录中)
/p>
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/hxj
root
root
1
org.hibernate.dialect.MySQLDialect
thread
org.hibernate.cache.NoCacheProvider
true
-->
update
//实体配置类
(2): 实体配置类:xxx.hbm.xml
/p>
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
//字段自增
(3):测试类(包括获取SessionFactory类和实体测试类)
SessionFactory类:HibernateUtil
public classHibernateUtil {
private static finalSessionFactorysessionFactory;
static{
try{
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory=newConfiguration().configure().buildSessionFactory();
}catch(Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed."+ ex);
throw newExceptionInInitializerError(ex);
}
}
public staticSessionFactory getSessionFactory() {
return sessionFactory;
}
}
实体测试类:PersonManager
-----------------------------------------------------------------------------------
public classPersonManager {
public static voidmain(String[] args) {
createAndStorePerson();
HibernateUtil.getSessionFactory().close();
}
private static voidcreateAndStorePerson() {
Session session = //通过Session工厂获取Session对象
HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction(); //开始事务
Person person =newPerson();
person.setUsername("何小景");
person.setAge(26);
session.save(person);
session.getTransaction().commit(); //提交事务
}
}
(4):注解方式:
注解的方式与xml很很多类似:
首先是需要加入4个jar包:hibernate-commons-annotations.jar 、 hibernate-annotations.jar
ejb3-persistence.jar 、 hibernate-jpa-2.0-api-1.0.1.Final.jar
下面是不同的地方:
(1):hibernate.hbm.xml 文件中把引用:xxx.hbm.xml改为引用实体类:
即把:
改为:
(2):获取SessionFactory方式发生了变化:
即:由SessionFactory sf = new Configuration().configure().buildSessionFactory()
改为:SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory()
(3):注解方式不需要在xxx.hbm.xml把实体类与表进行映射。而采用在实体类中进行注解。
注意:(1):如果实体类属性名与表字段名不一致的时候,要么都注解在属性前,要么都注解在get方法前。不能部分注解在属性前,部分注解在方法前。
(2):如果实体类属性名与表字段名一致的时候,可以部分注解在属性前,部分注解在方法前。
(3):如果在实体类中某些属性不注解:(属性和get都不写注解),默认为表字段名与实体类属性名一致。
(4):如果实体类的某个成员属性不需要存入数据库中,使用@Transient进行注解就可以了。即类似于:(xxx.hbm.Xml配置中的某些字段不写(就是不需要对这个成员属性进行映射))
(5):表名称可以在实体类前进行注解。
(6):所有这些注解在:javax.persistence包下。而不是在hibernate包中。
---------------------------------------------------------------------------------------------------------------------
@Entity//表示为实体类
@Table(name="t_teacher")//表名注解
public classTeacherimplementsSerializable {
private int id;
privateStringusername;
private int age;
@Id//表示主键
@GenericGenerator(name ="generator", strategy ="increment")@GeneratedValue(generator ="generator")//自增长
@Column(name ="id")//类属性对应着表字段
public intgetId() {
return id;
}
public voidsetId(intid) {
this.id= id;
}
@Column(name="t_username")//类属性对应着表字段
publicString getUsername() {
return username;
}
public voidsetUsername(String username) {
this.username= username;
}
@Column(name="t_age")//在实体类属性进行注解,类属性对应着表字段public intgetAge() {
return age;
}
public voidsetAge(intage) {
this.age= age;
}
posted on 2012-06-30 10:00 奋斗成就男人 阅读(49379) 评论(4) 编辑 收藏
java 配置hibernate_Hibernate实现有两种配置,xml配置与注释配置相关推荐
- Java框架篇---spring aop两种配置方式
Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中 ...
- 怎么看python环境变量配置是否好了验证图片_简述验证Anaconda是否安装成功的两种方式和Anaconda环境变量配置过程...
加个"星标",每天一起快乐的学习 今 日 鸡 汤 闻道欲来相问讯,西楼望月几回圆. /1 前言/ 大家好,我是 Rocky0429,今天我给大家介绍一下验证Anaconda是否安装 ...
- 配置 yum 源的两种方法
配置 yum 源的两种方法 由于 redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源,以下为详细过程: 1.删除redh ...
- eclipse4.6安装tomcate插件 Eclipse4.6(neno)配置Tomcat插件的两种方式
为什么80%的码农都做不了架构师?>>> Eclipse4.6(neno)配置Tomcat插件的两种方式 ,自己用的第一种手动安装 ①:下载net.sf.eclipse.tom ...
- 简述验证Anaconda是否安装成功的两种方式和Anaconda环境变量配置过程
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 闻道欲来相问讯,西楼望月几回圆. ...
- CentOS7下配置Supervisor自启动的两种方法
很多网友留言问如何配置Supervisor 自启动,现将如何在CentOS7下配置Supervisor自启动的两种方法整理如下: 一.方法一 直接将启动命令加入到/etc/rc.d/rc.local中 ...
- 显示屏连接DL580服务器方法,DL380, DL580, DL360 服务器系列配置Raid 5的两种方法.doc...
ISSUE: 本文介绍DL380, DL580, DL360 服务器系列配置Raid 5的两种方法: 使用ORCA配置和使用Smart Start7.91中的Array Configuration U ...
- java读取csv文件的两种方式
java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...
- java 匿名list,java创造匿名对象的两种方法
在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...
最新文章
- 对于DataSet中的问题真是郁闷啊
- java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...
- 二叉查找树--java
- GBDT分类和回归例子
- OnIntialDialog() (Dialog应用)和 OnIntialUpdate(View应用)的 程序起始点
- 贪心策略摘果子(洛谷P1478题题解,Java语言描述)
- Centos7.3 坑爹网络配置
- 软件测试经典面试题(二)给你一个网站如何测试
- JavaAgent学习笔记
- java程序设计实验指导书_java程序设计实验指导书-my
- 3D打印Gcode文件命令详解
- linux怎么设置raid,如何在Linux中配置RAID-教程
- android youtube webview,android – 如何在WebView中全屏显示youtube视频
- 给excel设置格式
- eclipse中如何把中文变成英文?
- 安装黑苹果时BIOS的正确设置
- spring(春天)
- 全国4000 AI企业北京独霸三成 | 《北京人工智能产业发展白皮书》发布(附下载)...
- 游艺《修真》新五岳论剑活动开启
- 阿里云弹性计算开发面试