不得不说hibernate的文档做的很nice,教程+配套源码,好嗨哟。。
用的是这个版本 hibernate-release-5.4.0.Final
压缩包的\documentation\quickstart目录,看名字就知道了,快速启动,适合新手~
网页是文档,压缩包是源码
源码里面有这几个,明显先看basic。。
maven项目,导入略。
先看文档,前面介绍略
第一步,配置hibernate.cfg.xml,
恩。。不懂,看代码
还是不懂。。查了一下,有一些是JDBC的知识(不会这个,先拿着用吧)
connection.driver_class:驱动
connection.url:地址
username和password 是数据库的用户和密码
connection.pool_size:连接池数量?
dialect:方言??
cache.provider_class:???
show_sql:是否显示sql语句
hbm2ddl.auto:是否自动建表,create,删除原表建新表,update,更新数据
mapping resource:指向了持久类的配置文件
然后是构建实体类,文档没有写,还是看源码
按照JavaBean的规范,下面get和set方法没有截图上去。
然后为这个实体类做映射。
class明显是类,table就是表喽,很好理解,类和表的对应关系。
主键,实体类id,对应表的EVENT_ID
generator 元素表示主键的生成策略
查了下 increment应该是自动增长
其他参数的映射
文档解释:没有指定column的时候就和name一样,但是date一般是保留字,所以给data设定了column。
type就是类型了,文档意思是最好手动写好tpye。因为不保证自动设定的type就是正确的。
然后是获得SessionFactory,(文章前面位置有句话,意思是有很多途径获得SessionFactory,要看topical的内容,先略)
文档没有详细的说明,先拿来用吧。。
然后就是保存实体类到数据库,通过上面的SessionFactory获得Session,
然后session开启事务
Session.save
session提交事务
session关闭
然后通过HQL查询(不懂这个,但是代码写的很清楚了,
通过session.createQuery获得event实体类的list,遍历list,输出每个event的Date和Title)
到此告一段落,运行源码看看
ok,紧接着文章讲了annotations的例子,基于注解的
说配置文件里有个最重要的区别,mapping标签
看下对比
注解的
配置文件的
然后定义实体类(注意,注解的包都是是@javax下的,不是hibernate的)
主键
查了一下好像一般就用@GeneratedValue 就可以了
其他属性
到此注解的说明结束,运行结果也是一样的就不截图了。
本来应该自己练练手,时间问题,以后补充。
自己测试的(实现最基本的功能,):
因为测试了2遍,所以数据库有2条记录
现在查询记录(get/load)
get后立即发出sql语句,load则是修改时再发出sql语句
开启和提交事务中间代码修改如下
输出结果
更新记录
结果
删除记录
到这里最基本的增删改查就实现了。暂到这里,详细的文档以后再扣。