今天听课才知道自己自学的hibernate可以算得上是一蹋糊涂,因为之前看Hibernate的书看了看几遍都没有搞懂,今天听了一天的课,很多东西就豁然开朗,所以预习也是很重要的,那怕是没有看懂,但至少也有印象。 今天上课的进程比较快,徐培成老师讲课,我只能用“强悍”两个字来形容,上课时精力充沛,语速快(但听得很清晰,几乎没有费话),同时敲代码的速度也是一流,同时调试代码几乎是百分百成功。我之所以在这儿说他语速快,是因为快有快的好处啊,这样的综合起来,其上课讲的知识就会相对较多,对我们是好事,毕竟HIBERNATE只有三天的时间,所以啊,能吸收到更多的知识,才是我们来这儿的目的,我真的希望这样的状态一直持续下去,我们周围的同学整体对他的印象都不错,有些同学还在说,下课都不想出去上厕所,因为这个时间是问题解答的时间,有很多同学不懂的知识就是在这个时间提出来的,所以都不愿意错过。 虽然课程很快,虽然我基础自认为还不错,但是很多东西,只是听懂了,但是过一阵子就模模糊糊了,这就是因为我们上课没有练习的时间,老师要给我们讲更多的知识点,但是同时也录制了视频,下课可以将没有听懂的,不清楚的都听一遍就OK了。但是,练习是绝对不能少的,也是重点中的重点,只有自己去体会其中的过程才会弄清楚自己的问题,优势,劣势自然就一清二楚了。 因为昨天的内容相对较容易,之前在公司上班的时候看过很多代码,加上只是一个HIBERNATE的流程,所以,很快就搞定了,把时间就花在了复习ORACLE上面。就没有总结,以前看视频的时候,已经写过结果,所以总结今天的学习内容:,这是HIBERNATE致关重要的知识: 今天的重点是表之间的关联关系,多对一及一对多,一对一,多对多,如果在配置文件中进行配置,以及其实涉及到了一部分的配置可以优化对数据库的操作。 1.多对一及一对多。 i. 多对一的实现。(以下是我练习进做例子) /** * 图书分类 * @author ranping */ public class Category { private int id; private String name; private String description; //及对应的set/get方法 } /** * 产品分类列表,商品都可以作为一个产品(书也是) * @author ranping */ public class Product { private Integer id; private String name; private float price; private String descriptin; private Category categroy; //这儿是关系,多方中保留对一方的引用 //及对应的set/get方法 } 以下是配置文件:Category.hbm.xml Product.hbm.xml文件 Hibernate.cfg.xml配置文件,是配置了数据库的相关参数,在此不多数了。多对一的关键点在于:在多方引用一方,在配置文件中用many-to-one 进行配置及可,我个人感觉,没有必要去死记硬背其中有那些属性,每个属性中有用什么,从配置文件可知: 1.主要用id进行配置主键策略。在配置时的重点就是生成标识符的生成策略。不同的生成策略,都有自己适当的用处。比如:icrement,其特点就是与数据库不相关,采用的是‘带走加一“,就是取得表中最大值加1的方式,(插入数据时),这种策略不适应于并发访问,老师在多进程的情况下都有产生错误的时候。原因就在于“带走加1”,如果带走了,没有存回来,而在这期间,另一个程序访问,又带走加1,这个时间他们的取值一致,当存储时,主键就重复,必须导致错误。该策略只适用于测试,单进程,单数据库。 2.普通属性采用property 属性进行配置。Name与实体类中的属性名相对type指映射类型,column表中字段名字,其中还可以设置长度,访问策略等。组件属性,可以采用component进行配置。 未完