断断续续学了一年多Java,总算把Java基础,web基础,数据库(mysql),JDBC粗浅地学了一遍
总算要开始主流框架的学习了,在主流的SSH中,我选择了从比较好理解的Hibernate下手
首先从http://hibernate.org/orm/downloads/下载hibernate的资源包,由于下载最新的5.2.8版本解压时提示文件损坏,就选择了老一点的4.3.11
解压缩后,发现没有教学视频里说(视频里用的3.2.5版本)的hibernateX.jar包,百度后发现,4.X的版本已经删除了这个包了,只需要把lib/required下所有的jar包导入工程就好
然后按照网上以及视频上的教程,一步步进行配置、映射、建立实体、测试
配置时需要同时配置好【hibernate.cfg.xml】和【实体名.hbm.xml】,具体格式我就不贴了,直说我踩得坑吧
由于之前学web基础是比较粗浅地学习,所以我至今没有弄懂xml头部的那一串声明的作用(太懒了- -!),因此第一次配置时,我直接把从包里的例子中hibernate.cfg.xml同时复制到了自己的hibernate.cfg.xml和User.hbm.xml(我项目中的第一个实体就是User)
直接运行之后,出现类似于找不到mapping的错误(也就是说User.hbm.xml没能解析出来),在确认User.hbm.xml路径没有错之后,我上网查找相关的例子才发现,头部声明里,configuration和mapping是不一样的
改过来之后运行,又出现了“could not stop parse document from resource....”以及找不到实体User的异常
后来发现,是因为在User.hbm.xml里的class标签,没有指明package,并且name也没有带包名,在添上包名后,终于运行成功了,并且在我没有写任何打印语句的情况下,在控制台打印出了对应的SQL语句(这是因为我在hibernate.cdg.xml中把“show_sql”属性设置为了true)
第一次体验hibernate,发现确实比JDBC省事多了
这还只是第一步,下面我会对代码进行进一步优化,把重复的部分提取出来,对健壮性进行修补
额,以上