`

hibernate (二) 实现简单的CRUD

 
阅读更多

  实体类:

public class User { 

private int id; 
private String username; 
private String password; 
private String nickname; 
private Date born; 
省略get,set方法 
}

  User.hbm.xml

<hibernate-mapping package="org.th.model">
    <class name="User" table="t_user" >
          <id name="id"> 
               <!-- native是oracle和mysql合体(或者说是选择器):当使用oracle是会选择sequence,mysql时会选择increment -->
            <generator class="native"></generator>
          </id>       
          <property name="username"></property>
          <property name="password"></property>
          <property name="nickname"></property>
          <property name="born" type="timestamp"></property>
    
    </class>
</hibernate-mapping>

 hibernate.cfg.xml

<session-factory>
	<!-- hibernate的方言,用来确定连接的数据库 -->
	<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
	
	<!-- 数据库驱动类  -->
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <!-- 数据库的连接字符串和用户名密码 -->
	<property name="connection.url">jdbc:mysql://localhost:3306/test_hibernate</property>
	<property name="connection.username">root</property>
	<property name="connection.password">root</property>
	
	<!--在使用hibernate,会现在sql语句  -->
	<property name="show_sql">true</property>
	<!-- 自动完成类到数据表的转换 -->
	<property name="hibernate.hbm2ddl.auto">update</property>
    
    <!-- 加入实体类的映射文件 -->
    <mapping resource="org/th/model/User.hbm.xml"/>
  </session-factory>

 测试类TestCRUD :

 

public class TestCRUD {
	private static final SimpleDateFormat format = new SimpleDateFormat(
			"yyyy-MM-ddd");

	@Test
	public void testAdd() {
		Session session = null;
		try {
			session = HibernateUtil.openSession();

			session.beginTransaction();

			User user = new User();
			user.setBorn(format.parse("1978-12-21"));
			user.setUsername("李四");
			user.setPassword("123");
			user.setNickname("lisi");

			session.save(user);
			session.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
			if (session != null)
				session.getTransaction().rollback();
		} finally {
			if (session != null)
				HibernateUtil.close(session);
		}
	}

	@Test
	public void testLoad() {
		Session session = null;
		try {
			session = HibernateUtil.openSession();
			User user = (User) session.load(User.class, 1);
			System.out.println(user);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (session != null)
				HibernateUtil.close(session);
		}
	}

	@Test
	public void testUpdate() {
		Session session = null;
		try {
			session = HibernateUtil.openSession();

			session.beginTransaction();
			User user = (User) session.load(User.class, 2);
			user.setUsername("小黑哥");

			session.update(user);
			session.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
			if (session != null)
				session.getTransaction().rollback();
		} finally {
			if (session != null)
				HibernateUtil.close(session);
		}
	}

	@Test
	public void testDelete() {
		Session session = null;
		try {
			session = HibernateUtil.openSession();

			session.beginTransaction();
			// User user=(User)session.load(User.class, 2);
			User user = new User();
			user.setId(3);

			session.delete(user);
			session.getTransaction().commit();
		} catch (Exception e) {
			e.printStackTrace();
			if (session != null)
				session.getTransaction().rollback();
		} finally {
			if (session != null)
				HibernateUtil.close(session);
		}
	}

	/**
	 * 
	 * @Title: testList
	 * @Description: 通过hibernate 的hql语句查询 返回list集合
	 * @param
	 * @return void 返回类型
	 * @throws
	 */
	@Test
	public void testList() {
		Session session = null;
		try {
			session = HibernateUtil.openSession();
			List<User> list = session.createQuery("from User").list();
			for (User user : list) {
				System.out.println(user);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (session != null)
				HibernateUtil.close(session);
		}
	}

	/**
	 * 
	 * @Title: testPaging
	 * @Description: 通过hibernate 的hql语句查询 返回 分页之后 list集合,
	 * @param
	 * @return void 返回类型
	 * @throws
	 */
	@Test
	public void testPaging() {
		Session session = null;
		try {
			session = HibernateUtil.openSession();
			List<User> list = session.createQuery("from User")
					.setFirstResult(2).setMaxResults(2).list();
			for (User user : list) {
				System.out.println(user);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (session != null)
				HibernateUtil.close(session);
		}
	}
}

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Hibernate与JDBC对于数据库CRUD操作性能示例

    Hibernate与JDBC对于数据库的性能操作对比事例,配置,更多信息资源

    Hibernate基本增删改CRUD操作

    在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句,就能实现对象与关系数据库之间的映射。本教程将深入讲解如何使用Hibernate进行基本的创建(Create)、...

    struts2与hibernate的整合实现数据的crud

    总的来说,整合Struts2和Hibernate能够帮助开发者更高效地实现CRUD操作,同时利用Jquery增强前端用户体验,如复选框删除功能。在实际项目中,还需要注意安全性、性能优化以及错误处理等方面,确保系统的稳定和高效...

    ext3+struts2+hibernate+spring的CRUD+分页

    "ext3+struts2+hibernate+spring的CRUD+分页"是一个典型的Java Web开发组合,用于实现全面的数据管理功能。这个组合充分利用了各个框架的优势,提供了一个强大的后端数据处理和前端展示的解决方案。 首先,EXT3是一...

    struts2+hibernate原理写的CRUD

    本项目“struts2+hibernate原理写的CRUD”是一个基于这两个框架实现的简单但完整的数据操作示例,包括创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)功能,同时具备了分页和分页跳转功能,适用于部门...

    SpringMVC+Hibernate +MySql+ EasyUI实现CRUD

    在"SpringMVC+Hibernate +MySql+ EasyUI实现CRUD"的项目中,开发流程大致如下: 1. **数据库设计**:首先,你需要使用MySql创建数据库和对应的表结构,定义好各字段类型和约束。 2. **实体类创建**:基于数据库表...

    Strust2+Hibernate实现CRUD操作网页

    在这个"Struts2+Hibernate实现CRUD操作网页"项目中,我们能看到开发者如何结合这两个框架来创建一个能够进行创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)操作的Web应用程序。以下是这个项目中的关键...

    struts2+hibernate 实现的CRUD

    在实现CRUD操作时,通常会结合Struts2的Action类和Hibernate的Session。例如,创建新记录时,Action类接收前端传来的参数,调用SessionFactory创建Session,然后通过Session的save()方法将对象保存到数据库。读取...

    struts2+spring3+Hibernate2实现CRUD功能

    1.使用struts2+spring3+hibernate3整合实现用户CRUD功能。 2.使用多种配置方式 A.将hibernate从外部导入,使用MySQL作为数据库。 B.将hibernate实体映射集成到spring配置文件中。 3.使用传统的配置文件集成...

    myeclips10对springmvc4.0+hibernate4.0的完整crud

    然后,需要编写Service层和DAO层的接口和实现,以实现CRUD操作。在Controller层,会创建处理用户请求的控制器方法,并使用ModelAndView或Model对象将数据传递给视图。视图通常会使用模板引擎来渲染结果,展示给用户...

    SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)

    在这个案例中,"SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)"是一个使用了四大主流Java技术栈的项目,分别是SpringMVC作为前端控制器、Spring作为应用层框架、Hibernate作为持久层框架,以及Oracle作为...

    spring.mvc.hibernate231security-CRUD

    标题 "spring.mvc.hibernate231security-CRUD" 暗示了这是一个关于Spring MVC、Hibernate和Spring Security的项目,其中包含了创建、读取、更新和删除(CRUD)操作的实现。在这个项目中,我们将深入探讨这三大核心...

    Groovy+Tapestry5+Spring2.5+Hibernate3.2实现CRUD

    标题 "Groovy+Tapestry5+Spring2.5+Hibernate3.2实现CRUD" 涉及到的是一个使用几种技术栈构建Web应用程序的示例。这个项目结合了Groovy、Tapestry 5、Spring 2.5和Hibernate 3.2,旨在展示如何在实际开发中进行数据...

    Struts_Spring_Hibernate_CRUD操作案例_-分页查询

    在这个“Struts_Spring_Hibernate_CRUD操作案例_分页查询”中,我们将深入探讨如何整合这三大框架实现数据的创建、读取、更新、删除(CRUD)以及分页查询。 1. **Struts框架**: - **Action类**:它是业务逻辑的...

    hibernate 简单CRUD操作

    Hibernate是一个强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现对数据库的操作。它遵循JPA(Java Persistence API)规范,提供了一种对象关系映射(ORM)...

    JSP+Hibernate实现留言板

    然后,通过Hibernate的配置文件和Session接口,我们可以实现CRUD(创建、读取、更新、删除)操作。 例如,当用户提交留言时,我们可以创建一个新的`Message`对象,设置其属性,然后使用Hibernate的`Session`对象...

    Struts2和Hibernate3.0一个CRUD实例

    在“Struts2和Hibernate3.0一个CRUD实例”中,我们将探讨如何使用这两个框架来创建一个完整的创建(Create)、读取(Read)、更新(Update)和删除(Delete)功能的应用。这个实例通常会包含以下几个关键部分: 1. ...

    Hibernate关联关系的CRUD和集合映射(annotation)

    综上所述,Hibernate通过注解方式实现了对象关系映射的简洁性,使得关联关系、CRUD操作和集合映射变得更加直观。开发者可以根据业务需求灵活选择关联类型和加载策略,从而提高代码的可维护性和性能。在实际项目中,...

Global site tag (gtag.js) - Google Analytics