hibernate框架中使用Session的方法进行增删改查

1.增加:session.save(对象); 具体如下:

public static void main(String[] args){
    //读取总的配置文件
    Configuration configuration = new Configuration().configure();
    //创建SessionFactory对象(session工厂就相当于是一个生产session的地方)
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    //得到Session对象(Session就是对JDBC中Connection对象的封装)
    Session session = sessionFactory.openSession();
    //开启事务
    Transaction transaction = session.beginTransaction();
    //持久化存储数据(也就是将相关对象存在数据库中的过程)
    User user = new User();
    user.setUserName("张文哲");
    user.setPassword("zwz123456");
    session.save(user);
    //提交事务
    transaction.commit();
    //关闭session(就好比Connection对象,与数据库的连接都不是可以无限连接的)
    session.close();
}

以上就可以把数据加入数据库。其中:
    1)User类是pojo中的类,它与数据库中存储用户信息的表相对应;
    2)必须把User类的.hbm.xml文件配置好,而且在总的hibernate.cfg.xml文件配置好之后才可以使用上面的语句向数据库加入数据

2.查询:session.get(Class.clazz,id)或者session.load(Class.clazz,id)  具体如下:

【注】:这两个方法具有局限性,其只能根据主键的信息进行查询

public static void main(String[] args){
    //读取总的配置文件
    Configuration configuration = new Configuration().configure();
    //创建session工厂
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    //得到Session对象
    Session session = sessionFactory.openSession();
    //执行查询开不开启事务都是可以的,这里就不开启了
    User user = (User)session.get(User.class,1);//在数据库中的用户表查询出主键id为1的数据并返回User对象
    //关闭session
    session.close();
}
 User user = (User)session.get(User.class,1);//在数据库中的用户表查询出主键id为1的数据并返回User对象

如果使用load(Class.clazz,id)的话,就将上面这行代码换成下面这行:

 User user = (User)session.load(User.class,1);//在数据库中的用户表查询出主键id为1的数据并返回User对象

关于两者的区别:博主专门有一篇博客(在此不多加赘述):https://blog.csdn.net/My_name_is_ZwZ/article/details/82843360

3.修改:session.update(对象);  具体如下:

public static void main(String[] args){
    //读取总的配置文件
    Configuration configuration = new Configuration().configure();
    //创建session工厂
    SessionFactory sessionFactory = configuraion.buildSessionFactory();
    //得到session
    Session session = sessionFactory.openSession();
    //开启事务
    Transaction transaction = session.beginTransaction();
    //持久化数据(将主键id为1的数据的密码修改成zwz)
    User user = (User) session.load(User.class, 1);
    user.setPassword("zwz");
    session.update(user);
    transaction.commit();//提交事务
    session.close();//关闭session会话
}

4.删除:session.delete(对象);  具体如下:

public static void main(String[] args){
    //读取配置文件
    Configuration configuration = new Configuration().configure();
    //创建sessionFactory(用于生产session)
    SessionFactory sessionFactory = configuration.buildSessionFactory();
    //得到Session对象
    Session session = sessionFactory.openSession();
    //开启事务
    Transaction transaction = session.beginTransaction();
    User user =(User) session.get(User.class, 1);
    session.delete(user);//删除主键id为1的数据所对应的对象所对应对的数据库中的数据
    transaction.commit();//提交事务
    session.close();//关闭session
}

猜你喜欢

转载自blog.csdn.net/My_name_is_ZwZ/article/details/82843799