中级阶段2-常用框架学习
这里会学到目前经常使用的Java框架,Struts框架Spring框架,Hibernate框架,MyBatis框架等等。
JavaDayUp-远行客
这个作者很懒,什么都没留下…
展开
-
40、动态sql和物理分页
学习目标:1、条件查询的实现,使用动态sql2、理解逻辑分页和物理分页3、掌握物理分页的基本写法学习过程:一、动态sql在学习jdbc和hibernate的时候,我们在实现条件查询的时候都是采用sql(hql)查询语句拼接的方式,那么下载使用mybatis由于所有的sql语句都是写在映射文件里面的,如何实现动态的条件查询功能呢个?这里我们就要学习一些mybatis的动态sq...原创 2018-12-21 19:59:52 · 684 阅读 · 0 评论 -
39、增删改查示例
学习目标:1、mybatis的基本的操作学习过程:如果上一节课没有问题,那么mybatis的开发环境就已经搭建好了,由此可知,mybatis不仅仅是一个对象映射,同时还可以映射sql语句,还可以做一个参数映射,mybatis还是需要写原始的sql语句的。下面我们就把增删改查等基本功能都完成了。1、修改映射文件GoodsMapper.xml,实现增删改查功能,代码如下:<...原创 2018-12-21 19:56:13 · 224 阅读 · 0 评论 -
38、mybatis介绍和框架搭建
学习目标:1、搭建mybatis环境2、理解mybatis的运行流程3、能正确运行mybatis的第一个例子学习过程:一、MyBatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet...原创 2018-12-21 19:50:32 · 132 阅读 · 0 评论 -
37、批处理
学习目标:1、搭建Hibernate的批处理2、搭建Hibernate的注解使用学习过程:一、批处理有个客户提供个了大量数据,需要导入到数据库中,要用什么方法才能提高导入的效率呢?我们可以看看三种实现方法。对比它们之间的效率。实现代码如下:public class Run5 { // 一般不要这样做 public void addEmployees1(L...转载 2018-12-21 19:45:04 · 134 阅读 · 0 评论 -
36、hibernate的二级缓存
学习目标:1、搭建Hibernate环境2、理解Hibernate的运行流程3、能正确运行Hibernate的第一个例子学习过程:一、hibernate的二级缓存缓存可以分为多个级别,如我们前面学习的一级缓存即Session缓存,二级缓存需要显式配置才可启用。使用二级缓存时,与一级缓存不同的Hibernate并不提供二级缓存,而是由第三方提供,二级缓存一般将对象存放在内存中...原创 2018-12-21 19:40:17 · 135 阅读 · 0 评论 -
35、分页和统计查询
学习目标:1、理解hql的统计查询2、理解hql的分页查询3、掌握criteria的使用学习过程:分页算法以前对我们来说比较难,尤其是不同数据的分页算法也不同,比较麻烦,但是hibernate对分页进行了封装,使用hibernate的分页只需要设置两个函数的值就可以了,而且hibernate还可以根据不同的方言转换成为不同数据库的分页算法。一、hibernate的分页查询的...原创 2018-12-20 20:43:10 · 454 阅读 · 0 评论 -
34、参数查询和关联查询
学习目标:1、掌握使用hql的参数查询方式学习过程:一、参数查询1、使用?在条件查询中我们查询条件都是通过方法的参数设置的,为了提高安全性,我们很少使用字符串拼接的方式,所以在学习jdbc的时候我们使用PreparedStatement,然后使用?进行代参的方式,Query和PreparedStatement有点类似,也是支持这种方式的。同时hql也支持想大于,等于或者in等等...原创 2018-12-20 20:36:03 · 233 阅读 · 0 评论 -
33、hql入门
学习目标:1、什么是hql2、如何使用hql学习过程:一、什么是hqlhql是hibernate的查询语言,和sql语言非常类似,不过操作的对象而不是表,最终hql会根据当前hibernate的方言转换成为对应的sql语言,也就是说hql是hibernate对sql语言的抽象,它本身是不能直接操作数据库的。二、使用hibernate应用hql如果直接使用hibernat...原创 2018-12-20 20:32:06 · 194 阅读 · 0 评论 -
32、延时查询
学习目标:1、了解Hibernate的延时操作的特点学习过程:一、默认的延时加载通过上面几节课的配置之后,我们的javaBean就不是独立存在的了,那么我们这样配置有什么好处呢。这样配置之后我们就可以使用面向对象的思想,非常容易的操作数据库和查询数据库信息了,下面我们就讲讲如何延时查询数据了。我们经常在查询员工的时候都需要显示该员工的职务,以前我们需要查询两张表,一般我们可以写...原创 2018-12-20 20:30:02 · 385 阅读 · 0 评论 -
31、多对多配置
学习目标:1、搭建Hibernate环境2、理解Hibernate的运行流程3、能正确运行Hibernate的第一个例子学习过程:无可否认多对多的配置应该是最简单的,在数据库中多对多需要一个中间表,在hibernate中你可以使用多对多的标签配置这种关系,当然你也可以使用一对多的关系去维护也是可行的,这个就要看具体情况了,毕竟多对多也是依赖一对多的方式实现的。这节课我们就讲讲如...原创 2018-12-20 20:23:37 · 168 阅读 · 0 评论 -
30、一对一配置
学习目标:1、了解hibernate一对一的配置和使用学习过程:一对一的配置相对简单得多,其实在数据库的实现中一对一就是一对多的特殊形式,在hibernate中有专门的标签配置一对一的关系,实现也比较简单。在上面的表设计中账号和员工表是一种一对一的关系,hibernate也支持这种关系,事实上一对一只是一种一对多的特殊情况,就是在多方在添加一个唯一性约束就可以实现了。但是hiber...原创 2018-12-19 19:45:20 · 171 阅读 · 0 评论 -
29、一对多关系的配置
学习目标:1、了解hibernate一对多的配置和使用 学习过程:一、一对多关系的配置我们知道在数据库设计时,数据库表之间有有关系的,包括一对多、一对一和多对多,今天我们就主要学习hibernate对是如何支持这样这些关系,如何映射到我们的javaBean中的。为了更好的讲解这方面的内容,我们先设计一下场景:一个员工只能有一个职位,一个职位就有多个员工。 一对多一个员...原创 2018-12-19 19:42:56 · 375 阅读 · 0 评论 -
28、hibernate三种状态
学习目标:1、了解Hibernate三种状态2、了解Hibernate不同状态的转换学习过程:一、Hibernate 三态1、介绍三种状态HIbernate对象有三种状态,理解这三种状态可以对Hibernate的运行机理有一个更深入的理解。三种状态分别是:瞬时状态、持久化状态和游离状态。瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态,瞬时态对象具...原创 2018-12-19 19:37:44 · 123 阅读 · 0 评论 -
27、第一个class实例
学习目标:1、搭建Hibernate环境2、理解Hibernate的运行流程3、能正确运行Hibernate的第一个例子学习过程:hibernate既然是多数据库进行封装,所有我们就先建立一个数据库,我们可以直接使用面向对象的思想设计操作数据库,所有这里暂时需要建立表了1、引入依赖包必须要引入的是hibernate的核心依赖,这里我们使用的是mysql的数据库,所有我们...原创 2018-12-19 19:35:12 · 203 阅读 · 0 评论 -
26、hibernate的介绍
学习目标:1、了解Hibernate的历史2、了解Hibernate和JDBC的区别3、了解Hibernate的优势学习过程:一、hibernate介绍1、hibernate作者介绍这里我特别的想介绍一下hibernate之父Gavin King,如今的Gavin King已经是JBoss核心成员之一、EJB3.0专家委员会成员、《Hibernate In Actio...原创 2018-12-19 19:29:16 · 184 阅读 · 0 评论 -
25、struts2对json和ajax的支持
学习目标:1、了解Struts2对json的解析学习过程:一、struts2对json的支持1、导入json插件包首先导入struts2-json-plugin-2.3.16.jar包。2、继承json-default包使用MyEclipse打开struts-plugin.xml文件,查看内容如下:<package name="json-default" e...原创 2018-12-18 22:10:14 · 139 阅读 · 0 评论 -
24、dwr示例
学习目标:1、掌握使用dwr学习过程:一、dwr的转换器dwr有很多转换器,其中bean转换器可以把对象转换为json格式。你可以为某一个单独的类打开转换器: <convert converter="bean" match="your.full.package.BeanName"/> 如果要允许转换一个包或者子包下面的所有类,可以这样写: <con...原创 2018-12-18 21:15:13 · 152 阅读 · 0 评论 -
23、dwr的入门
学习目标:1、了解dwr2、掌握使用dwr学习过程:一、dwr简介dwr是一个很神奇的java框架,它可以在浏览器上使用javascript“直接”调用服务器端的java的代码。我们之前介绍过javascript和java是两种完全不懂语言,两者之间不可能可以互相调用,dwr能够给用户感觉是js直接调用java只不过是一种错觉,它真正实现的原理其实就是使用了ajax技术。在ja...原创 2018-12-18 22:01:55 · 104 阅读 · 0 评论 -
22、jquery实现异步操作
学习目标:1、了解Jquery对Ajax的封装2、熟练使用JQuery的异步方法3、Jquery对json的解析学习过程:大家可以看到,在上一节中我们实现一个ajax非常麻烦,所以现在很多框架都对ajax进行了封装,jquery是其中的一员,jquery是一个非常轻量级的框架,实用它实现ajax变得非常简单。一、AJax方法介绍jquery封装的ajax方法比较多,底层...原创 2018-12-18 21:06:49 · 2314 阅读 · 0 评论 -
21、原始的ajax的实现
学习目标:1、了解Ajax的原理2、了解Ajax的原始的实现方式3、端正学习态度学习过程:一、XMLHttpRequest对象介绍XMLHttpRequest对象是AJAX技术的基础。虽然现在很多ajax框架都对XMLHttpRequest对象的使用进一步简化,但是,我们还是很有必要理解这个对象的详细工作机制。1、XMLHttpRequest对象的属性readySt...原创 2018-12-18 20:45:09 · 141 阅读 · 0 评论 -
20、ajax理论基础
学习目标:1、什么是Ajax2、了解Ajax的应用场景学习过程:一、什么ajaxajax是实现刷新局部页面的技术,也就是我们不用整个页面的刷新就可以实现与后台通讯,并更新页面的的信息,ajax全称是:Asynchronous JavaScript And XML,也就是异步的JavaScript和XML。ajax可以说是近几年来web最热门的技术,但是它的实现都是使用的全是...原创 2018-12-18 21:49:43 · 329 阅读 · 0 评论 -
19、验证
学习目标:1、了解客户端验证和服务器端验证的意义2、了解Struts2的代码验证3、了解Struts2的xml验证学习过程:验证对提高系统的安全性和系统的效率作用非常重要。我们回忆一下验证一般分为客户端验证和服务器端验证。客户端验证:直接在客户端执行JS进行验证,验证的过程中和服务器端没有任何的交互。服务器端验证:页面将验证信息传回服务器端,服务器端进行验证,并将验证的...原创 2018-12-17 21:02:58 · 127 阅读 · 0 评论 -
18、通用标签和静态调用
学习目标:1、了解通用标签的使用2、了解静态调用的使用学习过程:一、通用标签通用标签也是比较简单,这里就不一一的介绍了,用得多的还是循环迭代和条件判断这些,下面就举这两个作为例子讲解一下,其他的标签大家可以参考一下struts2的官方文档:http://struts.apache.org/release/2.3.x/docs/generic-tag-reference.ht...原创 2018-12-17 20:56:14 · 165 阅读 · 0 评论 -
17、ognl和ui标签
学习目标:1、了解ognl表达式的历史2、了解struts2的ui标签学习过程:前面我们的页面还是使用EL表达式和JSTL标准标签库,但是struts2推介使用ognl表达式和struts2的标签,下面我们就学习ognl和相关的一些标签。一、ognl表达式OGNL全称是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言。St...原创 2018-12-17 20:52:44 · 135 阅读 · 0 评论 -
16、注解
学习目标:1、了解Struts2的注解的使用学习过程:struts2除了提供xml的方式配置action外,还可以使用注解的方式进行配置,这样我们就可以实现“零配置”了,当然struts.xml这个总配置文件还是需要的。一、导入注解的插件包struts2-convention-plugin-2.3.16二、使用注解注解的功能和使用xml配置的功能是一样的,只不过是换了一...原创 2018-12-17 20:42:11 · 80 阅读 · 0 评论 -
15、国际化
学习目标:1、了解什么是国际化支持2、掌握Java对国际化的支持3、掌握Struts2对国际化的支持学习过程:如果你想你开发的应用程序可以在全世界使用,那么你首先要解决的问题就是语言的问题,jdk提供的国际化的功能意见很好的帮助我们解决了这个问题了。国际化英文单词是Internationalization,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一...原创 2018-12-17 15:59:21 · 184 阅读 · 0 评论 -
14、文件的上传和下载
学习目标:1、掌握使用Struts2的文件上传1、掌握使用Struts2的文件下载学习过程:一、准备工作Struts2本身并没提供上传的组件,我们可以通过使用第三方的上传框架来实现文件的上传。我们在前面讲解struts.properties属性文件中通过,配置代码如下:### Parser to handle HTTP POST requests, encoded usi...原创 2018-12-17 15:49:30 · 158 阅读 · 0 评论 -
13、登陆示例
学习目标:1、掌握灵活的使用拦截器2、掌握本节课的登陆示例中拦截器的使用学习过程:前面提过struts2的设计非常好,功能模块化,可装配。下面我们就通过一个登录示例体会一下struts2的优良的设计。先简单说说我们的需求,我们已经完成了用户列表的基本的增删改查和登录操作。用户初始要求:1、用户列表可以不登录访问。2、其他删除、修改、添加都必须要登录后才能操作。在这里我们...原创 2018-12-17 15:42:57 · 121 阅读 · 0 评论 -
12、自定义拦截器
学习目标:1、掌握自定义struts2的拦截器2、了解方法拦截器拦截器学习过程:struts2默认提供的拦截器已经很强大了,当然我们还是可以自定义拦截器。自定义拦截器的功能也比较简单。一、自定义拦截器1、实现Interceptor接口要实现自己的拦截器,我们可以实现Interceptor接口,代码如下:/** * 定义实现类 */public class O...原创 2018-12-17 15:38:46 · 128 阅读 · 0 评论 -
11、interceptor-使用系统的拦截器
学习目标:1、了解拦截器的概念2、了解拦截器的作用学习过程:一、拦截器interceptor的介绍拦截器是在action执行之前和之后都会调用,在struts2框架中很多核心功能都是使用拦截器实现的。比如验证、类型转换、防止重复提交、国际化等等都是使用拦截器实现,所以我们在使用action的时候才会显得这么容易。我们看看action的生命周期:核心Servlet实例化一...原创 2018-12-16 18:35:54 · 324 阅读 · 0 评论 -
10、result结果集类型说明和自定义resulttype
学习目标:1、了解Struts的结果集的使用2、自定义resulttype学习过程: Result功能是封装Action层到View层的跳转逻辑。Struts2的Action是一个与Web容器无关的POJO。所以,在Action执行完毕之后,框架需要把代码的执行权重新交还给Web容器,并转向View层,有View层处理显示。这个跳转逻辑,就由Result来完成。 S...原创 2018-12-16 18:33:31 · 2425 阅读 · 0 评论 -
9、action中取得原始的request等
学习目标:1、了解Struts获得原始的request、response的信息学习过程:在前面的例子中我们知道,struts2中要获得页面的传值,只需要在Action类中定义一个全局变量,然后给予get/set方法,那么页面的值就会自动绑定,不需要使用原始的request方法。这是struts2最好用的功能之一了。但是在有些情况之下我们还是需要用到原始的request、response...原创 2018-12-16 18:20:51 · 197 阅读 · 0 评论 -
8、Struts2的静态配置信息
学习目标:1、了解Struts2的配置项目的意义学习过程:一、静态配置的文件我们在前一天在struts.xml中间的介绍过静态配置的一个信息:<constant name="struts.devMode" value="true" />我们可以通过这个配置,说明当前的struts是否是开发模式,这个就是静态配置了。我们可以在三个文件中配置这个信息。可以在web...转载 2018-12-16 18:17:30 · 229 阅读 · 0 评论 -
7、demo完整示例
学习目标:1、掌握从头开始搭建struts2的项目的历史2、使用struts2实现一个简单的实例学习过程:下面我们通过一个经典的增删改查来演示一下struts2的使用。一、建立数据库首先在mysql中建立一个mvcdb的数据库,再建立一个tb_user表,我们任务就是对这个表进行增删改查的操作,建表语句如下:CREATE TABLE `tb_user` ( `us...原创 2018-12-16 18:15:13 · 558 阅读 · 0 评论 -
6、使用maven搭建struts2框架
学习目标:1、了解Struts2的的相关包和maven的搭建方法学习过程:maven的入门学习就讲到这里,下面我们就通过实现一个简单的项目,巩固一下对maven的理解,我们就使用struts2+jdbc实现对一个表的简单的操作。一、准备工作1、新建一个数据库和一个表新建数据库mvn_db,并建立表如下:DROP TABLE IF EXISTS `goods`;CRE...原创 2018-12-16 17:16:56 · 247 阅读 · 0 评论 -
5、Struts2的搭建
学习目标:1、了解Struts2的搭建学习过程:一、目录简介解压后有四个目录,还很多文本,文本信息大部分都是些版权说明,不用管它,四个目录分别是:apps:应用程序示例,里面的都是已经打包成为war包,都是些比较有代表性的项目,下面我们会参考其中一个项目代建输入我们自己的项目。docs:里面就是非常有用的文档说明,不仅仅是API而已,而是一个完整的功能说明。lib:ja...原创 2018-12-16 17:10:48 · 219 阅读 · 0 评论 -
4、Sturts2框架的简介和下载
学习目标:1、了解Struts2的历史2、Struts2的特点3、了解Struts2和Struts1的区别学习过程:Struts2全称是Apache Struts 2,是Apache下的一个开源免费的MVC框架,是在Struts 1和WebWork的技术基础上进行了合并的全新框架。单从名称来看好像是Struts1的升级版,但其实更准确的说应该是WebWork的升级版。其设计理念...原创 2018-12-16 17:09:44 · 162 阅读 · 0 评论 -
3、自定义三层框架的使用
学习目标:1、深入理解自定义的三层架构2、掌握使用自己定义的三层框架学习过程:我们现在写好了mvc框架了。为了能让别人更好的使用我们的框架,我们需要类打包,同时还要写上一份使用说明书。一、导出jar包1、定义好项目的名称,maven的坐标信息。2、右击项目,使用maven>>maven install打包项目 二、书写操作说明由于我们这个mvc框...原创 2018-12-16 17:07:52 · 140 阅读 · 0 评论 -
2、实现MVC三层框架
学习目标:1、掌握并理解自定义的三层架构学习过程:要实现上面这个MVC框架,我们需要新建立一个项目,在这个项目里,我们已经实现了dao层的框架,数据库自己根据jdbc.properties建立一个。项目源码下载:一、建立中转站——核心的servlet类。现在我们建立一个包com.mvc,在这个包下面建立一个ActionServlet。public class ActionSe...原创 2018-12-16 17:01:31 · 199 阅读 · 0 评论 -
1、自定义MVC三层框架思路
学习目标:1、掌握MVC三层架构的思想2、了解自定义MVC三层框架的思路学习过程:在学习MVC框架之前,让我们先尝试自定义一个MVC三层框架,这样对我们理解什么是MVC三层框架和理解MVC框架都是很有帮助的。首先让我们看看原始的使用servlet有什么缺点1、每一个servlet都只能在doget或者dopost方法中处理业务,业务一旦复杂,那么doget方法中的处理代码就会非...原创 2018-12-13 22:16:37 · 250 阅读 · 0 评论