Hibernate访问数据库,HibernateTemplate操作数据库,实现增删改查

1、首先创建封装Hibernate的Dao类

import java.io.Serializable;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.stereotype.Component;

@Component
public class UserDao<T> {
    
    @Resource(name="hibernateTemplate")
    private HibernateTemplate hibernateTemplate;
    
    public void add(Object o){
        hibernateTemplate.save(o);
    }
    public List<T> select(String  hql){
        List<T> stus=(List<T>) hibernateTemplate.find(hql);
        return stus;
    }
    
    public Object get(Class clazz,Serializable id) {
        Object obj = hibernateTemplate.get(clazz, id);
        return obj;
    }
    public Object getbyid(Class class1,Long id){
        Object object = hibernateTemplate.get(class1, id);
        return object;
    }
    
    public void delete(Class clazz,Serializable id) {
        hibernateTemplate.delete(this.get(clazz, id));
    }
    
    public void update(Object o) {
        hibernateTemplate.update(o);
    }
    
}

2、中间服务类

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ssh.bean.Student;
import com.ssh.bean.Userinfodz;
import com.ssh.dao.UserDao;


@Transactional
@Service
public class UserService {
    
    @Resource(name="userDao")
    private UserDao userDao;
    
    public void add(Student stu){
        userDao.add(stu);
    }
    
    public List<Student> showUser(){
//        List<Student> stus = userDao.select("from Student");//查询所有
        List<Student> stus = userDao.select("from Student where pword LIKE  '%1%'");//条件查询
        /*users=(List<Student>)hibernateTemplate.find("from User where uname=?","秦维");*/
        return stus;
    }
    public List<Userinfodz> showinfo(){
        
        List<Userinfodz> inList = userDao.select("from Userinfodz");
        
        return inList;
    }
    public Userinfodz getobjUserinfodzbyid (Long ab){
        Userinfodz userinfodz = (Userinfodz) userDao.getbyid(Userinfodz.class,ab );
        
        return userinfodz;
    }
    public void adduserinfo(Userinfodz userinfodz){
        userDao.add(userinfodz);
    }
}

3、测试类:

    @Resource(name="userService")
    private UserService userService;

Userinfodz userinfodz2 = userService.getobjUserinfodzbyid(11L);

(1)、查询

//        List<Student> stus = userDao.select("from Student");//查询所有
        List<Student> stus = userDao.select("from Student where pword LIKE  '%1%'");//条件查询

根据id查询

    public Userinfodz getobjUserinfodzbyid (Long ab){
        Userinfodz userinfodz = (Userinfodz) userDao.getbyid(Userinfodz.class,ab );
        
        return userinfodz;
    }

(2)、插入数据

        Userinfodz userinfodz = new Userinfodz();
        userinfodz.setUsername("sqlname");
        userinfodz.setUserno(999);
        userinfodz.setUserpwd("sqlpwd");
        userService.adduserinfo(userinfodz);

@Resource(name="hibernateTemplate")
    private HibernateTemplate hibernateTemplate;

hibernateTemplate.save(userinfodz);

(3)删除数据

dao方法

    public Object getbyid(Class class1,Long id){
        Object object = hibernateTemplate.get(class1, id);
        return object;
    }
    
    public void deletebyid(Class class1,Long id){
        hibernateTemplate.delete(this.getbyid(class1, id));
    }

中间服务

    public void deletebyid(Long ab){
        userDao.deletebyid(Userinfodz.class, ab);
    }

测试

userService.deletebyid(10L);

(4)修改数据

    public void updatebyid(Class class1,String uname,String upwd,Long id){
        Userinfodz userinfodz = (Userinfodz) this.getbyid(class1,id );
        userinfodz.setUsername(uname);
        userinfodz.setUserpwd(upwd);
        hibernateTemplate.update(userinfodz);
    }

    public void updatebyid(Class class1,String uname,String upwd,Long id){
        userDao.updatebyid(class1,uname,upwd, id);
    }

userService.updatebyid(Userinfodz.class,"修改的铭2","修改的pwd2", 7L);

猜你喜欢

转载自blog.csdn.net/meixi_android/article/details/86158490