博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate之CRUD操作
阅读量:5038 次
发布时间:2019-06-12

本文共 6239 字,大约阅读时间需要 20 分钟。

package loaderman.b_crud;import loaderman.a_hello.Employee;import java.io.Serializable;import java.util.List;public interface IEmployeeDao {    void save(Employee emp);    void update(Employee emp);    Employee findById(Serializable id);    List
getAll(); List
getAll(String employeeName); List
getAll(int index, int count); void delete(Serializable id); }
package loaderman.b_crud;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;import org.junit.Test;public class App_ddl {    // 自动建表    @Test    public void testCreate() throws Exception {        // 创建配置管理类对象        Configuration config = new Configuration();        // 加载主配置文件        config.configure();        // 创建工具类对象        SchemaExport export = new SchemaExport(config);        // 建表        // 第一个参数: 是否在控制台打印建表语句        // 第二个参数: 是否执行脚本        export.create(true, true);    }}
package loaderman.b_crud;import java.io.Serializable;import java.util.List;import loaderman.a_hello.Employee;import loaderman.utils.HibernateUtils;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;public class EmployeeDaoImpl implements IEmployeeDao{    @Override    public Employee findById(Serializable id) {        Session session = null;        Transaction tx = null;        try {            // 获取Session            session = HibernateUtils.getSession();            // 开启事务            tx = session.beginTransaction();            // 主键查询            return (Employee) session.get(Employee.class, id);        } catch (Exception e) {            throw new RuntimeException(e);        } finally {            tx.commit();            session.close();        }    }    @Override    public List
getAll() { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); // HQL查询 Query q = session.createQuery("from Employee"); return q.list(); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public List
getAll(String employeeName) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); Query q =session.createQuery("from Employee where empName=?"); // 注意:参数索引从0开始 q.setParameter(0, employeeName); // 执行查询 return q.list(); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public List
getAll(int index, int count) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); Query q = session.createQuery("from Employee"); // 设置分页参数 q.setFirstResult(index); // 查询的其实行 q.setMaxResults(count); // 查询返回的行数 List
list = q.list(); return list; } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public void save(Employee emp) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); // 执行保存操作 session.save(emp); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public void update(Employee emp) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); session.update(emp); } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } } @Override public void delete(Serializable id) { Session session = null; Transaction tx = null; try { session = HibernateUtils.getSession(); tx = session.beginTransaction(); // 先根据id查询对象,再判断删除 Object obj = session.get(Employee.class, id); if (obj != null) { session.delete(obj); } } catch (Exception e) { throw new RuntimeException(e); } finally { tx.commit(); session.close(); } }}
package loaderman.a_hello;import java.util.Date;public class Employee {    private int empId;    private String empName;    private Date workDate;        public int getEmpId() {        return empId;    }    public void setEmpId(int empId) {        this.empId = empId;    }    public String getEmpName() {        return empName;    }    public void setEmpName(String empName) {        this.empName = empName;    }    public Date getWorkDate() {        return workDate;    }    public void setWorkDate(Date workDate) {        this.workDate = workDate;    }    @Override    public String toString() {        return "Employee [empId=" + empId + ", empName=" + empName                + ", workDate=" + workDate + "]";    }    }

 

package loaderman.utils;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtils {    private static SessionFactory sf;    static {        // 加载主配置文件, 并创建Session的工厂        sf = new Configuration().configure().buildSessionFactory();    }    // 创建Session对象    public static Session getSession(){        return sf.openSession();    }}

 

转载于:https://www.cnblogs.com/loaderman/p/10036878.html

你可能感兴趣的文章
开户vim编程之--cscope支持
查看>>
python数据类型图解
查看>>
C#微信登录-手机网站APP应用
查看>>
HTML5实践 -- iPhone Safari Viewport Scaling Bug
查看>>
一位数据挖掘成功人士 给 数据挖掘在读研究生 的建议
查看>>
Python3.6.0安装
查看>>
hdu1049
查看>>
H5项目常见问题及注意事项
查看>>
索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程
查看>>
时间模块 && time datetime
查看>>
jquery自动生成二维码
查看>>
spring回滚数据
查看>>
新浪分享API应用的开发
查看>>
美国专利
查看>>
【JavaScript】Write和Writeln的区别
查看>>
百度编辑器图片在线流量返回url改动
查看>>
我对你的期望有点过了
查看>>
微信小程序wx:key以及wx:key=" *this"详解:
查看>>
下拉框比较符
查看>>
2.2.5 因子的使用
查看>>