竹山一叶

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  390 随笔 :: 0 文章 :: 0 评论 :: 0 引用

2017年1月21日

摘要:在2012年6月google发布了AngularJs 1.0稳定版, 并宣称:AngularJS可以让你扩展HTML的语法,以便清晰、简洁地表示应用程序中的组件,并允许将标准的HTML作为你的模板语言,AngularJS可以通过双向数据绑定自动从拥有JavaScript对 象(模型)的UI(视图)中 阅读全文
posted @ 2017-01-21 22:25 竹山一叶 阅读 (59) 评论 (0) 编辑

2017年1月20日

摘要:年底了越来越懒散,AngularJs的学习落了一段时间,博客最近也没更新。惭愧~前段时间有试了一下用yeoman构建Angular项目,感觉学的差不多了想做个项目练练手,谁知遇到了一系列问题。yeoman是基于node.js的一套工具包,由于我一直在windows下编程,而且node.js对于win 阅读全文
posted @ 2017-01-20 11:26 竹山一叶 阅读 (42) 评论 (0) 编辑

摘要:在谈路由机制前有必要先提一下现在比较流行的单页面应用,就是所谓的single page APP。为了实现无刷新的视图切换,我们通常会用ajax请求从后台取数据,然后套上HTML模板渲染在页面上,然而ajax的一个致命缺点就是导致浏览器后退按钮失效,尽管我们可以在页面上放一个大大的返回按钮,让用户点击返回来导航,但总是无法避免用户习惯性的点后退。解决此问题的一个方法是使用hash,监听hashc... 阅读全文
posted @ 2017-01-20 11:13 竹山一叶 阅读 (68) 评论 (0) 编辑

2017年1月19日

摘要:过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果。主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等。ng内置了一些过滤器,它们是:currency(货币)、date(日期)、filter(子串匹配)、json(格式化json对象)、limitTo(限制个数)、lowercase(小写)、uppercase(大写)、num... 阅读全文
posted @ 2017-01-19 18:01 竹山一叶 阅读 (59) 评论 (0) 编辑

摘要:今天学习了一下ng的service机制,作为ng的基本知识之一,有必要做一个了解,在此做个笔记记录一下。一、认识服务(service) 服务这个概念其实并不陌生,在其他语言中如java便有这样的概念,其作用就是对外提供某个特定的功能,如消息服务,文件压缩服务等,是一个独立的模块。ng的服务是这样定义的:Angular services are singletons objects or fu... 阅读全文
posted @ 2017-01-19 17:57 竹山一叶 阅读 (64) 评论 (0) 编辑

2017年1月18日

摘要:自定义指令学习有段时间了,学了些纸上谈兵的东西,还没有真正的写个指令出来呢。。。所以,随着学习的接近尾声,本篇除了介绍剩余的几个参数外,还将动手结合使用各参数,写个真正能用的指令出来玩玩。 我们在自定义指令(上)中,写了一个简单的,能够跟美女打招呼。但是看看人家ng内置的指令,都是这么用的:ng-model=”m”,ng-repeat=”a in array”,不单单是作为属性,还可以赋值给... 阅读全文
posted @ 2017-01-18 11:24 竹山一叶 阅读 (77) 评论 (0) 编辑

摘要:上一篇简单介绍了自定义一个指令的几个简单参数,restrict、template、templateUrl、replace、transclude,这几个理解起来相对容易很多,因为它们只涉及到了表现,而没有涉及行为。这一篇将继续学习ng自定义指令的几个重量级参数,了解了它们之后我们的custom directive将不光能“看”,还要能“动”。开始~理解compile和link 不知大家有没有这... 阅读全文
posted @ 2017-01-18 11:19 竹山一叶 阅读 (55) 评论 (0) 编辑

2017年1月17日

摘要:一、有感而发的一些话 在学习ng之前有听前辈说过,angular上手比较难,初学者可能不太适应其语法以及思想。随着对ng探索的一步步深入,也确实感觉到了这一点,尤其是框架内部的某些执行机制,其复杂程度并非是我现在的功力能够理解的,只能是知其皮毛。我现在学习的途径是官方文档 + AngularJS在github上的中文粗译版(https://github.com/basestyle/angular... 阅读全文
posted @ 2017-01-17 09:55 竹山一叶 阅读 (61) 评论 (0) 编辑

摘要:通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的。ng的模板真是让我爱不释手。学习ng道路还很漫长,从模板开始入手是个不错方式,因为这部分内容相对简单好理解,而且是视图层的东西,大家都喜欢可以立马看得见的东西嘛。本篇我将搜罗模板中的常用指令一一测试,了解其使用方法,有点像背单词的感觉,会比较枯燥。不过... 阅读全文
posted @ 2017-01-17 09:46 竹山一叶 阅读 (116) 评论 (0) 编辑

2017年1月16日

摘要:一、前言 前端技术的发展是如此之快,各种优秀技术、优秀框架的出现简直让人目不暇接,作为一名业界新秀,紧跟时代潮流,学习掌握新知识自然是不敢怠慢。当听到AngularJs这个名字并知道是google在维护它时,便一直在关注,看到其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章 阅读全文
posted @ 2017-01-16 17:56 竹山一叶 阅读 (78) 评论 (0) 编辑

摘要:解决Intellij IDEA 通过archetype创建Maven项目缓慢的问题 1.由于默认情况下,根据archetype创建maven项目会从网络下载catalog文件,导致创建maven项目缓慢 Searching for remote catalog: http://repo1.maven 阅读全文
posted @ 2017-01-16 17:45 竹山一叶 阅读 (96) 评论 (0) 编辑

2017年1月15日

摘要:连接MySQL数据库时报以下时区错误信息: java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must co 阅读全文
posted @ 2017-01-15 22:56 竹山一叶 阅读 (22463) 评论 (0) 编辑

摘要:在运行mybatis配置文件的时候,出现错误: mybatis:"configuration" must match "(properties?,settings?,typeAliase..... 配置文件 configuration 中的元素,不但有类型限制,也有顺序限制。必须按照以下配置顺序配置 阅读全文
posted @ 2017-01-15 22:55 竹山一叶 阅读 (380) 评论 (0) 编辑

2017年1月14日

摘要:今天和大家分享下mybatis的一个分页插件PageHelper,在讲解PageHelper之前我们需要先了解下mybatis的插件原理。PageHelper的官方网站:https://github.com/pagehelper/Mybatis-PageHelper一、Plugin接口mybatis定义了一个插件接口org.apache.ibatis.plugin.Interceptor,任何自定... 阅读全文
posted @ 2017-01-14 23:03 竹山一叶 阅读 (5458) 评论 (0) 编辑

摘要:之前的文章中我们意见分析了一级缓存、二级缓存的相关源码和基本原理,今天我们来分享下了mybatis二级缓存和redis的结合,当然mybatis二级缓存也可以和ehcache、memcache、OSCache、Hazelcast结合使用。二级缓存相关的源码分享请参考《Mybatis源码分析之Cache二级缓存原理》。我们通过两种方式来实战,一种是自己编写缓存、另外一种是官方给出的demo地址:h... 阅读全文
posted @ 2017-01-14 23:00 竹山一叶 阅读 (4986) 评论 (0) 编辑

2017年1月13日

摘要:一:Cache类的介绍讲解缓存之前我们需要先了解一下Cache接口以及实现MyBatis定义了一个org.apache.ibatis.cache.Cache接口作为其Cache提供者的SPI(ServiceProvider Interface) ,所有的MyBatis内部的Cache缓存,都应该实现这一接口Cache的实现类中,Cache有不同的功能,每个功能独立,互不影响,则对于不同的Cache... 阅读全文
posted @ 2017-01-13 20:36 竹山一叶 阅读 (958) 评论 (0) 编辑

摘要:之前的文章我已经基本讲解到了SqlSessionFactory、SqlSession、Excutor以及Mpper执行SQL过程,下面我来了解下myabtis的缓存,它的缓存分为一级缓存和二级缓存,本文我们主要分析下一级缓存。先看一个例子,代码还是之前(第一篇)的的demo public static void main(String[] args) throws Exception { ... 阅读全文
posted @ 2017-01-13 20:35 竹山一叶 阅读 (296) 评论 (0) 编辑

2017年1月12日

摘要:上两篇已经讲解了SqlSessionFactory的创建和SqlSession创建过程。今天我们来分析myabtis的sql是如何一步一步走到Excutor。还是之前的demo public static void main(String[] args) throws Exception { SqlSessionFactory sessionFactory = null; ... 阅读全文
posted @ 2017-01-12 12:31 竹山一叶 阅读 (1449) 评论 (0) 编辑

摘要:通过上一篇文章的分析我们,我初步了解了它是如何创建sessionFactory的(地址:Mybatis源码分析之SqlSessionFactory(一)),今天我们分析下Mybatis如何创建SqlSession( sessionFactory.openSession())和Excutor到底做了什么事情还是上篇的代码demo public static void main(String[] a... 阅读全文
posted @ 2017-01-12 11:57 竹山一叶 阅读 (830) 评论 (0) 编辑

2017年1月11日

摘要:简介MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和... 阅读全文
posted @ 2017-01-11 16:05 竹山一叶 阅读 (1550) 评论 (0) 编辑

摘要:随着系统用户访问量的不断增加,数据库的频繁访问将成为我们系统的一大瓶颈之一。由于项目前期用户量不大,我们实现单一的数据库就能完成。但是后期单一的数据库根本无法支撑庞大的项目去访问数据库,那么如何解决这个问题呢?实际的应用中,数据库都是读多写少(读取数据的频率高,更新数据的频率相对较少),而读取数据通常耗时比较长,占用数据库服务器的CPU较多,从而影响用户体验。我们通常的做法就是把查询从主库中抽取出... 阅读全文
posted @ 2017-01-11 15:59 竹山一叶 阅读 (2783) 评论 (0) 编辑

2017年1月10日

摘要:延迟加载什么是延迟加载?resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。延迟加载:先从单表查询、需要时再从关联表去关联... 阅读全文
posted @ 2017-01-10 09:43 竹山一叶 阅读 (486) 评论 (0) 编辑

摘要:Mybatis 高级知识安排:对订单商品数据模型进行分析订单商品数据模型数据模型分析思路:1、每张表记录的数据内容(分模块对每张表记录的内容进行熟悉,相当于学习系统需求的过程)2、每张表重要的的字段设置(非空字段、外键字段)3、数据库级别表与表之间的关系(外键关系)4、表与表业务之间的关系(要建立在每个业务意义的基础上去分析)数据模型分析模型用户表 user:记录购买商品的用户信息订单表 orde... 阅读全文
posted @ 2017-01-10 09:34 竹山一叶 阅读 (138) 评论 (0) 编辑

2017年1月9日

摘要:Mybatis 解决 jdbc 编程的问题1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变Java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与jav... 阅读全文
posted @ 2017-01-09 17:29 竹山一叶 阅读 (474) 评论 (0) 编辑

摘要:MybatisMybatis 和 SpringMVC 通过订单商品案例驱动官方中文地址:http://www.mybatis.org/mybatis-3/zh/官方托管地址:https://github.com/mybatis/mybatis-3本项目全部代码地址:https://github.com/zhisheng17/mybatis基础知识:对原生态 jdbc 程序(单独使用 jdbc 开发... 阅读全文
posted @ 2017-01-09 17:15 竹山一叶 阅读 (227) 评论 (0) 编辑

2017年1月8日

摘要:你是否遇到过下面的情况,控制台无限的输出下面的日志:Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl’ adapter. Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImpl’ adapter. ... 阅读全文
posted @ 2017-01-08 21:34 竹山一叶 阅读 (611) 评论 (0) 编辑

摘要:理解到目前为止所讨论的类的作用域和生命周期是非常重要的。如果使用不当可导致严重的并发性问题。SqlSessionFactoryBuilder 这个类可以在任何时候被实例化、使用和销毁。一旦您创造了SqlSessionFactory 就不需要再保留它了。所以SqlSessionFactoryBuilder 实例的最好的作用域是方法体内(即一个本地方法变量)。您能重用SqlSessionFactory... 阅读全文
posted @ 2017-01-08 21:20 竹山一叶 阅读 (917) 评论 (0) 编辑

2017年1月7日

摘要:MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑,本文详解mybatis的动态sql,需要的朋友可以参考下MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空 格或在列表的最后省略逗号。动态 SQL 可以彻底处理这种痛苦。... 阅读全文
posted @ 2017-01-07 22:06 竹山一叶 阅读 (283) 评论 (0) 编辑

摘要:1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id"。2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order ... 阅读全文
posted @ 2017-01-07 21:33 竹山一叶 阅读 (99) 评论 (0) 编辑

2017年1月6日

摘要:首先简单介绍下两者的概念: Hibernate :Hibernate 是当前最流行的ORM框架,对数据库结构提供了较为完整的封装。 Mybatis:Mybatis同样也是非常流行的ORM框架,主要着力点在于POJO 与SQL之间的映射关系。 其次具体从几个方面说一下两者的区别: 1.两者最大的区别: 阅读全文
posted @ 2017-01-06 09:42 竹山一叶 阅读 (289) 评论 (0) 编辑

摘要:Hibernate 与Mybatis都是流行的持久层开发框架,但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快,当前最高版本4.1.8。而Mybatis相对平静,工具较少,当前最高版本3.2 第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R ma 阅读全文
posted @ 2017-01-06 09:40 竹山一叶 阅读 (143) 评论 (0) 编辑

2017年1月5日

摘要:上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的。 准备工作Mybatis完成一次SQL查询需要使用的代码如下: Java代码 String resource = "mybatis.cfg.xml"; Reader reader = Resources.getResourceAsReader(resource); ... 阅读全文
posted @ 2017-01-05 09:44 竹山一叶 阅读 (167) 评论 (0) 编辑

摘要:1. 准备工作 编写测试代码(具体请参考《Mybatis入门示例》),设置断点,以Debug模式运行,具体代码如下: Java代码 String resource = "mybatis.cfg.xml"; Reader reader = Resources.getResourceAsReader(resource); SqlSessionFactory ssf = new SqlS... 阅读全文
posted @ 2017-01-05 09:31 竹山一叶 阅读 (1729) 评论 (0) 编辑

2017年1月4日

摘要:1.引言本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络。后面文章我们再详细讲解各个组件。 2.整体设计2.1 总体流程(1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存... 阅读全文
posted @ 2017-01-04 16:00 竹山一叶 阅读 (822) 评论 (0) 编辑

摘要:1.引言本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。 2.JDBC实现查询分析我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:(1) 加载JDBC驱动(2) 建立并获取数据库连接(3) 创建 JDBC Stateme... 阅读全文
posted @ 2017-01-04 15:57 竹山一叶 阅读 (1348) 评论 (0) 编辑

2017年1月3日

摘要:前面的系列mybatis 文章,已经基本讲到了mybatis的操作,但都是基于mapper隐射操作的,在mybatis 3中这个mapper 接口貌似充当了以前在ibatis 2中的 DAO 层的作用。但事实上,如果有这个mapper接口不能完成的工作,或者需要更复杂的扩展的时候,你就需要自己的DAO 层. 事实上 mybatis 3 也是支持DAO 层设计的,类似于ibatis 2 .下面介绍下... 阅读全文
posted @ 2017-01-03 10:20 竹山一叶 阅读 (128) 评论 (0) 编辑

摘要:mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以mybatis 官方也推出了一个mybatis代码生成工具的jar包. 今天花了一点时间,按照 mybatis generator 的doc 文档参考,初步配置出了一个可以使用的版本,我把源代码也提供下载,mybatis 代码生成工具,主要有一下功能:1.生成pojo 与 数据... 阅读全文
posted @ 2017-01-03 10:02 竹山一叶 阅读 (156) 评论 (0) 编辑

2017年1月2日

摘要:mybatis 的动态sql语句是基于OGNL表达式的。可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似.3. trim (对包含的内容加上 prefix,或者 suffix ... 阅读全文
posted @ 2017-01-02 22:44 竹山一叶 阅读 (107) 评论 (0) 编辑

摘要:上一篇文章里已经讲到了mybatis与spring MVC的集成,并且做了一个列表展示,显示出所有article 列表,但没有用到分页,在实际的项目中,分页是肯定需要的。而且是物理分页,不是内存分页。对于物理分页方案,不同的数据库,有不同的实现方法,对于mysql 来说 就是利用 limit offset,pagesize 方式来实现的。oracle 是通过rownum 来实现的,如果你熟悉相关数... 阅读全文
posted @ 2017-01-02 22:42 竹山一叶 阅读 (166) 评论 (0) 编辑

2017年1月1日

摘要:前面几篇文章已经讲到了mybatis与spring 的集成。但这个时候,所有的工程还不是web工程,虽然我一直是创建的web 工程。今天将直接用mybatis与Spring mvc 的方式集成起来,源码在本文结尾处下载.主要有以下几个方面的配置1. web.xml 配置 spring dispatchservlet ,比如为:mvc-dispatcher2. mvc-dispatcher-serv... 阅读全文
posted @ 2017-01-01 23:12 竹山一叶 阅读 (147) 评论 (0) 编辑