欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate学习之对实体类的crud操作

程序员文章站 2024-01-03 19:37:34
...

1 前期准备

1.1 环境搭建

Hibernate入门和基本操作篇环境搭建步骤。

应有以下内容:
Hibernate学习之对实体类的crud操作
User类中要生成相应的set、get和toString方法:

package cn.itcast.entity;

public class User {

 	private int uid;	
	private String username;
	private String password;
	private String address;
	public int getUid() {
		return uid;
	}
	public void setUid(int uid) {
		this.uid = uid;
	}

	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "User [uid=" + uid + ", username=" + username + ", password="
				+ password + ", address=" + address + "]";
	}
	
}

1.2 创建工具类实现表的创建

package cn.itcast.utils;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtils {

	private static Configuration configuration=null;
	private static SessionFactory sessionFactory=null;
	static{
		configuration=new Configuration();
		configuration.configure();
		sessionFactory=configuration.buildSessionFactory();
	}
	public static SessionFactory getSessionFactory(){
		return sessionFactory;
	}
	public static void main(String[] args){
		
	}
}

运行工具类把表生成:(注意:要先建数据库)
Hibernate学习之对实体类的crud操作

1.3 创建测试类

测试类中写接下来的crud操作代码
Hibernate学习之对实体类的crud操作
不要忘了导jar包,少了相应jar包就无法实现正常操作哦。jar包链接已经在入门篇贴上了。

2 crud操作实现

2.1添加

调用session里面的save方法实现添加数据操作:

package cn.itcast.hibernatetest;

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

import cn.itcast.entity.User;
import cn.itcast.utils.HibernateUtils;

public class HibernateDemo {
	@Test
	public void testAdd(){
		//1 调用工具类得到SessionFactory
		SessionFactory sessionFactory= HibernateUtils.getSessionFactory();
		
		//2 获取session
		//类似连接
		Session session=sessionFactory.openSession();
//		3、开启事务
		Transaction tx=session.beginTransaction();
//		4、写具体逻辑crud操作
		//添加功能
		User user=new User();
		user.setUsername("大黄");
		user.setPassword("7788");
		user.setAddress("福建");
		//调用session的方法实现添加
		session.save(user);
		
//		5、提交事务
		tx.commit();
//		6、关闭资源
		session.close();
		sessionFactory.close();

	}

}

Hibernate学习之对实体类的crud操作

2.2 根据id查询

调用session里面的get方法实现数据查询操作:

@Test
public void testGet(){
		//1 调用工具类得到sessionFactory
		SessionFactory sessionFactory= HibernateUtils.getSessionFactory();
		//2 获取session
		Session session=sessionFactory.openSession();
		//3、开启事务
		Transaction tx=session.beginTransaction();
		//4、写具体crud操作
		//根据id查询
		//第一个参数:实体类的class;  第二个参数:id值
		User user=session.get(User.class, 4);
		System.out.println(user);
		//5、提交事务
		tx.commit();
		//6、关闭资源
		session.close();
		sessionFactory.close();
	}

运行testGet方法:
Hibernate学习之对实体类的crud操作

2.3 修改

数据库修改数据语句:update t_user set username=? where uid=?;
从这条语句我们可以看出,要想修改数据就得先把相应数据获得(即查询出),所以进行修改操作首先得查询,然后再修改。

调用session里面的update方法实现数据修改操作:

@Test
	public void testUpdate(){
		        //1 调用工具类得到sessionFactory
				SessionFactory sessionFactory= HibernateUtils.getSessionFactory();
				//2 获取session
				Session session=sessionFactory.openSession();
				//3、开启事务
				Transaction tx=session.beginTransaction();
				//4、写具体crud操作
				//根据id查询
				User user=session.get(User.class, 4);
				//向返回的user对象里放置修改之后的值
				user.setUsername("小黄");
				//调用session的方法update进行修改				
				session.update(user);
				//????先到user对象中找到uid的值,再根据uid进行修改
				//5、提交事务
				tx.commit();
				//6、关闭资源
				session.close();
				sessionFactory.close();
	}

Hibernate学习之对实体类的crud操作
Hibernate学习之对实体类的crud操作

2.4 删除

调用session里面的delete方法实现数据删除操作:
(有两种方式,一般用第一种)

  • 第一种,根据id查询出来之后再进行删除操作
@Test
	public void testDelete(){
		        //1 调用工具类得到sessionFactory
				SessionFactory sessionFactory= HibernateUtils.getSessionFactory();
				//2 获取session
				Session session=sessionFactory.openSession();
				//3、开启事务
				Transaction tx=session.beginTransaction();
				//4、写具体crud操作
				//删除操作,根据id查询对象进行删除
				User user=session.get(User.class, 4);
				session.delete(user);
				//5、提交事务
				tx.commit();
				//6、关闭资源
				session.close();
				sessionFactory.close();
	}

Hibernate学习之对实体类的crud操作
Hibernate学习之对实体类的crud操作

  • 第二种,不用查询,直接把id值给User中的setUid方法
@Test
	public void testDelete(){
		        //1 调用工具类得到sessionFactory
				SessionFactory sessionFactory= HibernateUtils.getSessionFactory();
				//2 获取session
				Session session=sessionFactory.openSession();
				//3、开启事务
				Transaction tx=session.beginTransaction();
				//4、写具体crud操作
				//删除操作			
				User user=new User();
				user.setUid(1);
				session.delete(user);
				//5、提交事务
				tx.commit();
				//6、关闭资源
				session.close();
				sessionFactory.close();
	}

Hibernate学习之对实体类的crud操作
Hibernate学习之对实体类的crud操作

最后,要注意在运行每一个方法的时候要选中方法名,然后再右键run as—>JUnit Test

上一篇:

下一篇: