自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序老兵的博客

用来整理我的知识碎片,也希望帮到他人。只要往前走,就不会迟。精疲力尽的时侯应该选择休息,切不可放弃。

  • 博客(32)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 【Spring学习14】延迟初始化lazy-init与depends-on

一、lazy-initlazy-init是延迟初始化的意思。 spring中容器都是尽早的创建和配置所有的单例bean,因此当容器在启动时,就会去配置和创建单例bean。 这样做的好处是在程序刚运行时就可以将配置的错误或者环境问题立刻暴露出来。当然,坏处就是启动时,因为要初始化所有的单例bean,系统开销会很大,启动过程比较慢。如果不想单例bean提前实例化,可以设置lazy-initializ

2017-03-31 19:38:59 2808

原创 【Spring学习13】表达式语言(Spring EL)

p-namespace配合set注入,简写<property>元素的。 同样,配合构造注入,spring推出了c-namespace,允许行内配置构造参数,而不需使用内嵌的<constructor-arg/>元素beans加入 xmlns:c="http://www.springframework.org/schema/c"用c:namespace重构构造注入<beans xmlns="http:

2017-03-31 19:33:15 1188

原创 【Spring学习12】XML简写p-namespace及c-namespace

p-命名空间使用bean元素属性替代内嵌<property>元素,用来描述属性值或者协作类。 p命名空间并不是在XSD文件中,而是存在于Spring核心中。下面XML片段解释了:1使用了标准XML,第2个使用p-命名空间<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or

2017-03-31 19:30:14 2294

原创 【Spring学习11】PropertyPlaceholderConfigurer应用

PropertyPlaceholderConfigurer类的作用是加载外部的java Properties文件属性。 然后在XML文件中用${key}替换指定的properties文件中的值。这样的话,只需要对properties文件进 行修改,而不用对xml配置文件进行修改。 假设在外部添加了jdbc.properties,内容为:jdbc.driverClassName=com.mysql

2017-03-31 19:28:32 1385 4

原创 【Spring学习10】依赖配置:bean的父子继承

Spring Bean的父子继承主要是为了统一定义Spring Bean的公共属性、作业范围scope,并避免了冗余和修改的繁琐。<beans><bean id="notify" class="twm.spring.start.NotifyServiceByCellPhoneImpl" /> <bean id="parent" abstract="true" class="example.

2017-03-31 19:23:47 1962

原创 【Spring学习09】依赖配置:配置集合

Spring中通过<list>,<set>,<map>,<props>元素,来设置集合类型的属性或参数。 它们分别对应java类型的List,Set,Map,Properties。首先定义OrderCollect类:public class OrderCollect { Properties Emailconfig; List<String> Productnames; M

2017-03-31 19:20:46 1022 1

原创 【Spring学习08】依赖配置:复合属性

本文博客地址:http://blog.csdn.net/soonfly/article/details/68928534(转载请注明出处) 接着上篇《【Spring学习07】依赖配置:内部对象 》的例子来。其实order的实例化还可以用复合属性来表示:<bean id="order" class="twm.spring.start.Order"> <property name="custom

2017-03-31 19:13:58 1383 3

原创 【Spring学习07】依赖配置:内部对象

内部对象就是对象的里面还有对象。。。。。好象是废话。 比如订单Order中,包含一个消费者Customer。那么Customer就是Order对象的内部对象。(有人叫内部类,我觉得不妥。内部类是指一个类的定义放在另一个类的内部,而这里是一个对象使用了另一个对象作为成员属性)Customer类:public class Customer {private String name; priv

2017-03-31 19:10:45 1186 2

原创 【Spring学习06】依赖配置:元素idref

首先区分 idref 和 ref 的区别:前面我们在setter注入中,多采用通过ref指向要注入的对象id:<bean id="notify" class="twm.spring.start.NotifyServiceByCellPhoneImpl" /><bean id="order" class="twm.spring.start.Order" > <!-- 配置要注入的对象 -->

2017-03-31 19:04:55 1348

原创 【Spring学习05】四种xml配置注入方式

平常应用Spring开发中,用得最多的是容器。spring容器帮我们实例化对象并且注入到需要该对象的类中。 spring有多种依赖注入的形式,下面仅介绍spring通过xml进行IOC配置的方式:一、Setter注入set注入是最简单常用的注入方式,《【Spring学习03】Spring简单入门实例 》中就是用的set注入。 Order类中需要用到NotifyService对象,于是定义了一个p

2017-03-30 21:22:45 16719 2

原创 【Spring学习04】实例化上下文对象及加载多个配置文件

一、实例化上下文对象从前面的例子可以看到,在代码中实例化上下文对象非常简单,如下面的例子:ApplicationContext ctx = new ClassPathXmlApplicationContext( "spring-beans.xml"); FooService foo = (FooService) ctx.getBean("FooService");几个常用的类: ClassPat

2017-03-30 20:58:39 2891

原创 【Spring学习03】Spring简单入门实例

国际惯例,从一个简单的例子入门,轻松了解依赖注入。 拿之前提到的场景: 假设我们开发了一套管理系统,每收到一笔订单后,系统调用notifyservice.sendMessage给客户发送订单成功邮件。有天老板(也有可能是产品)突然要改个需求:将原来的给客户发送邮件功能改为发手机短信。你无需改动任何代码,只是在配置中将“发送器”配置成“手机发送器”,就能完成工作。一、创建工程这里我们选择Dynam

2017-03-30 20:51:49 14302 7

原创 【Spring学习02】从官网下载Spring

一、获取Maven配置Spring的官网地址是:http://spring.io/。 需要Maven配置信息,可以到http://projects.spring.io/spring-framework/页面自动生成。 二、下载链接官方推荐的是通过Maven和Gradle配置远程获取组件的,所以很难直接在官网找到直接能下载组件的链接。 但可以直接打开地址http://repo.springsou

2017-03-30 20:44:51 1649

原创 【Spring学习01】Spring简介

一、Spring介绍spring直译是春天,所以以前开发时经常叫它春哥。实际上应该取弹性、跳跃的意思,指让代码更加灵活解耦,易于扩展。 百度百科上解释: Spring是分层的JavaSE/EE full-stack轻量级开源框架,以IoC(Inverse of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程为内核)。这里涉及到两

2017-03-30 20:37:13 2199

原创 【MyBatis学习18】使用注解配置Mapper

MyBatis支持使用注解来配置映射的sql语句,这样可以省掉映射器xml文件。一、映射语句1、insert 比如入门实例中的:public int insert(User user) throws Exception;<insert id="insert" parameterType="twm.mybatisdemo.pojo.User" useGeneratedKeys="true" key

2017-03-28 19:30:36 9508 3

原创 【MyBatis学习17】用typeHandlers处理enum类型

如果想使用mybatis自带的枚举类处理,有2种方式,一个是EnumTypeHandler,一个是EnumOrdinalTypeHandler。 区别如下: EnumTypeHandler直接存储name值。它是mybatis默认的枚举类型转换器。 EnumOrdinalTypeHandler存储enum类里的序号值,此时数据库表字段一般对应用smallint/int类型的处理。使用的

2017-03-28 19:22:13 9985 3

原创 【MyBatis学习16】自定义类型处理器typeHandlers介绍

我们在写mapper映射器的配置文件时,不经意间已经用到类型转换,不过是mybatis帮我们完成的。<update id="update" parameterType="twm.mybatisdemo.pojo.User"> update user set username=#{username},password=#{password},address=#{address} wh

2017-03-24 11:06:21 6599 3

原创 【MyBatis学习15】mybatis-generator生成逆向工程两种方式

本文博客地址:http://blog.csdn.net/soonfly/article/details/64499423 (转载请注明出处) mybatis官方提供了一个逆向工程包,可以针对数据库表自动生成mybatis执行所需要的Pojo、Mapper xml文件、Mapper Interface接口文件。 mybatis-generator有很多种用法:命令行、eclipse/IDEA、Mav

2017-03-21 20:21:11 20964 3

原创 【MyBatis学习14】MyBatis和Spring整合

本文博客地址:http://blog.csdn.net/soonfly/article/details/64495909 (转载请注明出处) MyBatis和Spring整合可以有很多种方式,只要明白几个重要的类,就能随心所欲整合了。导入包 我们可以从Mybatis官网上下载Mybatis-Spring的jar包添加到我们项目的类路径下。 当然不要忘记添加Mybatis的相关jar包和Sprin

2017-03-21 20:06:31 681

原创 【MyBatis学习13】一、二级缓存及分布式实现

MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存。一级、二级只是命名而已,实际上并不是递进关系。一、一级缓存MyBatis在SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候,如果判断先前有完全一样的查询,会直接从缓存中直接将结果取出,返回给用户。其内部就是通过一个简单的HashMap<k,v> 来实现的。1、作用范围 每当我们使用MyBa

2017-03-21 19:33:15 1398

原创 【MyBatis学习12】多对多关联

这篇说多对多关系。多对多其实就是一对多的组合关系。 回忆前文中几个重要的关系: 1、1个用户可以有0个或多个订单:[user表]–>[order表]是1对多(0.n)关系 2、1个有效订单会购买1条或多条商品分录:[order表]–>[order_detail表]是1对多(1.n)关系 3、1条商品分录必定对应一个产品详情:[order_detail表]–>[product表]是1对1关系

2017-03-19 20:22:26 618

原创 【MyBatis学习11】关联关系collection:1对多关联的两种方法

接着上文《关联关系association:1对1关联的三种方法 》的例子 一对多关系 [order表]–>[order_detail表]是1对多(1.n)关系。1个订单可以由多个订单分录(购买的商品)组成的。1对多关联关系可以理解为一个对象的内部有一个列表。 在后台系统中我们点击订单列表会进到订单详情页 有两种方式可以实现:一、(推荐)用sql联合查询,使用collection标签sql查询

2017-03-19 20:17:21 2727

原创 【MyBatis学习10】关联关系association:1对1关联的三种方法

本篇主要讲关联关系:一对一关系与一对多关系。 先建5个表: DROP TABLE IF EXISTS `category`;CREATE TABLE `category` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `catename` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENG

2017-03-19 20:06:21 12621

原创 【MyBatis学习09】SQL片段

在写SQL语句时,有很多是可以重用的,比如前台显示会员,必须是审核通过、没有软删除、没有被锁定。 那么这条件应该是公用:isdel=0 and islock=0 and isvalidate=1 因为在所有外部场景中查询用户的语句中都要用到,如查询单个,搜索用户列表,查询商品购买用户等等。基于重用的思想,mybatis提供了sql片段。一、创建<sql id="member_mustWhere"

2017-03-19 19:55:15 919

原创 【MyBatis学习08】动态SQL

动态SQL是Mybatis的牛B功能之一。以前写查询,最痛苦的就是拼SQL语句。如根据参数拼接查询条件,为空的不参与where条件;写where条件得保证第一条不能有and(所以还得写个1=1),写in你得注意逗号 。有时少打豆号,少打空格什么的,就给你个错误提示:You have an error in your SQL syntax;眼睛都能给找花。比如前文提及的<select id="sear

2017-03-19 19:50:34 924 1

原创 【MyBatis学习07】输出类型resultType及输出参数映射resultMap

使用mybatis操作时,对于SQL语句返回结果的处理通常有两种方式,一种是resultType,另一种是resultMap。 resultType:如果要填充的pojo属性和数据库列名完全一致,可采用resultType。如果出现不一致的情况下,系统并不会报错,只是pojo的属性会填充成null。 resultMap:如果出现不一致的情况下怎么办呢?就要用到reslutMap了。pojo类如下

2017-03-19 19:44:07 2952

原创 【MyBatis学习06】_parameter:解决There is no getter for property named in class java.lang.String

我们知道在mybatis的映射中传参数,只能传入一个。通过#{参数名} 即可获取传入的值。Mapper接口文件:public int delete(int id) throws Exception;MapperL配置文件:<delete id="delete" parameterType="int"> delete from user where id=#{id}</delete>接口中我

2017-03-19 00:02:40 21851

原创 【MyBatis学习05】传入参数parameterType

在前面的mapper.xml的select、insert、update、delete这些元素中,我们已接触了传入参数,并通过parameterType指定传入参数的类型。注意不要和parameterMap混淆了。(parameterMap几乎很少场景下用了)MyBatis可以使用的parameterType有基本数据类型和Java复杂数据类型。 复杂数据类型包含Java实体类、Map等。一、基本数

2017-03-18 23:52:13 7525

原创 【MyBatis学习04】大于等于>=及小于等于<=处理及转义字符

使用mybatis 时sql语句是写在xml文件中,如果sql中有一些特殊的字符的话,比如< ,<=,>,>=等符号,会引起xml格式的错误,需要替换掉,或者不被转义。 有两种方法可以解决:转义字符和标记CDATA块方式1、转义字符<select id="searchByPrice" parameterType="Map" resultType="Product"> <!-- 方式1、转义

2017-03-18 23:45:59 21417 1

原创 【MyBatis学习03】调用Mapper映射的3种使用方式

本文博客地址:http://blog.csdn.net/soonfly/article/details/63363004 (转载请注明出处)继续延用入门实例《【MyBatis学习01】一个简单入门实例》中的例子来阐述一、(推荐)service访问Mapper映射器接口(代理DAO)具体实现步骤参考《【MyBatis学习01】一个简单入门实例》 在service中采用sqlSession.getMa

2017-03-18 23:33:50 7229

原创 【MyBatis学习02】全局配置文件

本文博客地址:http://blog.csdn.net/soonfly/article/details/63352180 (转载请注明出处)在入门实例中,最先接触的是Mybatis全局配置文件。该配置文件的顶级标签是:configuration。在它之下,有以下子标签: 普通开发过程中(如入门实例)我们用四个标签就能完成配置工作。它们分别是: properties、 typeAliases、

2017-03-18 23:21:32 2276

原创 【MyBatis学习01】一个简单入门实例

本文博客地址:http://blog.csdn.net/soonfly/article/details/63323701 (转载请注明出处) mybatis框架是一个持久层框架,它提供一种“半自动化”的ORM实现。mybatis主要关注POJO(Plain Old Java Objects,普通的Java 对象)与SQL之间的映射关系,对于SQL语句,需要自己编写。 Mybatis的使用非常简单,

2017-03-18 22:44:43 1308

wkhtmltox 最新版 0.12.4 linux64位组件包(含wkhtmltopdf,wkhtmltoimage)

一款用于将HTML转换成PDF或IMAGE的工具,当前最新版 0.12.4 linux64位组件包(含wkhtmltopdf,wkhtmltoimage)

2017-07-09

Mybatis自动生成代码用到的组件包

Mybatis generator 自动生成代码用到的组件包

2017-03-21

mybatis与spring整合jar包

mybatis与spring整合jar包

2017-03-21

mybatis-3.3.0.zip

mybatis-3.3.0.zip

2017-03-21

深入理解Java虚拟机(第二版):JVM高级特性与最佳实践

深入理解Java虚拟机,啥也不说了,重要的是免费!!非扫描版的!网上根本找不到!

2017-01-25

Druid 1.0.9.jar

使用阿里巴巴druid数据库链接池时需要的jar包! 下载别人的亲测可用,免费提供。 Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池

2017-01-23

WEB开发示例:MVC + Flexigrid

WEB开发示例:MVC + Flexigrid

2009-11-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除