Hibernate通过createSQLQuery( )方法实现增删改查

 一、项目结构

 

二、hibernate核心配置文件:   hibernate.cfg.xm



	
	
		
		
			oracle.jdbc.driver.OracleDriver
			jdbc:oracle:thin:@localhost:1521:orcl
			wzf
			1234
			
			
			org.hibernate.dialect.Oracle10gDialect
			
			true
			true
			
			
			
		
	

 

三、hrbernate的映射文件



    
    
    	
    		
    		
    			
    				SQ_STUDENT
    			
    		
    		
    		
    		
    		
    		
    	
    

 

 四、测试类(该类包括增删改查四个方法的实现,下面依次介绍)

新增:

	/**
	 * 添加:通过序列生成主键自增
         */
	@Test
	public void insertStu(){
		Configuration configure = new Configuration().configure("hibernate.cfg.xml");
		SessionFactory sessionFactory = configure.buildSessionFactory();
		Session session = sessionFactory.openSession();
		//开启事务
		Transaction tr = session.beginTransaction();
	
		int i = session.createSQLQuery("insert into student values(SQ_STUDENT.nextval,?,?,?,?)")
			.setParameter(0, 2)
			.setParameter(1, "露娜")
			.setParameter(2, 23)
			.setParameter(3, "女")
			.setParameter(4, 1003)
			.executeUpdate();
		
		System.out.println(i);
		try {
			tr.commit();
		} catch (HibernateException e) {
			tr.rollback();
			e.printStackTrace();
		}finally{
			session.close();
		}
	}

 删除:

/**
	 * 删除
	 */
	@Test
	public void deleteStu(){
		Configuration configure = new Configuration().configure("hibernate.cfg.xml");
		SessionFactory sessionFactory = configure.buildSessionFactory();
		Session session = sessionFactory.openSession();
		//开启事务
		Transaction tr = session.beginTransaction();
		
		int i = session.createSQLQuery("delete from student where stuid = ?")
				.setParameter(0, 100)
				.executeUpdate();
		System.out.println("TestSQL.deleteStu()" + i);
		
		//事务回滚、关流
		try {
			tr.commit();
		} catch (Exception e) {
			tr.rollback();
			e.printStackTrace();
		}finally{
			session.close();
		}
	}

更新:

	/**
	 * 更新
	 */
	@Test
	public void updateStu(){
		Configuration configure = new Configuration().configure("hibernate.cfg.xml");
		SessionFactory sessionFactory = configure.buildSessionFactory();
		Session session = sessionFactory.openSession();
		Transaction tr = session.beginTransaction();
		int i = session.createSQLQuery("update student set stuname = ?,stusex = ? where stuid = ? ")
			.setParameter(0, "公孙离")
			.setParameter(1, "女")
			.setParameter(2, 9)
			.executeUpdate();
		
		System.out.println(i);
		
		//事务回滚、关流
		try {
			tr.commit();
		} catch (Exception e) {
			tr.rollback();
			e.printStackTrace();
		}finally{
			session.close();
		}
	}

查询: 

/**
	 * 查询
	 */
	@Test
	public void searchStu(){
		Configuration configure = new Configuration().configure("hibernate.cfg.xml");
		SessionFactory sessionFactory = configure.buildSessionFactory();
		Session session = sessionFactory.openSession();
		
		List list = session.createSQLQuery("select * from student")
				.addEntity(Student.class)
				.list();
		
		for (Student student : list) {
			System.out.println(student);
		}
		session.close();
		
	}

 

原文出处:

小白农, Hibernate通过createSQLQuery( )方法实现增删改查, https://blog.csdn.net/w18706334163/article/details/79923466

你可能感兴趣的:(Hibernate)