hibernate 增删改查

用到的包

import java.util.List;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

insert
session.save

session = sessionFactory.openSession();
        transaction = (Transaction) session.beginTransaction();
        session.save(user);
        transaction.commit();
        session.close();

delete
session.delete

session = sessionFactory.openSession();
        Object o = session.load(User.class, id);
        transaction = session.getTransaction();
        session.beginTransaction();
        session.delete(o);
        transaction.commit();
        session.close();

update:
session.update
session.saveorupdate
query.executeupdate

session = sessionFactory.openSession();
transaction = session.getTransaction();
session.beginTransaction();
// session.update(user);
// session.update("id", user);
session.saveOrUpdate("id", user);
// session.update(user);
// session.saveOrUpdate("id", user);
transaction.commit();
session.close();
session = sessionFactory.openSession();
session.beginTransaction();
SQLQuery query = session.createSQLQuery("update user u set u.username = '" + user.getUsername() + "' where u.id = "+user.getId());
query.executeUpdate();
int row = query.executeUpdate();
System.out.println(row);
transaction = session.getTransaction();
transaction.commit();

select

session = sessionFactory.openSession();
transaction = session.beginTransaction();
User user = (User) session.get(User.class, id);
transaction.commit();
session.close();
System.out.println(user.toString());

完整示例代码:

package com.test1.dao.impl;

import java.util.List;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.test1.dao.UserDao;
import com.test1.model.User;

@Repository("userDao")
public class UserDaoImpl implements UserDao {

    @Autowired
    SessionFactory sessionFactory;

    Session session = null;
    Transaction transaction = null;

    @Override
    public boolean addUser(User user) throws Exception {
        session = sessionFactory.openSession();
        transaction = (Transaction) session.beginTransaction();
        session.save(user);
        transaction.commit();
        session.close();
        return true;
    }

    @Override
    public User getUserById(int id) throws Exception {
        // session = sessionFactory.openSession();
        // transaction = session.beginTransaction();
        // User user = (User) session.load(User.class, id);
        // System.out.println(user.getUsername());
        //// transaction = session.getTransaction();
        //// session.beginTransaction();
        // transaction.commit();
        // session.close();
        // return user;

        session = sessionFactory.openSession();
        transaction = session.beginTransaction();
        User user = (User) session.get(User.class, id);
        System.out.println(user.toString());
        transaction.commit();
        session.close();
        System.out.println(user.toString());
        return user;
    }

    @Override
    public List getUserList() throws Exception {
        session = sessionFactory.openSession();
        transaction = session.beginTransaction();
        List userList = session.createCriteria(User.class).list();
        transaction.commit();
        session.close();
        return userList;

    }

    @Override
    public boolean deleteUser(int id) throws Exception {
        session = sessionFactory.openSession();
        Object o = session.load(User.class, id);
        transaction = session.getTransaction();
        session.beginTransaction();
        session.delete(o);
        transaction.commit();
        session.close();
        return false;
    }

    @Override
    public boolean updateUser(User user) throws Exception {
        System.out.println(user.toString());
         session = sessionFactory.openSession();
         transaction = session.getTransaction();
         session.beginTransaction();
        // session.update(user);
        // session.update("id", user);
         session.saveOrUpdate("id", user);
         //Query query = session.createQuery("update user u set u.username = '"+user.getUsername()+"' where u.id = " + user.getId());
         //query.executeUpdate();
        // session.update(user);
        // session.saveOrUpdate("id", user);
         transaction.commit();
         session.close();
        session = sessionFactory.openSession();
        session.beginTransaction();user.getUsername() + "' where u.id = ?");
        SQLQuery query = session.createSQLQuery("update user u set u.username = '" + user.getUsername() + "' where u.id = "+user.getId());
        query.executeUpdate();
        int row = query.executeUpdate();
        System.out.println(row);
        // query.executeUpdate();
        transaction = session.getTransaction();
        transaction.commit();

        return true;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值