其他分享
首页 > 其他分享> > Hibernate学习之对实体类的crud操作

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

作者:互联网

文章目录

1 前期准备

1.1 环境搭建

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

应有以下内容:
在这里插入图片描述
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){
		
	}
}

运行工具类把表生成:(注意:要先建数据库)
在这里插入图片描述

1.3 创建测试类

测试类中写接下来的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();

	}

}

在这里插入图片描述

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方法:
在这里插入图片描述

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);
				//

标签:实体类,String,crud,User,sessionFactory,session,Hibernate,public,user
来源: https://blog.csdn.net/dawn_1108/article/details/104426334