(查)使用session的get()方法从数据库中获得信息

和之前的内容一样,这次首先需要将持久类中的主键从String改回为int,因为get()方法查询数据库是根据输入的int来查询的.
其次,由于要测试输出查询的内容,需要在持久类中覆写全参的toString()方法.
持久类的变动就这些.

package hiber1;

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 + "]";
	}
	
	

	

}





其次,创建一个新的测试类,此类需要从工厂类中获得session
package hiber1;

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

public class HiberGet {
	@Test
	public void testGet(){
		//1.调用工具类(session的工厂类),得到sessionfactory
		SessionFactory sessionF = HiberTool.getSessionFactory();
		//2.获取session
		Session session = sessionF.openSession();
		//3.开启事务
		Transaction tx = session.beginTransaction();
		//4.根据id查询,获取User对象(重点)
		User user = session.get(User.class, 2);//第一个参数:实体类.class||第二个参数:id值
		System.out.println(user);//直接输出user记得要在User类中重写toString
		//5.提交事务
		tx.commit();
		//6.关闭
		session.close();
		sessionF.close();
	}

}


其余内容就不粘贴了,记得要在xml映射文件中写清楚要获取的数据表名称
最后,输出的内容如下:




猜你喜欢

转载自vaxvall.iteye.com/blog/2409342
今日推荐