1 User.java
1. package px.malijun;
2.
3. public class User {
4. private int id;
5. private String name;
6. private String password;
7. private String email;
8. public String getEmail() {
9. return email;
10. }
11. public void setEmail(String email) {
12. this.email = email;
13. }
14. public String getName() {
15. return name;
16. }
17. public void setName(String name) {
18. this.name = name;
19. }
20. public String getPassword() {
21. return password;
22. }
23. public void setPassword(String password) {
24. this.password = password;
25. }
26. public int getId() {
27. return id;
28. }
29. public void setId(int id) {
30. this.id = id;
31. }
32.
33. }
建立相应的xml映射文件:
User.hbm.xml
1. <?xml version="1.0" encoding='utf-8'?>
2. <!DOCTYPE hibernate-mapping PUBLIC
3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5.
6. <hibernate-mapping>
7. <class name="px.malijun.User" table="users">
8. <id name="id">
9. <generator class="identity"/>
10. </id>
11. <property name="name"/>
12. <property name="password"/>
13. <property name="email"/>
14. </class>
15. </hibernate-mapping>
在数据库中建立一个myproject数据库,在其中建立一个users表
在src的根目录下(以上的user.hbm.xml映射文件与User.java在同一目录下)建立hibernate的配置文件:
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>
#
# <!-- 显示实际操作数据库时的SQL -->
#
# <property name="show_sql">true</property>
#
# <!-- SQL 方言,这边设定的是MySQL -->
#
# <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
#
# <!-- JDBC 驱动程序 -->
#
# <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
#
# <!-- JDBC URL 注意这边我设定的所使用的编码 -->
#
# <property name="connection.url">jdbc:mysql://localhost:3306/myproject?useUnicode=true&characterEncoding=utf8</property>
#
# <!-- 数据库使用者 -->
#
# <property name="connection.username">root</property>
#
# <!-- 数据库密码 -->
#
# <property name="connection.password"></property>
#
# <!-- 以下设置对象与数据库表格映像文件 -->
# <mapping resource="px/malijun/User.hbm.xml"/>
#
# </session-factory>
#
# </hibernate-configuration>
由于常规操作都类似,我们建立了一个抽象类:
抽象类中的方法,不一定都是抽象的
但含有抽象方法的类一定是抽象类
可以 absctract 的方法不能实现
abstract class里可以有非abstract 方法 这样的方法可以实现
HibernateBase.java
1. package px.malijun;
2.
3. import org.hibernate.*;
4. import org.hibernate.cfg.*;
5. import java.util.*;
6. import java.io.IOException;
7. import java.io.PrintWriter;
8.
9. public abstract class HibernateBase
10. {
11. protected SessionFactory sessionFactory;//会话工厂,用于创建会话
12. protected Session session;//hibernate会话
13. protected Transaction transaction; //hiberante事务
14.
15. public HibernateBase()throws HibernateException
16. {
17. this.initHibernate();
18. }
19. // 帮助方法
20. protected void initHibernate()
21. throws HibernateException {
22.
23. // 装载配置,构造 SessionFactory对象
24. sessionFactory = new Configuration().configure().buildSessionFactory();
25. }
26.
27. /**
28. *开始一个hibernate事务
29. */
30. protected void beginTransaction()
31. throws HibernateException {
32.
33. session = sessionFactory.openSession();
34. transaction = session.beginTransaction();
35. }
36.
37. /**
38. *结束一个hibernate事务。
39. */
40. protected void endTransaction(boolean commit)
41. throws HibernateException {
42.
43. if (commit) {
44. transaction.commit();
45. } else {
46. //如果是只读的操作,不需要commit这个事务。
47. transaction.rollback();
48. }
49. session.close();
50. }
51. }
然后建立一个具体针对User操作的一个类:
UserBean.java
1. package px.malijun;
2.
3. import org.hibernate.*;
4. import org.hibernate.cfg.*;
5. import java.util.*;
6.
7. /**
8. * 和course相关的业务逻辑
9. */
10. public class UserBean extends HibernateBase {
11. public UserBean() throws HibernateException {
12. super();
13. }
14.
15. /**
16. * 增加一个Course
17. */
18. public void addUser(User user) throws HibernateException {
19. beginTransaction();
20. session.save(user);
21. endTransaction(true);
22. }
23.
24. /**
25. * 查询系统中所有的Course,返回的是包含有Course持久对象的Iterator。
26. */
27. public Iterator getAllUsers() throws HibernateException {
28. String queryString = "select users from User as user";
29. beginTransaction();
30. Query query = session.createQuery(queryString);
31. Iterator it = query.iterate();
32. return it;
33. }
34.
35. /**
36. * 删除给定ID的course
37. */
38. public void deleteUser(String id) throws HibernateException {
39. beginTransaction();
40. User user = (User) session.load(User.class, id);
41. session.delete(user);
42. endTransaction(true);
43. }
44.
45. /**
46. * 按course的名字进行模糊查找,返回的是包含有Course持久对象的Iterator。
47. */
48. public Iterator getSomeUser(String name) throws HibernateException {
49. String queryString = "select u from User as u where u.name like :name";
50. beginTransaction();
51. Query query = session.createQuery(queryString);
52. query.setString("name", "%" + name + "%");
53. Iterator it = query.iterate();
54. return it;
55. }
56. }
测试:
Test.java
1. package px.malijun;
2.
3. public class Test {
4.
5. /**
6. * @param args
7. */
8. public static void main(String[] args) {
9. // TODO Auto-generated method stub
10. UserBean ub=new UserBean();
11. User user = new User();
12. user.setName("你好,世界!");
13. user.setPassword("123456");
14. user.setEmail("ok@ujs.edu.cn");
15. ub.addUser(user);
16.
17. }
18.
19. }
分享到:
相关推荐
在Java开发领域,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用程序框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等核心特性,而Hibernate则是一个优秀的对象关系映射...
然后,在Java Project中启用Hibernate功能,配置数据库连接源和SessionFactory,以便在MyEclipse环境中编写和调试Hibernate代码。 4. 在线购物系统开发示例 - 在线购物系统是一个多层架构的应用,包括数据库、...
本项目“hibernate3.2的级联关系_JavaProject”旨在帮助初学者理解并实践Hibernate 3.2中的级联关系,包括一对多、一对一和多对多这三种主要的关系类型。 首先,让我们深入了解一下级联关系。级联关系在Hibernate中...
**JavaProject测试hibernate3.2的增删改查** 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,极大地简化了数据操作的复杂性。这个Java项目是针对Hibernate...
【Spring Hibernate JPA 项目样本】是一个典型的Java后端开发示例,它结合了Spring框架、Hibernate ORM工具和Java Persistence API(JPA)来构建数据库驱动的应用程序。这个项目展示了如何在实际开发中有效地整合这...
Struts和Hibernate是Java开发中两个非常重要的框架,它们分别用于处理MVC(Model-View-Controller)架构的控制层和持久层。本实例通过MyEclipse集成开发环境,为初学者提供了一个基础的整合应用,帮助理解这两个框架...
在这个"Struts Spring Hibernate 三合一的实例"中,我们可以看到开发者已经整合了这三个框架,形成了一套完整的Java Web应用程序。以下是对每个文件或文件夹的简要说明: 1. `.classpath`:这是Eclipse或类似的IDE...
总的来说,"Java project code1"是一个涵盖了Java开发核心概念和最佳实践的实例,通过分析"taotao-manager"中的代码,我们可以学习到Java项目中的模块化设计、MVC模式、框架集成、数据库操作、网络通信、安全机制...
一个最简单的Hibernate project(不涉及Struts, Tomcat, XDoclet,JBoss等东东)必须的几个东东: 1. Hibernate工具包。 2. JDBC数据库连接驱动。以mysql为例,mysql-connector-java-3.1.×-bin.jar。 3. 配置...
这个实例源代码包提供了一个整合Struts、Hibernate和Spring的实际应用,对于学习和理解这三个框架如何协同工作,以及如何在实际项目中应用它们,具有很高的参考价值。通过分析这些文件和代码,开发者可以深入理解MVC...
在本教程中,我们将深入探讨如何使用MyEclipse集成开发环境(IDE)创建一个整合了Hibernate和Struts的实例项目。这个过程分为几个关键步骤,包括设置环境、创建项目、配置框架、编写代码以及测试应用。 首先,让我们...
总结,"Struts2 Hibernate project"是一个演示了如何结合这两个框架来开发Java web应用的实例。通过Struts2处理用户请求并转发至Service层,Service层利用Hibernate与数据库交互,从而实现数据的存储和检索。这种...
在Java Web开发领域,Struts2、Spring2.5与Hibernate3是三个非常重要的框架,它们分别负责MVC模式中的控制器、业务逻辑层和服务层的持久化操作。通过这三个框架的有效整合,可以构建出更加健壮、灵活且易于维护的...
### MyEclipse(Struts+Spring+Hibernate)入门实例解析 #### 一、概述与环境配置 本教程旨在通过一个实际的项目案例,介绍如何利用MyEclipse集成开发环境搭建Struts+Spring+Hibernate(SSH)框架,实现一个基础的...
项目中的"Project"文件可能包含了项目的源代码,包括各层的Java类、配置文件、以及Web相关的资源。而"Web"文件可能包含了Web应用的部署目录结构,如WEB-INF、静态资源文件等。 这个整合项目的实例和资源对于开发者...
Struts和Hibernate是Java Web开发中的两个重要框架,它们分别负责表现层和持久层的管理。Struts作为MVC(Model-View-Controller)架构的一部分,主要用来处理用户请求和控制应用程序流程,而Hibernate则是一个对象...
### Struts + Hibernate 入门实例(Eclipse 版) #### 一、开发环境搭建 在本章节中,作者朱千平将引导我们完成开发环境的搭建,包括以下几个步骤: 1. **下载安装Eclipse**: Eclipse 是一个开源的集成开发环境...
【Java Web应用开发实例】是关于使用Java技术开发Web应用程序的实践教程,主要涉及Eclipse集成开发环境(IDE)与Apache Tomcat服务器的配置以及基本的JSP和Servlet的创建。以下将详细解释这些知识点: 1. **Eclipse...
1. **创建项目**:在Eclipse中新建一个Dynamic Web Project,然后添加Struts和Hibernate的库依赖,包括struts2-core、hibernate-core等JAR文件。 2. **配置Struts**:在Web-INF目录下创建struts.xml配置文件,定义...
在这个项目中,数据库交互可能使用JDBC(Java Database Connectivity)或ORM框架如Hibernate。JDBC允许直接编写SQL语句,而ORM框架则提供对象关系映射,简化数据操作。 7. **MVC设计模式** 该项目可能采用了Model...