发布网友 发布时间:2022-04-30 03:15
共4个回答
懂视网 时间:2022-05-06 18:32
1.持久化对象POJO编写规则: 1) 有空参public构造器; 2) 提供标识属性,映射数据表主键; 3) 属性提供setter和getter方法; 4) 属性使用基本数据类型的包装类型。基本类型在数据库中不能区分null和0; 5) 不使用final修饰。如果使用final则无法生成代
1) 有空参public构造器;
2) 提供标识属性,映射数据表主键;
3) 属性提供setter和getter方法;
4) 属性使用基本数据类型的包装类型。基本类型在数据库中不能区分null和0;
5) 不使用final修饰。如果使用final则无法生成代理对象;当使用了final,load查询将如同get查询。
OID是持久化类与数据表主键对应的属性,用来唯一区分持久化对象。
自然主键:采用数据库中有意义的列的值作为主键(有意义)
代理主键:采用自动生成的流水号、UUID作为主键(无意义,推荐)
基本类型无法区分null和0,开发中POJO属性都使用包装类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
由hibernate自动完成,原理:先查询最大值,再插入此值加一。OID必须为long、int或short类型。
优点:跨数据库。
缺点:多线程并发访问问题。
由数据库自动完成,要求数据库必须支持自增主键。mysql支持,oracle不支持。OID必须为long、int或short类型。
优点:无并发访问问题。
由数据库自动完成递增,要求数据库必须支持序列。mysql不支持,oracle支持。OID必须为long、int或short类型。
Oracle:
1创建序列:create sequence myseq;
2调用序列:insert into customer values (myseq.nextval); #序列加一
采用数据库支持的自增策略。 mysql:identity,oracle:sequence。OID必须为long、int或short类型。
优点:跨数据库平台。
由数据库自动创建。 uuid是32位唯一字符串,表单主键使用varchar类型,POJO对应属性是String类型。
在调用hibernate时手动指定主键的值,用于自然主键(有意义的)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public |
(1)编写POJO类 Person.java:
1 2 3 4 5 6 7 8 9 10 11 | package |
(2)配置POJO.hbm.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
(3)配置hibernate.cfg.xml,加载Person.hbm.xml文件:
(4)操作类的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public |
(5)结果:
INFO: HHH000262: Table not found: tb_person
2013-11-5 10:07:12 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
ERROR: HHH000388: Unsuccessful: create table db_hibernate.tb_person (namef varchar(255) not null, names varchar(255) not null, age integer, city varchar(255), primary key (namef, names)) type=InnoDB
2013-11-5 10:07:12 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 7
2013-11-5 10:07:12 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
1 2 3 | |
热心网友 时间:2022-05-06 15:40
所谓三大框架,即struts、spring及hibernate。要想学习好三大框架,快速掌握,最好的方法无疑是理论与实践结合,由简入繁,由单一到全部,逐一攻克,具体学习步骤如下:1、先学习struts,struts是世界上第一个经典的mvc框架,其作用就是将业务逻辑与视图分离开来,使得项目层次分明,清晰,更具有结构性。学习一个框架,首先要知道这个框架的作用,有哪些特征,然后就是了解其实现原理,最后就是结合实际项目例子来进一步加深对这个框架的理解。2、struts掌握了后,接着学习spring,spring就是一个大的工厂,其轻量理强大,它改变了传统的编程模式,将实例化bean交给了容器管理,使得项目中类的耦合度大为降低。spring的特性很多,较为有名就是IOC(控制反转)与AOP(面向世面编程)。要想学习好spring,就要先掌握相应的理论知识点,然后就是动手敲代码,将它的每一个特性都实现一遍,功力到了,自然就掌握了。3、掌握了以上两大框架之后,可以继续深入学习hibernate框架了。hibernate是一个orm-maping框架,即对象关系映射,将数据库表反转映射成实体对象,使得用户在操作底层数据库时,不用再写那些繁琐的SQL语句,而是通过直接操作对象将数据持久化到数据库。学习好hibernate,首先要掌握其原理,映射配置,然后就是对其每一个特性进行编码验证,如一对一,一对多,多对多关系映射等。可以不结合项目,只要能连上数据库进行相应操作即可。4、三大框架都初步掌握了后,就可以进行整合学习了。三大框架在整合分工也很明确,也是一个经典的MVC框架,其中struts充于其中的V(即视图层),spring充当C(即业务控制层),hibernate充当M(持久层)。整合学习三大框架的难点在于其中的配置,依赖及管理,这非一两天能完成的事情,得要多查阅相关书籍交资料,动手实践,用心体验。 最后,要想学习好框架,除了掌握其原理、特性外,还要多动手编码,多思考,熟能生巧。一句话,纸上得来终觉浅,绝知此事要躬行。热心网友 时间:2022-05-06 16:58
先学spring,理解spring反思射创建对象的原理(不理解也行,会配置就好,以后慢慢用就理解了),知道spring扫描注解自动注入方式的使用。然后学习ibatis或者hibernate,知道怎么配置就行。然后学习spring-mybatis或者spring-hibernate整合。之后spring-mvc可以单独学习。实在不行网上下个demo,按流程走一遍就行了热心网友 时间:2022-05-06 18:33
你可以去贴吧找一下教程,