`
ak23173969
  • 浏览: 29385 次
社区版块
存档分类
最新评论

独立测试hibernate框架连接数据实现增删改查

阅读更多

引入 jar包

hibernate配置文件 hibernate.cfg.xml

domain对象原型  User

hbm映射文件

单一测试Demo TestDemo

中间缺少某个包可能产生的异常  

 

框架名称 引用jar 必须性
hibernate antlr-2.7.6.jar 必要
  asm-3.1.jar 必要
  cglib-2.2.jar 必要
  commons-collections-3.1.jar 必要
  commons-logging.jar 必要
  dom4j-1.6.1.jar 必要
  hibernate3.jar 必要
  hibernate-entitymanager.jar 必要
  hibernate-jpa-2.0-api-1.0.0.Final.jar 必要
  javassist-3.12.0.GA.jar 必要
  jta-1.1.jar 必要
  mysql-connector-java-5.0.7-bin.jar 必要

 

hibernate.cfg.xml

 

<hibernate-configuration>

<session-factory>
	<property name="myeclipse.connection.profile">com.mysql.jdbc.Driver</property>
	<property name="connection.url">jdbc:mysql://127.0.0.1:3306/myapplication</property>
	<property name="connection.username">root</property>
	<property name="connection.password">******</property>
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
	<property name="javax.persistence.validation.mode" >none</property>
	<property name="hibernate.hbm2ddl.auto">update</property>
	
	<mapping resource="com/web/wp/domain/hbm/Users.hbm.xml" />
	

</session-factory>

</hibernate-configuration>

 

 

User

 

package com.web.wp.domain;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 用户原型
 * */
public class User {
	private Long u_id;
	private String u_name;
	private String sex;
	private String message;
	private Date birthday;
	private int age;
	private String liking;
	private BigDecimal deposit;
	
	
	public User() {

	}
	public User(String u_name) {
		super();
		this.u_name = u_name;
	}
	public Long getU_id() {
		return u_id;
	}
	public void setU_id(Long u_id) {
		this.u_id = u_id;
	}
	public String getU_name() {
		return u_name;
	}
	public void setU_name(String u_name) {
		this.u_name = u_name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getLiking() {
		return liking;
	}
	public void setLiking(String liking) {
		this.liking = liking;
	}
	public BigDecimal getDeposit() {
		return deposit;
	}
	public void setDeposit(BigDecimal deposit) {
		this.deposit = deposit;
	}
	
}

 

 

TestDemo

package com.web.wp.hibernate;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import com.web.wp.domain.User;

/**
 * 测试独立使用hibernate框架连接数据库,实现增删改查
 * 
 * */
public class TestDemo {
	/**
	 * 获取configuration
	 * 获取sessionfactory
	 * 获取session 
	 * 获取Transaction 
	 * 
	 * */
	
	@Test
	/**测试*/
	public void test(){
		Configuration cf=new Configuration().configure();
		SessionFactory factory=cf.buildSessionFactory();
	/*	Session session=factory.getCurrentSession(); 假如没有配置当前线程 会失败?*/
		Session session=factory.openSession();
		User us=new User("张三");
		us=find(session, 2L);
		us.setU_name("王五");
		update(session, us);
		factory.close();
	}
	
	/**保存*/
	public void save(Session session,User us){
		Transaction tx= session.beginTransaction();
		
		try {
			session.save(us);
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			tx.rollback();
		}finally{
			session.close();
		}
	}
	
	/**删除*/
	public void delete(Session session,User us){
		Transaction tx= session.beginTransaction();
		try {
			session.delete(us);
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			tx.rollback();
		}finally{
			session.close();
		}
		
	}
	/**
	 * 查询单个
	 * */
	public User find(Session session,Long id){
		Transaction tx= session.beginTransaction();
		User us=(User)session.get(User.class, id);
		tx.commit();
		return us;
	}
	
	/**
	 * 修改单个
	 * */
	public void update(Session session,User us){
		Transaction tx= session.beginTransaction();
		try {
			session.saveOrUpdate(us);
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			tx.rollback();
		}finally{
			session.close();
		}
	}
	
}

 

肯能出现的异常

1 Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners
结果是 hibernate-distribution-3.6.0.Final\lib\jpa\hibernate-jpa-2.0-api-1.0.0.Final.jar这个包

2 跟valication相关的错误,先去将	<property name="javax.persistence.validation.mode" >none</property> 配置

 

分享到:
评论

相关推荐

    spring boot maven 连接mysql实现增删改查

    这篇文章将深入探讨如何在MyEclipse环境中使用这些技术实现一个简单的数据管理应用,即增删改查(CRUD)功能。 首先,`Spring Boot`是Spring框架的简化版本,它提供了快速构建独立的、生产级别的基于Spring的应用...

    spring4MVC+Hibernate4实例(增删改查)

    在本实例中,"spring4MVC+Hibernate4实例(增删改查)"是一个基于Maven构建的Java Web项目,旨在演示如何整合Spring MVC和Hibernate框架来实现数据的CRUD(创建、读取、更新和删除)操作。Spring MVC是Spring框架的...

    springboot+jpa+thymeleaf实现简单增删改查

    在本教程中,我们将深入探讨如何使用Spring Boot、JPA(Java Persistence API)以及Thymeleaf模板引擎实现一个简单的数据库操作,包括增删改查(CRUD)。Spring Boot简化了Java应用程序的开发过程,而JPA是Java平台...

    JSP+Servlet+JDBC实现MYSQL增删改查

    在实现增删改查功能时,通常会创建一个Servlet来接收HTTP请求,然后通过JDBC与MySQL数据库交互。例如,对于添加数据,Servlet会解析请求参数,构建SQL插入语句,然后使用JDBC的Connection、Statement或...

    springboot+hibernate+html增删改查demo

    在本项目"springboot+hibernate+html增删改查demo"中,我们将探讨如何使用Spring Boot框架、Hibernate ORM工具以及HTML页面实现一个基本的数据管理应用。这个应用提供了对数据库记录的添加、删除、修改和查询功能。...

    servlet实现增删改查.docx

    在这个文档中,"servlet实现增删改查"的描述表明我们将探讨如何使用Servlet来操作数据库,完成对数据的基本操作,如添加(insert)、删除(delete)、修改(update)和查询(query)。 首先,开发环境包括JDK 7、...

    springboot简单增删改查

    在"springboot简单增删改查"这个项目中,开发者已经使用SpringBoot搭建了一个基本的数据操作功能,虽然内部API可能未完善,但核心的CRUD(Create、Read、Update、Delete)功能应该是可以正常运行的。 1. **...

    简单的springboot入门程序及简单增删改查.zip

    在本示例中,"简单的springboot入门程序及简单增删改查.zip" 包含了一个用于初学者的SpringBoot项目,旨在演示基本的CRUD(创建、读取、更新、删除)操作。以下将详细介绍SpringBoot的基础知识和在这个入门程序中...

    增删改查数据库项目连带数据库z1.zip

    在本项目"增删改查数据库项目连带数据库z1.zip"中,主要涉及的是使用Spring Boot框架进行基本的数据操作,即增、删、改、查(CRUD)功能的实现。Spring Boot是Spring框架的一个简化版本,它旨在简化创建独立的、生产...

    SSH整和的增删改查

    3. **Hibernate框架**:Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过Hibernate,开发者可以使用Java对象而不是SQL语句进行数据库操作,使得代码更加可读和维护。 4. **SSH...

    配置hibernate数据源

    通过Hibernate API进行增删改查操作,常用的方法包括session.save(), session.get(), session.update()和session.delete()。 6. 进行单元测试。在代码开发完成后,需要对Hibernate的配置和实体类的映射进行测试,...

    java做的Dao模式的增 删 改 查

    Java DAO(Data Access Object)模式是一种常见的软件设计模式,它在Java应用中用于数据库操作,以实现业务逻辑层与数据访问层的解耦。DAO模式的主要目标是将数据存储的具体细节(如SQL查询)与应用程序的其他部分...

    SMART系统、 基于 spirng mvc、 spring、 hibernate框架开发

    4. 编写DAO(数据访问对象):处理与数据库的交互,包括增删改查操作。 5. 实现Service层:封装业务逻辑,调用DAO操作数据。 6. 使用Spring MVC搭建Controller:处理HTTP请求,调用Service方法,返回视图或JSON响应...

    Struts+Spring+Hibernate学生班级管理web项目框架

    在学生班级管理项目中,Hibernate负责将Java对象(如Student和Class对象)与数据库表对应,通过HQL(Hibernate查询语言)或SQL进行数据的增删改查操作。实体类通过注解或XML配置与数据库表关联,Hibernate会自动处理...

    DAO模式实现增加删除修改操作

    在DAO模式中,通常会定义一个接口,如`UserDAO`,包含增删改查等方法。例如,`addUser()`, `deleteUser()`, `updateUser()` 和 `findUser()`。然后,为这个接口创建一个实现类,如`UserDAOImpl`,在实现类中编写...

    使用Java编写的酒店管理系统

    - **Hibernate或MyBatis**:作为持久层框架,负责数据库操作,提供了ORM(对象关系映射)功能,使得数据库操作更加便捷。 - **Servlet和JSP**:构建服务器端应用程序,处理HTTP请求,展示动态内容。 - **MVC模式*...

    hibernate测试题

    - **数据库操作**:通过Hibernate API(如SessionFactory、Session等)进行增删改查操作。 在实际开发中,可能还会涉及到Spring框架的集成,Spring能够简化Hibernate的配置和使用,将数据库配置和事务管理纳入其IoC...

    struts+hibernate网络购物系统.rar

    它通过XML配置文件或注解将Java对象映射到数据库表,这样在操作对象时,Hibernate会自动完成数据的增删改查。此外,Hibernate还提供了查询语言HQL(Hibernate Query Language),以及Criteria API,使得查询更加灵活...

    基于Hibernate框架的数据持久层架构设计及应用

    2. DAO接口:定义了对数据库操作的方法,例如增删改查。每个接口方法对应一个特定的数据库操作。 3. DAO实现类:实现了DAO接口,具体执行与数据库的交互,通常会使用Hibernate提供的Session接口进行持久化操作。 4...

    Java 学生信息管理系统(自己做的,连一下数据库就能用了)

    这个系统由个人独立完成,其核心功能是与数据库进行交互,存储和检索学生的各种数据。下面将详细介绍该系统涉及的主要知识点。 1. **Java编程基础**: Java是一种广泛使用的面向对象的编程语言,具有跨平台、安全...

Global site tag (gtag.js) - Google Analytics