`
ldb2741
  • 浏览: 32407 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

简单易懂的hibernate例子

阅读更多

数据库文件:myproject.sql

/*
MySQL Data Transfer
Source Host: localhost
Source Database: myproject
Target Host: localhost
Target Database: myproject
Date: 2009/8/26 17:23:12
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `users` VALUES ('34', '测试4', '123456', 'ok@ujs.edu.cn');
INSERT INTO `users` VALUES ('35', '测试5', '123456', 'ok@ujs.edu.cn');
INSERT INTO `users` VALUES ('36', '测试6', '123456', 'ok@ujs.edu.cn');
INSERT INTO `users` VALUES ('37', '测试7', '123456', 'ok@ujs.edu.cn');
INSERT INTO `users` VALUES ('38', '测试8', '123456', 'ok@ujs.edu.cn');

实体类:User.java

package usermap;

public class User {
private int id;
private String name;
private String password;
private String email;

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

}

hibernate类:HibernateBase.java

package usermap;

import org.hibernate.*;
import org.hibernate.cfg.*;
import java.util.*;
import java.io.IOException;
import java.io.PrintWriter;

public abstract class HibernateBase {
protected SessionFactory sessionFactory;// 会话工厂,用于创建会话
protected Session session;// hibernate会话
protected Transaction transaction; // hiberante事务

public HibernateBase() throws HibernateException {
this.initHibernate();
}

// 帮助方法
protected void initHibernate() throws HibernateException {

// 装载配置,构造SessionFactory对象
sessionFactory = new Configuration().configure().buildSessionFactory();
}

/**
*开始一个hibernate事务
*/
protected void beginTransaction() throws HibernateException {

session = sessionFactory.openSession();
transaction = session.beginTransaction();
}

/**
*结束一个hibernate事务。
*/
protected void endTransaction(boolean commit) throws HibernateException {

if (commit) {
transaction.commit();
} else {
// 如果是只读的操作,不需要commit这个事务。
transaction.rollback();
}
session.close();}
}

bean类:UserBean.java

package usermap;

import org.hibernate.*;
import org.hibernate.cfg.*;
import java.util.*;

/**
* 和course相关的业务逻辑
*/
public class UserBean extends HibernateBase {
public UserBean() throws HibernateException {
super();
}

/**
* 增加一个Course
*/
public void addUser(User user) throws HibernateException {
beginTransaction();
session.save(user);
endTransaction(true);
}

/**
* 查询系统中所有的Course,返回的是包含有Course持久对象的Iterator。
*/
public Iterator getAllUsers() throws HibernateException {
String queryString = "from User u order by u desc";
beginTransaction();
Query query = session.createQuery(queryString);
Iterator it = query.iterate();
return it;
}

/**
* 删除给定ID的course
*/
public void deleteUser(String id) throws HibernateException {
beginTransaction();
User user = (User) session.load(User.class, id);
session.delete(user);
endTransaction(true);
}

/**
* 按course的名字进行模糊查找,返回的是包含有Course持久对象的Iterator。
*/
public Iterator getSomeUser(String name) throws HibernateException {
String queryString = "select u from User as u where u.name like :name";
beginTransaction();
Query query = session.createQuery(queryString);
query.setString("name", "%" + name + "%");
Iterator it = query.iterate();
return it;
}
}
user的映射:User.hbm.xml

<?xml version="1.0" encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="usermap.User" table="users">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="password"/>
<property name="email"/>
</class>
</hibernate-mapping>

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">false</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</property>

<!-- 数据库使用者 -->

<property name="connection.username">root</property>

<!-- 数据库密码 -->

<property name="connection.password">123456</property>

<!-- 以下设置对象与数据库表格映像文件 -->
<mapping resource="usermap/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

测试网页:index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="usermap.User"%>
<%@ page import="usermap.UserBean"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
UserBean ub=new UserBean();
Iterator ii=ub.getAllUsers();

int i=0;
while(ii.hasNext()&&i<3){
User u=(User)ii.next();
out.print(u.getId()+u.getName()+"<br>");
i++;
}

%>
</body>
</html>

分享到:
评论

相关推荐

    一个很简单的hibernate例子

    本示例将深入解析一个基于Hibernate的简单应用,帮助开发者理解其基本概念和工作流程。 首先,我们需要了解Hibernate的核心概念。Hibernate通过XML配置文件或注解来定义Java类和数据库表之间的映射关系,这样我们就...

    hibernate的第一个例子

    通过这个简单的例子,初学者可以学习到如何设置Hibernate环境,创建和配置持久化对象,编写辅助类和测试类,以及如何进行基本的数据库操作。这将为他们进一步深入学习Hibernate和掌握ORM技术打下坚实的基础。

    Hibernate 的第一个例子

    这个简单的例子展示了如何使用Hibernate保存一个新用户到数据库。进一步学习时,你可以尝试查询、更新和删除操作,以及更复杂的查询表达式。 **总结** 通过这个"Hibernate的第一个例子",我们了解了如何配置...

    Hibernate实践例子程序

    一个最简单的Hibernate project(不涉及Struts, Tomcat, XDoclet,JBoss等东东)必须的几个东东: 1. Hibernate工具包。 2. JDBC数据库连接驱动。以mysql为例,mysql-connector-java-3.1.×-bin.jar。 3. 配置...

    Spring 简单整合 hibernate 例子

    标题 "Spring 简单整合 Hibernate 例子" 暗示了我们将探讨如何在Java Web开发中结合两个流行框架——Spring和Hibernate。Spring是一个全面的开源应用框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,而...

    Spring Hibernate 集成的例子

    这个例子可能是通过创建一个简单的Java项目,然后引入Spring和Hibernate的相关库,配置相应的XML文件,以及编写对应的Java代码来展示集成过程。 描述中提到的“博文链接:https://xwhoyeah.iteye.com/blog/517879”...

    springboot+hibernate+mysql简单例子

    简单的springboot的学习项目实例,使用了hibernate连接mysql数据库,进行简单的插入和查询操作,项目中已经包含依赖的jar包和数据库脚本,只需要创建配置的数据库并使用数据库脚本建立表即可。

    hibernate的简单例子

    **Hibernate 框架简介** Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作。在Java编程环境中,Hibernate 提供了一种桥梁,将复杂的SQL语句与Java对象之间进行解耦,...

    jpa + hibernate 例子

    通过这个简单的例子,开发者可以了解如何在实际项目中整合JPA和Hibernate,以及如何使用JUnit进行测试,确保数据操作的正确性和应用程序的稳定性。同时,这也是学习ORM框架和Java持久化的一个基础起点。

    hibernate登录小例子

    【hibernate登录小例子】是一个面向初学者的教程,主要展示了如何利用Hibernate框架实现一个简单的用户登录功能。在这个例子中,我们将深入探讨Hibernate的基本概念、配置、实体类的创建、映射文件的编写以及Session...

    struts+spring+hibernate例子

    在"struts+spring+hibernate简单登录的例子"中,我们可以看到一个基础的整合应用,它演示了如何将这三个框架集成到一起处理用户登录功能。下面我们将详细探讨这个例子中的关键知识点: 1. Struts框架:Struts是MVC...

    spring整合hibernate例子

    当我们谈到"Spring整合Hibernate例子"时,这意味着我们将探讨如何将这两个强大的框架结合在一起,以实现更高效、更灵活的数据库操作。 Spring框架的核心特性之一是依赖注入(Dependency Injection,DI),这使得...

    Hibernate的四种典型例子(增删改查)

    标题:“Hibernate的四种典型例子(增删改查)” 描述:“简单明了,狠适合初学者看看” 在Java开发领域,Hibernate是一个非常流行的开源对象关系映射(Object Relational Mapping,ORM)框架,它简化了Java应用与...

    纯eclipse + hibernate 例子

    在本教程中,我们将深入探讨如何使用纯Eclipse集成开发环境(IDE)和Hibernate ORM框架构建一个简单的Java项目。Hibernate是一个强大的对象关系映射(ORM)工具,它允许开发者使用面向对象的方式处理数据库操作,而...

    zk+spring+hibernate例子

    主要介绍了zk+spring+hibernate的使用方法 早期使用的是 hibernate的配置文件 后来 被改成了 引用注释的方式 老的绑定文件也没有删除,sql下面由数据库文件 导入mysql就可以,不错的教学例子 学习起来很简单

    SpringMVC+Hibernate 例子 v2.0

    提供的 "SpringMVC_Hibernate_001" 可能是一个简单的 SpringMVC+Hibernate 示例项目,包含了基本的配置和简单的 CRUD 操作。`sql` 文件夹可能包含数据库初始化脚本,用于创建示例应用所需的表结构。 总结,...

    简单的springmvc+hibernate的例子orcale数据库

    在这个"简单的springmvc+hibernate例子orcale数据库"中,我们将深入探讨这两个框架如何协同工作,以及Oracle数据库在其中的角色。 首先,SpringMVC作为Spring框架的一部分,提供了一个模型-视图-控制器(MVC)架构...

    strut2+hibernate简单例子

    在本"struts2+hibernate简单例子"中,我们将学习以下关键知识点: 1. **Struts2配置**:首先,我们需要配置Struts2的核心文件`struts.xml`,定义Action类、结果类型以及拦截器栈。这包括设置包、添加Action元素,...

    springmvc + hibernate4 简单登录例子

    在本教程中,我们将探讨如何使用Spring MVC和Hibernate 4构建一个简单的登录系统。Spring MVC是Spring框架的一部分,专门用于处理Web应用的请求-响应模型,而Hibernate 4则是一个强大的对象关系映射(ORM)工具,...

    Struts+Hibernate简单例子

    在这个"Struts+Hibernate简单例子"中,我们将深入探讨这两个框架的基本概念、如何整合使用以及它们在实际项目中的应用。 Struts是Apache软件基金会下的一个开源框架,主要负责处理Web应用程序的业务逻辑和控制流程...

Global site tag (gtag.js) - Google Analytics