今天,开始我们的hibernate的第一天,hibernate在Java项目中负责的是持久层。
首先了解一下,hibernate的特点就是orm(object relation mapping) 对象关系映射。
今天的任务是hibernate的入门,搭建好框架的环境,完成简单的增删改查。
第一步,建立一个数据里,表名为customer表,
再写一个javabean,名为customer,接下来完成表与数据库中的映射关系。
有一点要知道就是hibernate和DBUtils有所不同,因为在DBUtils中会强制要求属性名与字段名相同。但在hibernate中,可以不同。
一个javabean对应一个映射表。
这是约束,需要到hibernate的core jar包中第一个包,打开hibernate-mapping 3.0 中选取。
注意点是主键的配置。、
另外需要的注意的是,在customer这个类中,属性的类型不要选择基本数据类型,最好选择包装类,因为包装类的默认值null,而基本数据类型的默认值为0。
接下来的是核心配置: hibernate.cfg.xml(一个数据库一个此xml文档)
在hibernate配置文件中,可以有可选参数,比如显示SQL语句、格式化SQL语句、生成表的结构等,这些配置都需要到hibernate.peoperty的文件中找。
由上面的截图可以发现,在创建完configuration之后就要创建sessionfactory,而sessionfactory使用的是工厂模式,主要是来创建session,session的作用的是数据库的增删改查操作,每次使用过后就直接死亡,座椅生命周期非常短暂,称之为hibernate一级缓存。但是每个session在死亡之前所保存的内容都sessionfactory二次保存,而sessionfactory不会轻易销毁(因为它不是一个轻量级的框架,如果频繁的创建sessionfactory或频繁的销毁sessionfactory会浪费相当大的资源),所以sessionfactory里维护了hibernate的二级缓存,
sessionfactory是线程安全的,可以被多个实例所共享。
一个数据库只能有一个sessionfactory,如果一个项目需要多个数据库,那么则应创建多个sessionfactory。
在上面的test类中,可以发现六大步骤在操作的时候与很多步骤是相同的,此时,我们可以将其封装成一个工具类供我们使用。
session的常用方法,刚刚是save()方法,接下来演示一下get(),
将小写字母转换成大写,(Ctrl+shift+X)
如果做删除或修改的方法,需要先查询,早删除或修改,这才是标准的做法。
修改,同样的,要先查询。
saveorupdate()保存或更新(如果有就更新,没有就保存,但是ID这个主键设置的是自动递增,不可修改)
事务的回滚。