![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java程序开发
文章平均质量分 82
Java小飞侠
2013年毕业于国防科技大学软件工程专业软件工程硕士;
2013.12~2015.6从事dsp图像处理算法设计;
2015.6~至今从事Java web软件开发。
展开
-
J2EE系列之Spring4学习笔记(五)--IOC详解(自动装配,方法注入,方法替换)
一、自动装配通过配置default-autowire 属性,Spring IOC 容器可以自动为程序注入bean;默认是no,不启用自动装配;default-autowire 的类型有byName,byType,constructor;byName:通过名称进行自动匹配;byType:根据类型进行自动匹配;constructor:和byType 类似,只不过它是根据构造方法注入而言原创 2017-05-31 15:36:27 · 583 阅读 · 0 评论 -
J2EE系列之Hibernate4学习笔记(十三)-- -一对一映射
之前讲过一对多映射,现在说一下其他的映射关系。这里包括一对一映射和多对多映射。其中一对一映射一般分为两种形式:按照主键映射、按照外键映射。一、按照主键映射:这里按照主键映射是指让两个表格的主键值相同。这里以用户地址映射为例来说明,这里把用户和地址设计成一对一映射关系。1.新建工程:Hibernate08;2.新建用户类:User,这个类包括id,用户名,用户地址三个属性。其中地址属原创 2017-05-22 11:37:08 · 354 阅读 · 0 评论 -
J2EE系列之Hibernate4学习笔记(十四)--多对多映射
以学生课程这个多对多映射为例,每个学生可以选多门课程,而每门课程又可以被多个学生选择。多对多映射可以分为两种:单向的多对多和双向的多对多一、单向的多对多映射:这里以学生为主,可以查询每个学生选修的多门课程,但是不能查询选修某个课程的学生1.新建学生类Student:package com.test.model;import java.util.HashSet;import jav原创 2017-05-22 15:00:18 · 526 阅读 · 0 评论 -
J2EE系列之SpringMVC学习笔记(一)--SpringMVC简介
上一篇博客讲了Spring整合Struts2和Hibernate(S2SH框架)。在S2SH框架中Struts2的作用是拦截前台请求,完成前端页面与后台逻辑处理代码之间的传值等作用,Hibernate的作用是完成数据库操作,Spring的作用是能够管理Struts2和Hibernate。这一讲讲述SpringMVC,它的作用与S2SH中Struts2的作用类似。看一下百度百科对于SpringM原创 2017-06-07 09:25:44 · 1387 阅读 · 0 评论 -
J2EE系列之SpringMVC学习笔记(二)--SpringMVC控制器
学习一下SpringMVC中几个常用的注解。一、新建Dynamic Web Project工程SpringMVC02,jar包的添加以及Spring配置文件同上一节博客。这里在web.xml文件中把工程的默认首页改成index.jsp页面;二、新建包com.test.model,新建类Student:package com.test.model;public class Stude原创 2017-06-07 16:02:16 · 591 阅读 · 0 评论 -
J2EE系列之Struts2学习笔记(四)---使用javabean方式给类对象赋值
J2EE系列之Struts2学习笔记(二)中讲述了使用get/set来获取/设置参数的值,这种方式适用于基本类型的参数。这里我们讲一下如何给类类型的对象赋值。这一篇博客的代码是在上一篇博客的工程上直接写的。1.新建一个com.test.model包,在这个包中新建一个User类:package com.test.model;public class User { private原创 2017-04-21 09:47:01 · 626 阅读 · 0 评论 -
J2EE系列之SpringMVC学习笔记(三)--SpringMVC控制器
上一篇的博客的工程中完成了学生查询功能。这一篇博客完成学生的添加,修改和删除功能。一、工程里面学生添加和学生修改页面当点击提交时都会发生/student/save.do请求,现在写这个请求的处理方法:@RequestMapping("/save") public String save(Student student){ studentList.add(student); ret原创 2017-06-08 10:12:25 · 498 阅读 · 0 评论 -
J2EE系列之SpringMVC学习笔记(四)--SpringMVC控制器
一、SpringMVC对ServletAPI的支持之前的博客中使用到的都是使用SpringMVC转发对象和视图,没有用到ServletAPI。但是当工程中需要保存cookie的时候,就必须要使用ServletAPI了。下面讲一个登录实例。1.在上一篇博客工程示例的基础上,新建类:package com.test.model;public class User { private原创 2017-06-12 13:51:18 · 470 阅读 · 0 评论 -
J2EE系列之SpringMVC学习笔记(五)--Restful风格的资源URL
一、Restful风格的资源URL:这个图片中的地址是我的一篇博客的地址,可以看到这个地址的后面没有什么后缀。查看前面的博客可以发现,之前博客里面的示例工程中的网页地址都是有后缀的,比如.do,.jsp等。向这种没有后缀的URL地址就是Restful风格的URL,这种风格很优雅,但是也有一些问题。还有的URL地址他们的后缀统一是.html或者.htm,这种虽然不是严格意义上的Restf原创 2017-06-12 16:42:55 · 415 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(十四)--Spring4整合Struts2和Hibernate4
上一篇博客搭建了S2SH框架,这一篇博客讲述一个实例。Spring支持泛型注入,所以DAO层变得非常简化。1.在com.test.dao包中新建接口BaseDao:package com.test.dao;import java.io.Serializable;import java.util.List;/** * 基础数据库操作类 * * @author www.t原创 2017-06-06 11:41:08 · 361 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(十三)--Spring4整合Struts2和Hibernate4
现在使用Spring4来整合Struts2和Hibernate4.Struts2.3.16,Spring4.0.6,Hibernate4.3.5 整合所需jar 包:Struts2.3.6所需jar包:Spring4.0.6所需jar包:Hibernate4.3.5所需jar包:本地安装的是mysql数据库,还要添加mysql驱动包:mysql-connec原创 2017-06-06 09:53:15 · 795 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(四)--IOC详解(参数注入)
上一篇博客中通过Spring配置文件给生成的对象实例的属性进行了赋值。但是那里面类的属性都是一些基本类型,而实际应用中类的属性可能是其它类的对象,也可能是集合类型。这一篇博客讲述如何给类对象属性以及集合属性进行赋值。1.新建工程:Spring402-03;2.新建一个类:package com.test.entity;public class People { private原创 2017-05-31 10:59:27 · 505 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(九)--Spring对JDBC的支持
JDBC是最原始的操作数据库的一种技术,现在讲一下Spring对JDBC 的支持,Spring把对数据库的各种操作封装在了JdbcTemplate类中。一、配置数据源dbcp所谓的配置数据源就是把数据库的地址、用户名、密码以及要操作的数据库告知Spring。Spring使用数据库连接池完成对数据库的连接。1.新建工程Spring404;2.首先看一下Spring给出的配置数据源实例原创 2017-06-05 08:57:02 · 594 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(十)--Spring对JDBC的支持
一、JdbcDaoSupport类的引入上一节的工程里面数据库操作实现类StudentDaoImpl类中要想使用Spring操作数据库需要首先定义JdbcTemplate类的对象,这一节我们引入Spring对JDBC支持的JdbcDaoSupport类,首先看一下这个类中的部分内容:/* * Copyright 2002-2012 the original author or autho原创 2017-06-05 10:11:14 · 1028 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(六)--IOC详解(bean之间的关系,bean的作用范围)
一、bean之间的关系:类与类之间有继承关系,其在Spring的配置文件中对应的bean也具有继承关系。bean之间的关系主要是继承、依赖、引用三种。1.继承关系1,新建工程Spring402-07;2.新建类People:package com.test.entity;public class People { private int id; private Strin原创 2017-05-31 16:43:21 · 621 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(十一)--Spring对事务管理
一、事务简介:来自百度百科事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和endtransaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(en原创 2017-06-05 11:53:00 · 438 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(七)--AOP详解(AOP简介)
这里AOP简介参考百度百科:面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。原创 2017-06-01 11:43:43 · 886 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(十二)--Spring对事务管理
上一篇博客中讲到的是编程式事务管理,这种方式并不好,因为这种方式把一些非业务代码侵入到了业务逻辑代码中。这一讲讲声明式事务管理。一、使用XML配置声明式事务管理使用XML配置声明式事务管理用到了之前讲到的AOP技术,前面讲过AOP技术能够动态的在逻辑代码中切入一些非业务性代码。1.复制上一个工程为一个新的工程Spring405-02;2.由于使用的声明式事务管理不会修改业务的逻原创 2017-06-05 15:45:07 · 356 阅读 · 0 评论 -
J2EE系列之Spring4学习笔记(八)--AOP详解(AOP实例)
上一讲中写了一个实例,这个实例中日志记录代码(非业务代码)跟逻辑代码耦合在了一起。当工程庞大,代码量非常大的时候这样的代码维护非常困难。Spring使用AOP技术可以实现这种非业务代码与业务代码的隔离。AOP面向切面编程可以使非业务代码能够动态的切入到逻辑代码中。AOP之所以能够实现这种功能,是基于一种通知机制(与struts2的拦截机制挺像的),当要执行或者执行完成某个业务代码时向非业务类发原创 2017-06-01 16:21:35 · 608 阅读 · 0 评论 -
J2EE系列之SpringMVC学习笔记(六)--文件上传
回看Struts2的文件上传博客,struts2文件上传使用的是fileupload组件。SpringMvc不同,下面通过实例看一下SpringMvc的文件上传功能。一、单文件上传1.新建工程SpringMVC04,按照SpringMVC01的工程配置好。2.SpringMVC 要想支持文件上传的话,spring-mvc.xml文件中要添加一个bean:<beans xmlns=原创 2017-06-13 09:40:06 · 541 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(一)-- 简介
目前为止J2EE系列已经学习了Struts2、Hibernate4、Spring、SpringMVC。其中Struts2、hibernate,spring三者组成了常用的软件架构S2SH,在S2SH中Struts2负责前后台之间的交互,Hibernate负责数据库操作,Spring负责管理struts2和hibernate4。学习了SpringMVC之后发现SpringMVC具有了Struts2和原创 2017-06-13 11:44:01 · 695 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(二)-- mybatis配置
上一节博客里面介绍了MyBatis的简单应用实例。这一篇博客讲以一下mybatis配置文件中各个标签的意义。上一节实例的mybatis配置文件mybatis-config.xml为:<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-co原创 2017-06-13 14:33:48 · 532 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(十二)-- 使用注解配置sql映射器
这一节讲述使用注解方式实现动态sql。所谓的动态sql就是动态的拼接sql语句,之前讲过使用xml文件方式进行配置,这里讲述使用注解方式进行动态拼接。1.新建工程MyBatisPro04,按照之前的配置配置好。2.我们这里只使用Student一个类。新建Student类:package com.test.model;public class Student { private原创 2017-06-15 15:03:01 · 479 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(十三)-- SSM框架搭建
这一讲讲述MyBatis与Spring、SpringMVC整合,这三者整合在一起是目前比较常用的一种软件开发框架SSM框架。1.新建DynamicWebProject:SSMTest2.把相应的jar包复制到WebContent/WEB-INF/lib文件夹中。需要的jar包如图:3.src目录下新建log4j的配置文件:log4j.propertieslog4j.原创 2017-06-15 16:22:40 · 505 阅读 · 0 评论 -
$(window).width()与window.innerWidth的区别
本文转自http://www.webkaka.com/tutorial/js/2015/091615/近日把网站改为自适应,需要用到一部分js和jquery程序,由于要考虑到各浏览器的兼容性,所以在调试上需要各位用心,并且在各函数的使用上也要比较谨慎。但是由于工作量繁多,会时常出现一些bug,要在使用时才可能被发现。今天,就发现了一个问题,在IE8打开网页时,左下角有黄色警告提转载 2017-09-12 14:22:08 · 2764 阅读 · 0 评论 -
<iframe>和<frame>区别
本文转自http://www.cnblogs.com/ahudyan-forever/p/5706873.html1、frame不能脱离frameSet单独使用,iframe可以2、frame不能放在body中,否则不能正常显示 frame不能和body同时使用 --> --> iframe可以和body同时使用 3、嵌套在frameSet中的if转载 2017-09-12 15:11:46 · 222 阅读 · 0 评论 -
Java设计模式透析之 —— 策略(Strategy)
本篇博文转自Android界郭神的博文:http://blog.csdn.net/guolin_blog/article/details/8986285今天你的leader兴致冲冲地找到你,希望你可以帮他一个小忙,他现在急着要去开会。要帮什么忙呢?你很好奇。他对你说,当前你们项目的数据库中有一张用户信息表,里面存放了很用户的数据,现在需要完成一个选择性查询用转载 2017-12-11 10:32:10 · 188 阅读 · 0 评论 -
Java设计模式透析之 —— 组合(Composite)
本篇博文转自:http://blog.csdn.net/guolin_blog/article/details/9153753听说你们公司最近新推出了一款电子书阅读应用,市场反应很不错,应用里还有图书商城,用户可以在其中随意选购自己喜欢的书籍。你们公司也是对此项目高度重视,加大了投入力度,决定给此应用再增加点功能。好吧,你也知道你是逃不过此劫了,没过多久你的lead转载 2017-12-12 10:15:08 · 168 阅读 · 0 评论 -
Java设计模式透析之 —— 适配器(Adapter)
本文转自:http://blog.csdn.net/guolin_blog/article/details/9400141今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务!最近ChinaJoy马上就要开始了,老板要求提供一种直观的方式,可以查看到我们新上线的游戏中每个服的在线人数。”你看了看日期,不是吧!这哪里是马上要开始了,分明是已经开始转载 2017-12-13 11:40:23 · 189 阅读 · 0 评论 -
Java设计模式透析之 —— 模板方法(Template Method)
转载一篇讲述java设计模式的博文,该博文讲的特别的浅显易懂,特别适合像我这样的菜鸟。博文地址:http://blog.csdn.net/guolin_blog/article/details/8744002今天你还是像往常一样来上班,一如既往地开始了你的编程工作。项目经理告诉你,今天想在服务器端增加一个新功能,希望写一个方法,能对Book对象进行处理,将B转载 2017-12-06 21:53:51 · 156 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(十一)-- 使用注解配置sql映射器
这里讲一下使用注解方式实现mybatis的关系映射(一对一映射和一对多映射)一、一对一映射1.新建类Address(直接从前面讲使用xml配置方式实现关系映射的工程中复制即可):package com.test.model;public class Address { private Integer id; private String sheng; private Str原创 2017-06-15 14:06:15 · 452 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(十)-- 使用注解配置sql映射器
前面的工程中我们都是使用的xml文件配置的sql映射器(比如StudentMapper.xml文件,就是配置Student相关的sql映射器),当然还可以使用注解的方式配置sql映射器(Hibernate也有使用注解进行配置)。以后的项目中还是推荐使用xml文件配置。使用注解方式配置sql映射器比较方便,但是这种方式不够灵活,有一些功能实现不了,还是得使用映射文件。所以以后还是使用xml方式配原创 2017-06-15 11:32:06 · 604 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(三)-- 使用XML配置SQL映射器
第一节博客是实例中数据库操作方法定义在了接口文件StudentMapper.java中,而这些操作的实现代码定义在了映射文件StudentMapper.xml中。这里把这个映射文件StudentMapper.xml称为SQL映射器。所以这一讲其实讲的就是如何在SQL映射器中实现数据库操作。第一节在StudentMapper.xml这个映射器中通过映射语句实现了数据库添加操作: ins原创 2017-06-13 15:39:54 · 843 阅读 · 0 评论 -
tomcat中运行PHP项目
背景:最近在学习《微信小程序开发入门与实践》一书,学习到该书的第12章微信开放接口时遇到了问题。这一章的内容需要有服务器配合,而书上给出的服务器代码是PHP写的。这可把我愁坏了,我一直学习的是Java语言,对PHP一点了解也没有。解决过程:遇到了问题就解决问题,我懒得照着书上再写一遍PHP代码了,直接下载了配套的PHP代码。那么接下来的问题就是如何在tomcat上运行这个PHP代码?原创 2017-07-13 16:57:43 · 7806 阅读 · 6 评论 -
J2EE系列之MyBatis学习笔记(四)-- mybatis关系映射(一对一映射)
这一讲讲述mybatis如何实现一对一关系映射。我们这里以学生-地址 一对一关系来进行演示。1.在数据库中新建一个表t_address:给这个表添加部分数据2.修改表t_student,添加一个addressId字段,这个字段对应t_address表的主键:这样我们就实现了这两个表的一对一映射。3.工程中新建类Address:package com.test原创 2017-06-14 09:29:30 · 584 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(五)-- mybatis关系映射(一对多映射)
这一篇博客讲述一对多关系映射。以班级学生为例。在上一个工程的基础上:1.数据库中新建表t_grade,并添加数据:把这个表和t_student建立一对多关联:表t_student中添加字段gradeId:2.新建类Grade:package com.test.model;import java.util.List;public class G原创 2017-06-14 11:02:13 · 1191 阅读 · 1 评论 -
J2EE系列之MyBatis学习笔记(六)-- 动态sql
目前为止可能还看不出mybatis与hibernate相比具有什么优势,甚至觉得mybatis比Hibernate还要麻烦一些(需要手动写sql语句)。这一节就讲述mybatis的特色之一的动态sql。动态sql运行在sql语句中动态的添加条件。下面通过实例进行说明。1.新建工程MyBatisPro02,按照前面讲过的配置方法配置好。2.新建Student类:package com原创 2017-06-14 13:36:04 · 524 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(七)-- 动态sql
上一节讲到了动态sql中的if条件和:choose,when 和otherwise 条件。这一节讲述更多的动态sql条件。一、where条件:where条件具有以下两个功能:1,自动加上where;2,如果where 子句以and 或者or 开头,则自动删除第一个and 或者or;上一节在讲if条件的时候,sql映射器中为了防止传入的map为空,在where后面加上了1=1这个原创 2017-06-14 15:21:56 · 474 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(八)-- 杂项
mybatis最主要的知识已经讲完。这篇博客将一些mybatis的细节知识。一、处理CLOB、BLOB 类型数据CLOB是大文本类型的数据,比如小说这种很多字符的数据。BLOB是二进制数据,用来存放图片、视频等数据。1.打开mysql数据库,把t_student表进行修改如下:删除与t_grade和t_address表的关联关系,并添加新的字段为:这里添加了字段pic,这个原创 2017-06-15 09:22:15 · 478 阅读 · 0 评论 -
J2EE系列之MyBatis学习笔记(九)-- 杂项
mybatis内置的分页是逻辑分页。比如说数据库中有100条数据,我们每页显示10条,mybatis是先把这100条数据取出放在内存中,然后从内存中取10条显示。如果数据量小的话这种方式还可以,但是当数据量很大(几万条数据)的时候,这种方式的性能就很低。看一个例子演示逻辑分页:一、逻辑分页1.添加接口方法:public List findStudents(RowBounds rowBo原创 2017-06-15 10:27:30 · 467 阅读 · 0 评论