5.1项目的整体框架;

5.2 Student.java
packagecom.ask.pojo;
//新建一个学生实体类;
public
class Student {
private
int id;
privateString
name;
privateString
password;
自己生成get和set方法以及其他方法;
5.2 Student.hbm.xml配置文件
<?xml
version="1.0"?>
<!DOCTYPE
hibernate-mapping PUBLIC
"-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--Generated 2016-7-15 14:21:30 by
Hibernate Tools 3.4.0.CR1-->
<hibernate-mapping>
<!-- 配置指定的类,会自动创建表,其表名就是类名的小写,然我们也可以自己来指定表名
通过table=""属性就可以指定自己想要的表名
-->
<class
name="com.ask.pojo.Student">
<!-- id就是类中的唯一标识自动生成id ,class=native
底层是根据不同数据库自动生成-->
<id
name="id">
<generator
class="native"
/>
</id>
<!-- name是类中的属性
type 是指定数据库中字段的类型
column 数据库的字段
如果不指定类型和字段名那么数据库中的字段是根据类中的属性类型和名字来定的
-->
<property
name="name"></property>
<property
name="password"></property>
</class>
</hibernate-mapping>
5.3 hibernate.cfg.xml的配置文件;
<?xml
version="1.0"encoding="UTF-8"?>
<!DOCTYPE
hibernate-configuration
PUBLIC
"-//Hibernate/HibernateConfiguration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置数据库信息-->
<property
name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property
name="connection.url">jdbc:mysql://localhost:3306/mydb</property>
<property
name="connection.username">root</property>
<property
name="connection.password">root</property>
<!-- 配置数据库方言org.hibernate.dialect.MySQL5Dialect-->
<property
name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 配置自动创建表 -->
<property
name="hbm2ddl.auto"></property>
<!-- 配置在控制台中打印sql -->
<property
name="show_sql">true</property>
<!-- 配置打印的sql格式化 -->
<property
name="format_sql">true</property>
<!-- 配置加载类映射的文件 -->
<mapping
resource="com/ask/pojo/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
5.4 StudentTest.java;
package com.ask.test;
import java.util.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
importorg.hibernate.SessionFactory;
import org.hibernate.Transaction;
importorg.hibernate.cfg.Configuration;
importorg.hibernate.service.ServiceRegistry;
importorg.hibernate.service.ServiceRegistryBuilder;
importorg.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Before;
import org.junit.Test;
import com.ask.pojo.Student;
public class StudentTest {
privateSessionFactory sessionFactory;
Configurationcfg;
@Before
publicvoid setUp() throws Exception {
//加载 hibernate.cfg.xml的配置文件的信息;
cfg= new Configuration().configure();
// 申请一个ServiceRegistry;
ServiceRegistryserviceRegistry = new ServiceRegistryBuilder()
.applySettings(cfg.getProperties()).buildServiceRegistry();
//导入sessionFactory
sessionFactory= cfg.buildSessionFactory(serviceRegistry);
}
@Test
publicvoid testCreateTable() {
Sessionsession = sessionFactory.openSession();
Transactiontx = session.beginTransaction();
SchemaExportschemaExport = new SchemaExport(cfg);
schemaExport.create(true,true);
System.out.println("Tablecreated.");
tx.commit();
}
//用户的添加;
@Test
publicvoid testInsert() {
Sessionsession = sessionFactory.openSession();
Transaction tx =session.beginTransaction();
Student s=new Student(1,"tom", "123456");
//如果没有表,创建表。有表则添加数据;
session.save(s);
// 提交事物;
tx.commit();
// 关闭session;
session.close();
}
//用的修改;
@Test
publicvoid testUpdate() {
Sessionsession = sessionFactory.openSession();
Transactiontx = session.beginTransaction();
Students = (Student) session.get(Student.class, 1);
s.setName("lucy");//鏇存柊鏁版嵁 flush()
session.update(s);
tx.commit();
session.close();
}
@Test
publicvoid testDelete() {
Sessionsession = sessionFactory.openSession();
Transactiontx = session.beginTransaction();
Students = (Student) session.get(Student.class, 1);
session.delete(s);
tx.commit();
session.close();
}
//通过用户id查询;
@Test
publicvoid testSelectById() {
Sessionsession = sessionFactory.openSession();
Students = (Student) session.get(Student.class, 11);
System.out.println(s);
session.close();
}
//通过用户id指定唯一查询;
@Test
publicvoid testSelectUnique() {
Sessionsession = sessionFactory.openSession();
Stringhql="From Student e where e.id=:id";
Queryquery = session.createQuery(hql);
query.setInteger("id",11);
Students =(Student) query.uniqueResult();
System.out.println(s);
session.close();
}
//查询用户列表;
@Test
publicvoid testSelectList() {
Sessionsession = sessionFactory.openSession();
Stringhql="From Student";
Queryquery = session.createQuery(hql);
List<Student>students=query.list();
for (Student student : students) {
System.out.println(student);
}
session.close();
}
//分页查询;
@Test
publicvoid testSelectPageList() {
Sessionsession = sessionFactory.openSession();
String hql="From Student";
Query query = session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(4);
List<Student>students=query.list();
for (Student student : students) {
System.out.println(student);
}
session.close();
}
//criteria分页查询;
@Test
publicvoid testSelectQBCList() {
Sessionsession = sessionFactory.openSession();
Criteriacriteria= session.createCriteria(Student.class);
criteria.setFirstResult(0);
criteria.setMaxResults(3);
List<Student>students=criteria.list();
for(Student student : students) {
System.out.println(student);
}
session.close();
}
}
5.5测试类的效果如下:
5.5.1表的创建;

刷新数据库查看:

5.5.2向用户添加一条数据:
在数据库查看:

5.5.3修改用户数据:

查询数据库:

5.5.4删除用户指定的数据:

查询数据库:

5.5.5 查询根据用户ID

5.5.6 分页查询

分享到:
相关推荐
本文将深入探讨如何使用Spring4和Hibernate4实现数据库的增删改查操作,以及在这个过程中可能涉及的关键知识点。 首先,Spring4是一个全面的Java应用程序框架,它提供了一种方式来管理组件(或称为bean)之间的依赖...
在这个"struts+hibernate+mysql做的增删改查小例子"中,我们将深入探讨这三个技术如何协同工作来实现数据的CRUD(Create、Read、Update、Delete)操作。 首先,Struts是一个基于MVC设计模式的Java框架,它主要用于...
在"Struts2+Hibernate的增删改查"项目中,我们主要关注以下几个关键知识点: 1. **Struts2框架**:Struts2是一个基于MVC设计模式的Action驱动的Web应用框架,它提供了请求分发、拦截器链、结果视图管理等功能。在这...
总结起来,"Hibernate+Struts 增删改查"涉及的主要知识点包括Hibernate的对象关系映射、持久化、会话管理、查询API以及Struts的MVC架构、Action、ActionForm、配置文件、拦截器和结果映射。这两个框架的结合,使得在...
总结来说,"struts+Hibernate+MySQL简单的增删改查例子"展示了如何在MyEclipse 6.5中利用这三个技术进行Web应用开发,包括模型的建立、数据库操作以及用户界面的构建。理解并掌握这个例子,有助于开发者深入理解Java...
"Java中单表和多表级联的增删改查"这个主题涵盖了基础的数据库操作以及更复杂的关联查询技术。以下是对这些知识点的详细解释: 1. **单表的增删改查(CRUD)**: - **Create(创建)**: 在Java中,通常使用JDBC...
《Hibernate的增删改查操作详解》 在Java Web开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本文将深入探讨Hibernate如何进行增删改查(CRUD)操作,旨在帮助开发者更好地理解...
本篇将详细介绍如何使用Hibernate在Oracle数据库中实现数据的增删改查操作。 首先,我们需要了解Hibernate的基本概念。Hibernate是一个对象关系映射(ORM)框架,它通过XML或注解方式将Java类与数据库表进行映射,...
在JavaWeb开发中,"黑马旧版JavaWeb品牌数据增删改查"是一个常见的实践环节,它涵盖了数据库操作的核心概念和技巧。这个主题主要是教授如何使用Java编程语言和相关的Web框架来实现对品牌数据的添加(Add)、删除...
**hibernate框架下的增删改查** Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,让开发者可以使用面向对象的方式来处理数据库事务。在这个主题下,我们将深入探讨Hibernate如何实现...
我们将探讨如何将这两个强大的框架——Spring和Hibernate——结合起来,以实现一个博客系统的用户管理功能,包括用户登录、注册、信息修改以及数据的增删改查操作。 **Spring框架** 是一个全面的企业级应用开发框架...
在"hibernate3.3+struts2实现人员的增删改查"项目中,每个CRUD(创建、读取、更新、删除)操作都会对应一个Action,比如"AddUserAction"、"DeleteUserAction"等。这些Action会调用Service层的方法,Service层再...
本教程将详细介绍如何将这两个框架整合起来,实现一个完整的用户注册和单表数据的增删改查功能,使用MySQL作为后台数据库。 **1. Struts2框架** Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java ...
总之,"spring+struts2+hibernate框架双表增删改查"项目为初学者提供了一个完整的实战平台,通过这个项目,学习者可以深入理解这三个框架如何协同工作,实现复杂的数据操作,同时掌握Java Web开发的基本流程和技巧。...
### Struts2 + Hibernate + 单表的增删改查 #### 一、概述 在当前的软件开发领域,特别是企业级应用开发中,MVC(Model-View-Controller)架构模式被广泛应用。Struts2作为Java Web开发中的经典框架之一,提供了...
"登录增删改查"可能是这个项目的一个具体功能模块,涵盖了用户登录以及相关数据的管理。登录通常涉及到验证用户名和密码,这可以通过Spring Security或Struts2的拦截器来实现。而增删改查可能涉及到用户信息、权限等...
“增删改查流程” ...本流程描述了如何使用 SSH 登录和 SqlServer2005 实现增删改查操作,包括了 Hibernate 生成表和元数据、XDoclet 自动生成文档、Struts 配置和 JSP 页面、Action 和 Manager 层的设计和实现。
本教程将详细介绍如何利用Spring3和Hibernate3实现用户管理系统的增删改查功能,非常适合初学者入门。 Spring是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,帮助...
### Struts + Hibernate 增删改查技术详解 #### 一、概述 在软件开发领域,Struts 和 Hibernate 是两个非常重要的框架。Struts 主要用于构建 Web 应用程序,而 Hibernate 则用于对象关系映射 (ORM),简化数据库...