Hibernate增删改查接口

本文通过一个书籍管理系统实例,介绍如何使用Hibernate进行增删改查操作。首先配置Hibernate环境,然后定义增删改查接口,并实现具体方法,包括静态方法。最后编写测试类进行功能验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我演示的是一个书籍管理系统中书籍信息增删改查的一个实例

首先,先配置hibernate环境,这个之前介绍过,这里就不做详细介绍了


创建增删改查接口

public interface BookDao {
	public Book selectBook(int id);
	public void updateBook(int id,Book book);
	public void deleteBook(int id);
	public void addBook(Book book);
}

具体实现增删改查的方法

public Book selectBook(int id) {
		
				SessionFactory sf = null;		
				Session session = null;
				Transaction ts = null;
				Book p = new Book();
				try {
		  			sf = HibernateUtil.getSessionFactory();
					session = sf.getCurrentSession();
					ts = session.beginTransaction();			
					p = session.get(Book.class,id);
					System.out.println(p.toString());
				} catch (HibernateException e) {
					// TODO Auto-generated catch block
					if(ts != null)
					{
						ts.rollback();
					}
					e.printStackTrace();
				}		
	return p;
	}

	public void updateBook(int id,Book book) {
		// TODO Auto-generated method stub
				SessionFactory sf = null;		
				Session session = null;
				Transaction ts = null;
				
				try {
		  			sf = HibernateUtil.getSessionFactory();
					session = sf.getCurrentSession();
					ts = session.beginTransaction();
					book.setId(id);
					session.update(book);
					System.out.println("斗破"+book.getId()+" 玄幻");
					ts.commit();
				} catch (HibernateException e) {
					
					if(ts != null)
					{
						ts.rollback();
					}
					e.printStackTrace();
				}
		
	}

	public void deleteBook(int id) {
		
				SessionFactory sf = null;		
				Session session = null;
				Transaction ts = null;
				
				try {
		  			sf = HibernateUtil.getSessionFactory();
					session = sf.getCurrentSession();
					ts = session.beginTransaction();
					Book p = session.get(Book.class, id);
					session.delete(p);
					System.out.println("删除的id:"+p.getId());
					ts.commit();
				} catch (HibernateException e) {
					
					if(ts != null)
					{
						ts.rollback();
					}
					e.printStackTrace();
				}
	
	}

	public void  addBook(Book book) {
		
				SessionFactory sf = null;		
				Session session = null;
				Transaction ts = null;
				try {
		  			sf = HibernateUtil.getSessionFactory();
					session = sf.getCurrentSession();
					ts = session.beginTransaction();			
				    session.save(book);
    				System.out.println(book.toString());
					ts.commit();
				} catch (HibernateException e) {
					
					if(ts != null)
					{
						ts.rollback();
					}
					e.printStackTrace();
				}
	}

静态方法

public class HibernateUtil {
	private static Configuration cfg;
	private static SessionFactory sf;
	
	
	static
	{
		try {
			cfg = new Configuration().configure();
			sf = cfg.buildSessionFactory();
		} catch (HibernateException e) {
			
			e.printStackTrace();
		}
	}
	
	public static SessionFactory getSessionFactory(){
		return sf;
	}

编写测试类

public class Tset {
	BookDaoImpl bookDaoImpl = new BookDaoImpl();
	@Test
	public void testselect(){	
		
		bookDaoImpl.selectBook(1);
	}
	@Test
		public void testadd(){
			Book b = new Book("2",33,"长篇","钱钟书","上海晨光出版社","讽刺");
			bookDaoImpl.addBook(b);	
		}
	
	@Test
	public void testdelect(){		
		bookDaoImpl.deleteBook(3);	
	}
	@Test
	public void testupdate(){
		 Book b = new Book("为宏大",44,"哈哈","卫洪达","长沙","呵呵");
		bookDaoImpl.updateBook(1, b);		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值