Hibernate应用
2007-11-19 12:21:55
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://youxue.blog.51cto.com/231393/51181 |
使用Hibernate步骤
创建Hibernate的配置文件 创建持久化类 创建对象-关系映射文件 通过Hibernate API编写访问数据库的代码 环境说明
编译环境 Eclipse 3.1 插件说明 MyEclipse 4.1 数据库 MySql 4.1 版本说明 Hibernate3.0.5 数据库表说明 数据库名: test 表名: user 列名 数据类型 备注 id integer Pramary key 自动增长型 username varchar(45) Not-null password varchar(45) Not-null 关系映射文件
<class>元素指定类和表的映射,它的name属性设定类名,table属性设定表名。 <id>子元素设定持久化类的OID和表的主键的映射。 <property>子元素设定类的属性和表的字段的映射。 <property>子元素包括name、type、column和not-null属性。 <property>属性
1、name属性。 指定持久化类的属性的名字。 2、type属性。 指定Hibernate映射类型。Hibernate类型是Java类型与SQL类型的桥梁。 3、not-null属性 如果<property>元素的not-null属性为true,表明不允许为null,默认为false。 4、column属性指定类的属性映射的表的字段名 Hibernate采用XML文件来配置对象-关系映射的优点:
Hibernate既不会渗透到上层的对象模型中,也不会渗透到下层数据模型中。 软件开发人员可以独立设计对象模型,不必强迫遵守任何规范。 数据库设计人员可以独立设计数据模型,不必强迫遵守任何规范。 对象—关系映射不依赖于任何程序代码,如果需要修改对象—关系映射,只需修改XML文件,不需要修改任何程序,提高了软件的灵活性,并且使维护更加方便。 Hibernate的初始化步骤 1、创建一个Configuration类的实例,Configuration类的构造方法把默认配置文件(hibernate.properties或hibernate.cfg.xml)中的配置信息读入到内存中: Configuration config = new Configuration(); 2、调用Configuration类的addClass(Customer.class)方法: config.addClass(Customer.class); 该方法把默认文件路径下的Customer.hbm.xml文件中的映射信息读入到内存中。 3、调用Configuration类的buildSessionFactory()方法: sessionFactory = config.buildSessionFactory(); 访问Hibernate的Session接口
save()方法:把Java对象保存到数据库中 update()方法:更新数据库中的Java对象 delete()方法:把Java对象从数据库中删除 load()方法:从数据库中加载Java对象 find()方法:从数据库中查询Java对象(Hibernate3.0之后 废除) 保存对象的过程
1、Hibernate初始化 2、取得Session对象 3、开始一个事务 4、创建一个Customer对象,使用new Customer()就可以了 5、使用set方法将数据填充到Customer对象中(注意,id属性不需要设置,由Hibernate自动产生) 6、调用Session对象的save()方法将Customer对象中保存到数据库中 7、提交事务 查询对象
Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); List customerList = session.find(“from Customer as c order by c.name asc”); for (Iterator iter = customerList.iterator(); iter.hasNext;) { Customer customer = (Customer) iter.next(); /* 输出customer对象 */ } transaction.commit(); session.close(); 装载对象
Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Customer customer = (Customer) session.load(Customer.class, 1); /* 输出customer对象*/ …… transaction.commit(); session.close(); 更新对象
Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Customer customer = (Customer) session.load(Customer.class, 1); /* 调用customer.setXXX()方法来修改对象 */ session.update(customer); transaction.commit(); session.close(); 删除对象 Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Customer customer = (Customer) session.load(Customer.class, 1); session.delete(customer); transaction.commit(); session.close(); 本文出自 “飞翔我的世界” 博客,请务必保留此出处http://youxue.blog.51cto.com/231393/51181 本文出自 51CTO.COM技术博客 |


youxue
博客统计信息
热门文章
最新评论
友情链接
