小白实验室-Hibernate:one2one映射
来源:互联网 发布:淘宝怎么用照片找同款 编辑:程序博客网 时间:2024/05/29 08:06
配置文件
对Hibernate的全局参数进行配置,主要是配置连接的数据库的相关信息和关系对象映射文件的路径等。
实体
JavaBean对象实体,这里是StudentBean。
映射文件
这个是本次实验的关键点1。
其实简单的理解就是,一个JavaBean对应数据库中的那张表,一个JavaBean中的属性对应数据库中的那个列。都是在这里说明的。然后有一点需要注意的是,这里要说明id的生成策略是什么。参见代码:
<hibernate-mapping> <class name="cn.example.bean.StudentBean" table="student"> <id name="id"> <generator class="native"></generator> </id> <property name="name"></property> <property name="birthday" column="birth"></property> </class></hibernate-mapping>
工具类
编写了一个简单的工具类,在工具类中可以体现各个类之间的生命周期。简要介绍一下生命周期:
读取配置(执行一次)-获取工厂对象(执行一次)-获取会话(重复执行)-执行会话(重复执行)-关闭会话(重复执行)
配置类Configuration
只需要读取一次,使用后即可废弃。所以我们可以卸载静态块中。另外一个重要的类就是SessionFactory
。这个类的作用是获取会话对象,所以他要一直存在,可以作为工具类的属性。然后就是Seesion
,因为每次使用完成后需要关闭,所以也可以写在工具类的属性中。
提供了2个方法
//获取session,同时也开启事务public static Session getSession(){ session = sessionFactory.openSession(); tansaction = session.beginTransaction(); return session;}public static void closeSession(){ tansaction.commit(); session.close();}
测试
最后是测试,主要是对增删改查的API进行熟悉
增
//增public static void addStudent(){ StudentBean stu = new StudentBean("张三", new Date(0)); Session session = HibernateUtil.getSession(); session.save(stu); HibernateUtil.closeSession();}
删
//删//虽然是传入的对象,但是是按照id删除//并且,如果表中没有该id的数据,会抛出错误//Exception in thread "main" org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1public static void deletStudent(){ Session session = HibernateUtil.getSession(); StudentBean stu = new StudentBean(); stu.setId(3); session.delete(stu);; HibernateUtil.closeSession();}
改
//改//同样按照id进行修改//并且,如果表中没有该id的数据,会抛出错误//Exception in thread "main" org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1public static void updateStudent(){ Session session = HibernateUtil.getSession(); StudentBean stu = new StudentBean(); stu.setId(3); session.update(stu); HibernateUtil.closeSession();}
查
//查//同样是按照id查找//如果没有该id返回null值public static void selectStudent(){ Session session = HibernateUtil.getSession(); StudentBean stu = (StudentBean) session.get(StudentBean.class, 1); System.out.println(stu); HibernateUtil.closeSession();}
工程文件点击下载
阅读全文
0 0
- 小白实验室-Hibernate:one2one映射
- hibernate映射One2One
- Hibernate基础------》映射关系---》one2one
- Hibernate基础------》单向映射--->one2one
- hibernate 笔记(一)----one2one主外键关联映射
- Hibernate 的关系映射4 One2One
- Hibernate 映射关系 ---One2One 主键关联
- Hibernate 映射关系 ---One2One 外键关联
- Hibernate中的one2one的单双向关系映射
- Hibernate中,One2One映射关系的XML实现方式
- Hibernate中的one2one映射实例二(一对一主键关联映射双向)
- Hibernate关联关系-one2one
- Hibernate中one2one映射实例一(采用外键的单向关联)
- Hibernate one2one 主键单向关联
- Hibernate one2one 双向主键关联
- hibernate之 8.one2one单向
- hibernate 之 9.one2one双向
- hibernate one2one xml及annotation
- cordova 安卓APP开发 版本更新解析
- iOS学习笔记之同步对象性能对比(iOS锁对比)
- lastIndexOf相关知识
- ContentResolver和ContentProvider
- Django——登陆模块的简单实现
- 小白实验室-Hibernate:one2one映射
- 【Java多线程】原子类
- springmvc重定向传递参数
- Counting Bits
- 查找包含某个字符串的所有文件
- Enumeration枚举接口的简单介绍
- 知识库
- dataTables 技术自己了解的一点
- mybatis Integer值传0问题