【Hibernate】Hibernate入门2-简单的增删改查源码
2015-03-06 18:38
281 查看
增删改查原理小结:
Hibernate 的操作都是基于对象,然后把操作完成的对象"存入"数据库,包括数据库原有的储存信息也是转化为对象之后展示给用户,一行数据就是一个对象。
Hibernate 对数据库的增删改操作,就是先对一个对象的 set 各个属性,把自己需要的信息都 set 好之后,把整个对象 session.save(Object) 进入数据库。更细致地,
insert :
先把一个对象 set 好各个属性,然后 insert 进一个表,为数据库的这张表增加一行新的数据。
如果是批量保存的话,先多次调用 session.save(),最后执行 Transaction.commit()
update :
先根据某字段(如id、name)把一个(或多个)对象从数据库中select 出来,变成一个(或多个)对象,这个时候得到的对象都是有属性值的,然后我们对这(多)个对象进行 set 操作,需要改什么属性的值就去改,最后再把这(多)个对象 session.save() 进数据库,以此完成 update 。
delete :
先 new 一个对象,如果想根据id 删除数据库的某一行,那么就为这个 new 出来的属性 setId(Integer),最后 session.delete(Object)。
源代码文件目录如下:
hibernatedemo
-src
|-com.ayali.pojo
User.java
User.hbm.xml
|-com.ayali.test
UserTest.java
|-com.ayali,util
HibernateUtil.java
hibernate.cfg.xml
数据库就一张表 user ,三个字段 id int(10),name varchar(20),age varchar(3):
上源码:
UserTest.java
hibernate.cfg.xml
User.java
源码已可站内下载:http://download.csdn.net/detail/u011704894/8624997
End .
Hibernate 的操作都是基于对象,然后把操作完成的对象"存入"数据库,包括数据库原有的储存信息也是转化为对象之后展示给用户,一行数据就是一个对象。
Hibernate 对数据库的增删改操作,就是先对一个对象的 set 各个属性,把自己需要的信息都 set 好之后,把整个对象 session.save(Object) 进入数据库。更细致地,
insert :
先把一个对象 set 好各个属性,然后 insert 进一个表,为数据库的这张表增加一行新的数据。
如果是批量保存的话,先多次调用 session.save(),最后执行 Transaction.commit()
update :
先根据某字段(如id、name)把一个(或多个)对象从数据库中select 出来,变成一个(或多个)对象,这个时候得到的对象都是有属性值的,然后我们对这(多)个对象进行 set 操作,需要改什么属性的值就去改,最后再把这(多)个对象 session.save() 进数据库,以此完成 update 。
delete :
先 new 一个对象,如果想根据id 删除数据库的某一行,那么就为这个 new 出来的属性 setId(Integer),最后 session.delete(Object)。
源代码文件目录如下:
hibernatedemo
-src
|-com.ayali.pojo
User.java
User.hbm.xml
|-com.ayali.test
UserTest.java
|-com.ayali,util
HibernateUtil.java
hibernate.cfg.xml
数据库就一张表 user ,三个字段 id int(10),name varchar(20),age varchar(3):
上源码:
UserTest.java
package com.ayali.test; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.ayali.pojo.User; import com.ayali.util.HibernateUtil; public class UserTest{ Session session = null; /** * 初始化资源 session */ @Before public void before(){ session = HibernateUtil.getSession(); } /** * 释放 session */ @After public void after(){ session.close(); } /** * 使用hibernate save() 方法 保存数据 */ @Test public void testSave(){ User user = new User(); user.setName("zhangsan"); user.setAge("33"); Transaction trans = session.beginTransaction(); session.save(user); trans.commit(); } /** * 批量 save User */ @Test public void testSaveUsers(){ for(int i=0; i<5; i++){ User user = new User(); user.setName("zhangsan-"+i); session.save(user); } Transaction trans = session.beginTransaction(); trans.commit(); } /** * 使用 hibernate update() 更新数据 */ @Test public void testUpdate(){ User user = (User) session.get(User.class, 1); user.setAge("16"); Transaction trans = session.beginTransaction(); session.save(user); trans.commit(); } /** * 使用 hibernate delete() 删除数据 * * 只能通过 id 删除 */ @Test public void testDelete(){ User user = new User(); user.setId(1); Transaction trans = session.beginTransaction(); session.delete(user); trans.commit(); } /** * 使用 hibernate 查询数据 */ @Test public void testSelect(){ //使用 hql 查询 String hql = "from User "; Query query = HibernateUtil.getSession().createQuery(hql); List list = query.list(); for(int i=0; i<list.size(); i++){ User user = (User)list.get(i); System.out.println(user.getName()); } //使用 Criteria 查询 // Criteria criteria = HibernateUtil.getSession().createCriteria(User.class); // // List<User> list = criteria.list();; // for(Iterator<User> it = list.iterator();it.hasNext();){ // User user = (User)it.next(); // System.out.println(user.getName()); // } } }HibernateUtil.java
package com.ayali.util; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory sessionFactory ; static{ try { Configuration config = new Configuration().configure(); sessionFactory = config.buildSessionFactory(); } catch (HibernateException e) { e.printStackTrace(); } } public static SessionFactory getSessionFactory(){ return sessionFactory; } public static Session getSession(){ return sessionFactory.openSession(); } public static void closeSessionFactory(){ sessionFactory.close(); } }
hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.pool_size">1</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> <mapping resource="com/ayali/pojo/User.hbm.xml" /> </session-factory> </hibernate-configuration>
User.java
package com.ayali.pojo; import sunw.io.Serializable; /** * @hibernate.class * table="user" * */ public class User implements Serializable { private Integer id; private String name; private String age; public User(Integer id, String name, String age) { this.id = id; this.name = name; this.age = age; } public User() { } public User(Integer id) { this.id = id; } public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getAge() { return this.age; } public void setAge(String age) { this.age = age; } }User.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <class name="com.ayali.pojo.User" table="user"> <id name="id" type="java.lang.Integer" column="id"> <generator class="native" /> </id> <property name="name" type="java.lang.String" column="name" length="20"> </property> <property name="age" type="java.lang.String" column="age" length="3"> </property> </class> </hibernate-mapping>
源码已可站内下载:http://download.csdn.net/detail/u011704894/8624997
End .
相关文章推荐
- SSM框架整合,SSM简单应用,SSM实现增删查改,SSM入门,SSM整合源码下载
- SSM框架整合,SSM简单应用,SSM实现增删查改,SSM入门,SSM整合源码下载(转)
- 史上最简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介 doodoofish [原作]
- 史上最简单的Hibernate入门简介 - 飞鸟的专栏 - CSDNBlog
- 学习史上最简单的Hibernate入门简介有感
- 史上最简单的Hibernate入门简介 (转)
- 一个简单的Struts Hibernate入门例子(上)
- 最简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介
- 简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介
- 最简单的Hibernate入门简介
- jsf+spring+hibernate简单博客 源码
- 史上最简单的Hibernate入门简介
- 史上最简单的Hibernate入门简介