- 浏览: 20887 次
- 性别:
- 来自: 深圳
最新评论
文章列表
public void testDelete() {
//1.调用工具类(session的工厂类),得到sessionfactory
SessionFactory sessionF = HiberTool.getSessionFactory();
//2.获取session
Session session = sessionF.openSession();
//3.开启事务
Transaction tx = session.beginTransaction();
//4.根据id查询,获取User对象(重点)
...
和之前的内容一样,这次首先需要将持久类中的主键从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;
}
...
之前的Hibernate使用int作为主键,其主键生成策略(在映射文件中定义)为native,这是一种根据当前使用的数据库自动选择主键策略的方法.现在使用uuid作为主键生成策略.
若使用uuid作为主键的生成策略,前提是主键要定义为String型,且映射文件中写:<generator class = "uuid"></generator>
下面是持久类和映射文件:
持久类:
package hiber1;
public class User {
private String uid;
private String username ...
需要注意的是:这两个配置文件一般写在src下,完成映射后通常记得要用ctrl检验是否映射成功.
首先是.cfg.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0 ...
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 HibernateTest {
@Test
public void add() {
//第一步:加载Hibernate核心配置文件
Configurat ...
package hiber1;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HiberTool {
static Configuration cfg = null;
static SessionFactory sessionF = null;
static {
cfg = new Configuration();
cfg.configure();
sessionF = cfg.buildSessionFactor ...