实体类:
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对于数据库的性能操作对比事例,配置,更多信息资源
在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句,就能实现对象与关系数据库之间的映射。本教程将深入讲解如何使用Hibernate进行基本的创建(Create)、...
总的来说,整合Struts2和Hibernate能够帮助开发者更高效地实现CRUD操作,同时利用Jquery增强前端用户体验,如复选框删除功能。在实际项目中,还需要注意安全性、性能优化以及错误处理等方面,确保系统的稳定和高效...
"ext3+struts2+hibernate+spring的CRUD+分页"是一个典型的Java Web开发组合,用于实现全面的数据管理功能。这个组合充分利用了各个框架的优势,提供了一个强大的后端数据处理和前端展示的解决方案。 首先,EXT3是一...
本项目“struts2+hibernate原理写的CRUD”是一个基于这两个框架实现的简单但完整的数据操作示例,包括创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)功能,同时具备了分页和分页跳转功能,适用于部门...
在"SpringMVC+Hibernate +MySql+ EasyUI实现CRUD"的项目中,开发流程大致如下: 1. **数据库设计**:首先,你需要使用MySql创建数据库和对应的表结构,定义好各字段类型和约束。 2. **实体类创建**:基于数据库表...
在这个"Struts2+Hibernate实现CRUD操作网页"项目中,我们能看到开发者如何结合这两个框架来创建一个能够进行创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)操作的Web应用程序。以下是这个项目中的关键...
在实现CRUD操作时,通常会结合Struts2的Action类和Hibernate的Session。例如,创建新记录时,Action类接收前端传来的参数,调用SessionFactory创建Session,然后通过Session的save()方法将对象保存到数据库。读取...
1.使用struts2+spring3+hibernate3整合实现用户CRUD功能。 2.使用多种配置方式 A.将hibernate从外部导入,使用MySQL作为数据库。 B.将hibernate实体映射集成到spring配置文件中。 3.使用传统的配置文件集成...
然后,需要编写Service层和DAO层的接口和实现,以实现CRUD操作。在Controller层,会创建处理用户请求的控制器方法,并使用ModelAndView或Model对象将数据传递给视图。视图通常会使用模板引擎来渲染结果,展示给用户...
在这个案例中,"SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)"是一个使用了四大主流Java技术栈的项目,分别是SpringMVC作为前端控制器、Spring作为应用层框架、Hibernate作为持久层框架,以及Oracle作为...
标题 "spring.mvc.hibernate231security-CRUD" 暗示了这是一个关于Spring MVC、Hibernate和Spring Security的项目,其中包含了创建、读取、更新和删除(CRUD)操作的实现。在这个项目中,我们将深入探讨这三大核心...
标题 "Groovy+Tapestry5+Spring2.5+Hibernate3.2实现CRUD" 涉及到的是一个使用几种技术栈构建Web应用程序的示例。这个项目结合了Groovy、Tapestry 5、Spring 2.5和Hibernate 3.2,旨在展示如何在实际开发中进行数据...
在这个“Struts_Spring_Hibernate_CRUD操作案例_分页查询”中,我们将深入探讨如何整合这三大框架实现数据的创建、读取、更新、删除(CRUD)以及分页查询。 1. **Struts框架**: - **Action类**:它是业务逻辑的...
Hibernate是一个强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL语句,就能实现对数据库的操作。它遵循JPA(Java Persistence API)规范,提供了一种对象关系映射(ORM)...
然后,通过Hibernate的配置文件和Session接口,我们可以实现CRUD(创建、读取、更新、删除)操作。 例如,当用户提交留言时,我们可以创建一个新的`Message`对象,设置其属性,然后使用Hibernate的`Session`对象...
在“Struts2和Hibernate3.0一个CRUD实例”中,我们将探讨如何使用这两个框架来创建一个完整的创建(Create)、读取(Read)、更新(Update)和删除(Delete)功能的应用。这个实例通常会包含以下几个关键部分: 1. ...
综上所述,Hibernate通过注解方式实现了对象关系映射的简洁性,使得关联关系、CRUD操作和集合映射变得更加直观。开发者可以根据业务需求灵活选择关联类型和加载策略,从而提高代码的可维护性和性能。在实际项目中,...