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配置与注释配置相关推荐

  1. Java框架篇---spring aop两种配置方式

    Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步:  1. 使用注解@Aspect来定义一个切面,在切面中 ...

  2. 怎么看python环境变量配置是否好了验证图片_简述验证Anaconda是否安装成功的两种方式和Anaconda环境变量配置过程...

    加个"星标",每天一起快乐的学习 今 日 鸡 汤 闻道欲来相问讯,西楼望月几回圆. /1 前言/ 大家好,我是 Rocky0429,今天我给大家介绍一下验证Anaconda是否安装 ...

  3. 配置 yum 源的两种方法

    配置 yum 源的两种方法 由于 redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源,以下为详细过程: 1.删除redh ...

  4. eclipse4.6安装tomcate插件 Eclipse4.6(neno)配置Tomcat插件的两种方式

    为什么80%的码农都做不了架构师?>>>    Eclipse4.6(neno)配置Tomcat插件的两种方式 ,自己用的第一种手动安装 ①:下载net.sf.eclipse.tom ...

  5. 简述验证Anaconda是否安装成功的两种方式和Anaconda环境变量配置过程

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 闻道欲来相问讯,西楼望月几回圆. ...

  6. CentOS7下配置Supervisor自启动的两种方法

    很多网友留言问如何配置Supervisor 自启动,现将如何在CentOS7下配置Supervisor自启动的两种方法整理如下: 一.方法一 直接将启动命令加入到/etc/rc.d/rc.local中 ...

  7. 显示屏连接DL580服务器方法,DL380, DL580, DL360 服务器系列配置Raid 5的两种方法.doc...

    ISSUE: 本文介绍DL380, DL580, DL360 服务器系列配置Raid 5的两种方法: 使用ORCA配置和使用Smart Start7.91中的Array Configuration U ...

  8. java读取csv文件的两种方式

    java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...

  9. java 匿名list,java创造匿名对象的两种方法

    在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...

最新文章

  1. 对于DataSet中的问题真是郁闷啊
  2. java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...
  3. 二叉查找树--java
  4. GBDT分类和回归例子
  5. OnIntialDialog() (Dialog应用)和 OnIntialUpdate(View应用)的 程序起始点
  6. 贪心策略摘果子(洛谷P1478题题解,Java语言描述)
  7. Centos7.3 坑爹网络配置
  8. 软件测试经典面试题(二)给你一个网站如何测试
  9. JavaAgent学习笔记
  10. java程序设计实验指导书_java程序设计实验指导书-my
  11. 3D打印Gcode文件命令详解
  12. linux怎么设置raid,如何在Linux中配置RAID-教程
  13. android youtube webview,android – 如何在WebView中全屏显示youtube视频
  14. 给excel设置格式
  15. eclipse中如何把中文变成英文?
  16. 安装黑苹果时BIOS的正确设置
  17. spring(春天)
  18. 全国4000 AI企业北京独霸三成 | 《北京人工智能产业发展白皮书》发布(附下载)...
  19. 游艺《修真》新五岳论剑活动开启
  20. 阿里云弹性计算开发面试

热门文章

  1. Learning a Similarity Metric Discriminatively, with Application to Face Verification.
  2. On Mobile Edge Caching 1
  3. 未备案域名设置域名URL转发
  4. 解决dockers无法启动
  5. B4A 动态权限申请时遇到的问题与解决方法
  6. 26自学转行前端(写给和1年前一样迷茫的我的你)
  7. 锐龙r7 5700x参数r7 5700x相当于英特尔什么级别
  8. 爆肝写的博客,浏览量还是两位数!
  9. 工作中:解决wps文字无法打开数据源
  10. 云游戏发展的这三年,阿里元境怎么样了?| 近匠