博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate入门_增删改查
阅读量:7100 次
发布时间:2019-06-28

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

一、Hibernate入门案例剖析:

   ①创建实体类Student 并重写toString方法

public class Student {    private Integer sid;    private Integer age;    private String name;    public Integer getSid() {        return sid;    }    public void setSid(Integer sid) {        this.sid = sid;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "Student [sid=" + sid + ", age=" + age + ", name=" + name + "]";    }        }

  ② 创建学生对象 并赋值

 

  ③引入jar包

 

④ 构建大配置<hibernate.cfg.xml>

可分为以下步骤:

1.连接数据库的语句

2.sql方言

3.可省的配置(show_sql、format_sql 取值为true)

4.让程序生成底层数据表(hbm2ddl.auto) update/create。create是每次将数据表删除后,重新创建

5.关联小配置

<mapping resource="cn/happy/entity/Student.hbm.xml" />

关键代码如下:

oracle.jdbc.OracleDriver
jdbc:oracle:thin:@localhost:1521:orcl3
wj
9090
org.hibernate.dialect.Oracle10gDialect
true
update

⑤ 构建小配置(Student.hbm.xml)

SEQ_NUM

⑥ 工具类HibernateUtil、构建私有静态的Configuration、SessionFactory对象、定义返回session以及关闭session的方法

private static Configuration cf=new Configuration().configure();    private static SessionFactory sf=cf.buildSessionFactory();        //方法返回session    public static Session getSession(){        return sf.openSession();    }        //关闭Session        public static void CloseSession(){        getSession().close();    }复制代码

⑦测试类【增删改查】 使用标记After、Before可简化代码

package cn.happy.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.After;import org.junit.Before;import org.junit.Test;import cn.happy.entity.Student;import cn.happy.util.HibernateUtil;public class Test1 {     Session session;    Transaction tx;     @After    public void afterTest(){        tx.commit();        HibernateUtil.CloseSession();    }    @Before    public void initData(){        session=HibernateUtil.getSession();        tx=session.beginTransaction();    }        /*     * get方法查询     */    @Test    public void getData(){        Student stu=(Student)session.get(Student.class, 3);        System.out.println(stu);    }    /*     * 增加     */        @Test    public void addData(){        Student stu=new Student();        stu.setSid(12);        stu.setAge(11);        stu.setName("李小龙1");    //读取大配置文件 获取连接信息        Configuration cfg=new Configuration().configure();        //创建SessionFactory        SessionFactory fa=cfg.buildSessionFactory();    //加工Session    Session se=fa.openSession();    Transaction tx = se.beginTransaction();    //保存    se.save(stu);    //事务提交    tx.commit();    se.close();        System.out.println("Save ok!");    }         /*     * 删除     */    @Test    public void delData(){        Session session=HibernateUtil.getSession();        Student stu=new Student();        stu.setSid(2);        Transaction tx=session.beginTransaction();        session.delete(stu);        tx.commit();        HibernateUtil.CloseSession();        System.out.println("del ok!");    }        /*     * 修改     */    @Test    public void updateData(){        Session session=HibernateUtil.getSession();                Student stu=(Student)session.load(Student.class,3);        stu.setName("呵呵");        Transaction tx=session.beginTransaction();        session.update(stu);        tx.commit();        HibernateUtil.CloseSession();        System.out.println("update ok!");    }    }

转载于:https://www.cnblogs.com/Zhangmin123/p/5815370.html

你可能感兴趣的文章
java服务端微信小程序支付
查看>>
flip 翻转效果 css3实现
查看>>
Cocos Creater 监听程序到后台和重新到前台
查看>>
Windows 10 应用创建模糊背景窗口的三种方法
查看>>
Python类与标准库
查看>>
学生表、课程表、 成绩表 、教师表sql练习
查看>>
vue inheritAttrs、$attrs和$listeners使用
查看>>
诗歌的分类
查看>>
nexus maven私服搭建
查看>>
系统空间占用排查 tomcat超大日志catalina.out 删除 与df 状态更新
查看>>
Flutter完整开发实战详解
查看>>
Myeclipse如何改变编码方式
查看>>
ios7 设置status bar风格
查看>>
Android Service 组件
查看>>
TRUNC 截取日期或数字,返回指定的值。
查看>>
【erlang】erlang几种生成随机数的方法
查看>>
BizTalk开发系列(二十二) 开发自定义Map Functoid
查看>>
在Windows Mobile和Wince(Windows Embedded CE)下Win32项目加入ATL支持
查看>>
在Asp.Net MVC中用Ajax回调后台方法
查看>>
JAVA-JDBC
查看>>