问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何系统学习JAVA web框架

发布网友 发布时间: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.持久化对象POJO编写规则:

1) 有空参public构造器;

2) 提供标识属性,映射数据表主键;

3) 属性提供setter和getter方法;

4) 属性使用基本数据类型的包装类型。基本类型在数据库中不能区分null和0;

5) 不使用final修饰。如果使用final则无法生成代理对象;当使用了final,load查询将如同get查询。

2.POJO的OID:

OID是持久化类与数据表主键对应的属性,用来唯一区分持久化对象。

自然主键:采用数据库中有意义的列的值作为主键(有意义)

代理主键:采用自动生成的流水号、UUID作为主键(无意义,推荐)

3.数据类型:

基本类型无法区分null和0,开发中POJO属性都使用包装类型。

4.持久化类配置POJO.hbm.xml:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 xml version="1.0" encoding="UTF-8"?> DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.cvu.domain"> jdbc:mysql:///数据库 " --> <class name="User" table="table_user" catalog="db_hibernate"> <id name="id" column="id" type="int"> <generator class="native">generator> id>    <property name="name" column="name" type="string">property>    <property name="age" column="age" type="int" >property>    <property name="city" column="city" sql-type="string">property> class> hibernate-mapping>

1)主键生成策略increment:顶层递增:

由hibernate自动完成,原理:先查询最大值,再插入此值加一。OID必须为long、int或short类型。

优点:跨数据库。

缺点:多线程并发访问问题。

2)主键生成策略identity:底层递增:

由数据库自动完成,要求数据库必须支持自增主键。mysql支持,oracle不支持。OID必须为long、int或short类型。

优点:无并发访问问题。

3)主键生成策略sequence:序列:

由数据库自动完成递增,要求数据库必须支持序列。mysql不支持,oracle支持。OID必须为long、int或short类型。

Oracle:

1创建序列:create sequence myseq;

2调用序列:insert into customer values (myseq.nextval); #序列加一

4)主键生成策略native:本地:

采用数据库支持的自增策略。 mysql:identity,oracle:sequence。OID必须为long、int或short类型。

优点:跨数据库平台。

5)主键生成策略uuid:标识符:

由数据库自动创建。 uuid是32位唯一字符串,表单主键使用varchar类型,POJO对应属性是String类型。

6)主键生成策略assigned:手动指定:

在调用hibernate时手动指定主键的值,用于自然主键(有意义的)。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 public void testInsertAssigned() { Session session = UtilGetSesstion.openSession(); Transaction transaction = session.beginTransaction(); User user = new User(); user.setId(20130124); //手动设置主键 user.setName("EminemXXX"); user.setAge(42); user.setCity("NewYorkXXX"); session.save(user); transaction.commit(); session.close(); }

7)主键生成策略:复合主键:

(1)编写POJO类 Person.java:

1 2 3 4 5 6 7 8 9 10 11 package cn.cvu.domain; import java.io.Serializable; //务必事先序列化接口 public class Person implements Serializable { private String firstName; //对应表单的复合主键 private String secondName; //对应表单的复合主键 private String address; //get/set //toString }

(2)配置POJO.hbm.xml:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 xml version="1.0" encoding="UTF-8"?> DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.cvu.domain"> <class name="Person" table="table_person" catalog="db_hibernate"> <composite-id> <key-property name="firstName" column="nameFirst">key-property> <key-property name="secondName" column="nameFirst">key-property> composite-id> <property name="address" column="addr" type="string">property> class> hibernate-mapping>

(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 void testInsert() { Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Person person = new Person(); person.setFirstName("C"); person.setSecondName("Vigiles"); person.setAddress("Beijng"); session.save(person); transaction.commit(); session.close(); sessionFactory.close(); }

(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 <property name="hibernate.dialect">   org.hibernate.dialect.MySQL5InnoDBDialectproperty>

-end

热心网友 时间: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

你可以去贴吧找一下教程,
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
悲观的意思是什么悲观是什么意思 ...坐立不安的。还总想挠挠手呀、胳膊什么的。这是怎么回事啊?是一种... ...胳膊肘麻,有时会麻到感觉大拇指根部疼,食指也有点... ...入睡感觉左胳膊从手腕到肩膀酥溜溜的酸,睁开眼又好了,什么原因... 胳膊上麻溜溜的 像是有小疙瘩 还很痒 有点硬 少量蔗糖,食盐,食油,食醋分别倒入一定量水中,并用筷子不断搅拌,观察... 将食盐 蔗糖 泥土 植物油与水混合 英文会计的provision对应中文会计的哪个词啊? 双人旁一个直一个心念什么,什么意思 白瓷有隙是成语吗 天津有什么新政策落户 虚拟主机连接mysql数据库的问题, 首先我要说的是:数据库账号密码lP等 消费价格指数和gdp平减指数的结果有何不同?为什么 CPI与GDP折算指数,怎么解释啊? GDP缩减指数与CPI的关系是什么?求解答 锦灯笼怎么吃 辣妈是啥意思? 汕头,,在那里 华北五港指的是哪五港,最大的是哪个 nmbbwdsjbbzjr什么意思?求大神破解,是一个女孩子把男孩子甩了之后男孩子说的话。。 攀枝花可以儿童玩又可以钓鱼的地方 电脑不能直接开机? jdbc只能调用简单的存储过程么,复杂的执行一半就停了 ibm x3650 m2的硬盘能在x3650上用吗 中行企业客户申请电子商业汇票应签署什么协议? m2硬盘支持sata与PCIE通道,那么请问sata通道与PCIE通道与主板上的sata与PCIE 玩吃鸡电脑需要什么配置 最低标准 公司客户办电子商业汇票有啥具体的规定? 固态硬盘支持热拔插吗 m2接口的固态硬盘支持热插拔吗 落户天津新政策 天津本科生落户新政策 中信银行信用卡逾期被停卡了,是不是要一次性还清欠款,否则就要被起诉... 我有张中信银行的信用卡,有一个月逾期了没还最低还款额,额度是三千,到下个月要归还全部额度吗?求救? 中信银行信用卡被暂停使用,需要一下子全额还清吗? 中信银行信用卡最长可以多长时间还不起 责任心的体现具体有哪些? 如何展现工作责任感? 男人有责任心的表现? 什么是责任心及在生活当中的责任心体现在哪些方面 员工责任心外在表现五要点是什么? 网上哪里可以买到慕斯蛋糕? 在日常工作中,教师的责任心如何体现 在哪能买到好吃又便宜的慕斯蛋糕啊 慕斯蛋糕夹层的蛋糕片哪里买 提拉米苏、布朗尼、苏芙蕾、慕斯一类的蛋糕在普通糕点店竟然买不到... 工伤六级赔偿标准当中工资是指什么 天津哪能买到便宜的慕斯蛋糕,而且还带配送的?急求 我想做慕斯蛋糕,买材料,请问苏州麦德龙在哪里?三家春呢? 慕斯蛋糕的坯子去哪里买