- 浏览: 529032 次
- 性别:
- 来自: 广州
博客专栏
-
Mybatis实现原理深入...
浏览量:141136
最新评论
-
qq32933432:
那么问题来了,楼主现在怎样了?目标都达成了吗
2012年年度目标 -
leeahuamsg:
特别好,条理很清晰
原理分析之一:从JDBC到Mybatis -
lgh1992314:
<?xml version="1.0" ...
原理分析之三:初始化(配置文件读取和解析) -
guduyishuai:
context = tomcat.createContext( ...
基于内嵌Tomcat的应用开发 -
showlives:
原理分析之四:一次SQL查询的源码分析
文章列表
如何使用Mybaits调用数据库中的存储过程,下面以Oracle数据库的为例:
1.在数据库中创建以下的存储过程:
create or
replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is
begin
p_result := 'hello,' || p_user_name;
end;
2.编写SQL映射文件mapper.xml:
设计原则:
LightFramework的核心基础类库是整个开发框架最核心最基础的类库,框架的代码依赖于这个基础类库,但这个基础类库不依赖于非核心基础库,核心基础类库可能依赖于第三方的jar包。
内容介绍:
LightFramework的核心基础类库目前包含有两类:core(通用基础类)和util(通用工具类)。这两类都是开发和框架封装最常用的API,都是重用性和通用性比较强的基础类,我们开发一个新的功能就不需要重复去造轮子。
通用基础类有:
(1)基础常量类
(2)基础异常类
(3)。。。
通用工具类有:
(1)类操作工具类
(2)Js ...
服务层框架:
服务就是系统提供出来可访问的功能集合。可以通过Ajax来访问,也可以直接输入一个URL来访问,无论是通过Ajax来访问还是通过非Ajax来访问,其实都是需要先进行业务处理,不同的是业务处理完的渲染,有 ...
J2EE目前已经有很多数据持久层开发框架了,比如:Hibernate、Ibatis、OpenJPA、TopLink等等,为什么这里会提出一个新的轻量级数据持久层开发框架(light-persist),这些数据持久层框架有的已经实现了ORM,有些实现了JDBC的封装,但是,这些框架多多少少有些不尽如人意的地方。Hibernate是一个优秀的持久层框架,但是太过于繁琐了,SQL优化是一个大问题,性能不会太好。Ibatis让我们尽情编写SQL语句,方便SQL优化,但是需要我们写的SQL语句太多了,结果映射和输入映射太费事了。
主要设计原则:
(1)考虑持久化性能的同时,让开发人员尽可能 ...
愿景目标
LightFramework主要愿景是建设成J2EE轻量级的快速管理类软件开发平台,在企业应用系统的开发中,很多时候我们面临的问题是在保证代码可维护性和代码质量的基础上怎么提高开发效率,用最短的时间轻松的完成系统的建设。
LightFramework的目的就是要让开发人员轻松高效的完成业务开发工作。之前使用了SSH,感觉不轻松,很多方面想封装都得绕个弯才能实现。这里说明一下LightFramework跟SSH或者SSI的区别,LightFramework根据项目的检验已经封装了很多开发的最佳实践,开发效率比起SSH和SSI要高很多,也规避了一些技 ...
1. 查询表结构基本信息
select * from user_tables t,user_tab_comments c
where c.table_name = t.table_name
Mybatis的自带分页方法只是逻辑分页,如果数据量很大,内存会溢出,不知道为什么开源组织不在里面实现类似Hibernate的物理分页处理方法。在不改动Mybatis源代码的情况下,怎么使Mybatis支持物理分页呢?下面我们来看看。
(1)新建一个Java类Dialect.java,该类的内容如下:
package org.mybatis.extend.interceptor;
public abstract class Dialect {
public static enum Type{
MYSQL,
ORACLE
}
public abst ...
Mybaits为什么要整合Spring?
说白了其实就想使用Spring提供的服务,比如Spring的事务管理、Spring的IOC对Bean进行管理等。
Mybatis怎么整合Spring?
由于目前Spring官方还没有出整合Mybatis的特性,所以这里在Spring框架和MyBatis框架上再添加用于整合的框架“mybatis-spring-1.0.2.jar” (该框架时MyBatis官方自己出的)。
(1)新建一个Web工程,名称为MybatisSpring。
(2)将Spring3.0.3、Mybatis3.0.6、Mybatis-Spring1. ...
从开发人员的角度看数据持久层
1.编写SQL数据库语言SQL通过JDBC驱动操作数据库对象
最原始的操作数据库模式是:编写数据库语言SQL通过JDBC驱动操作数据库对象。处于这模式时,开发人员需要编写大量的SQL来完成数据库 ...
1. 搭建开发环境
(1)新建一个Web工程,名称为MybatisFramework。
(2)将以下的JAR放到Web工程的lib下面:
mybatis-3.0.6.jar
og4j-1.2.16.jar
classes12.jar
(3)在src下面新建log4j.properties文件,该文件的内容如下:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender ...
一谈到优化,就首先要有问题,这里谈到性能优化,那么就先有性能问题。性能调优系列的博客围绕以下几个问题来开展:
(1)怎么衡量一个系统的性能,怎么评价一个系统到底有没有性能问题?
(2)怎么从性能测试的结果分析出的系统到底有没有性能问题?有哪几方面的性能问题?
(3)知道系统有哪些性能问题后,怎么找出具体影响系统性能的详细原因呢?
(4)应用系统一般在哪些地方经常容易出现问题,怎么检测?
(5)有哪些性能调优工具可以使用
为什么使用内嵌Tomcat开发?
开发人员无需搭建Tomcat的环境就可以使用内嵌式Tomcat进行开发,减少搭建J2EE容器环境的时间和开发时容器频繁启动所花时间,提高开发的效率.
怎么搭建内嵌Tomcat环境呢?(以tomcat6和tomcat7为例)
在开发工程(xxxx)的根目录下新建以下的目录:
xxxx/Embedded/conf
xxxx/Embedded/lib
xxxx/Embedded/webapps
xxxx/Embedded/work
apache-tomcat-6.0.32
apache官方只提供了apache-tomcat5 ...
有时候我们想自己实现IBatis的缓存机制,在DAO添加缓存的方法给开发人员使用,可以通过以下的代码获取对应的Key值:
SqlMapClientImpl sci = (SqlMapClientImpl)this.sqlMapClient;
MappedStatement ms = sci.getMappedStatement(sqlId);
SessionScope sessionScope = new SessionScope();
sessionScope.incrementRequestStackDepth();
StatementSco ...
获取IBatis中指定SQLID的SQL解析结果(根据传入参数解析后的SQL语句和占位符参数数组)
SqlMapClient本身是没有方法获取SQL的解析结果的,必须将SqlMapClient对象强制转换成SqlMapClientImpl类型,然后传入SQLID和参数就可以获取到了,具体如下代码(sqlId为要解析的SQL对应的ID,params为传入的参数):
SqlMapClientImpl sci = (SqlMapClientImpl)this.sqlMapClient;
MappedStatement ms = sci.getMappedStatement(s ...
2012年已经开始了,年初这里给自己制定几个目标,等到年末再回头看看能完成多少。在2012年中我希望完成的几件事:
读完12本书,每个月至少一本书
坚持写博客,一个月至少一篇
锻炼身体,坚持每天有至少半个小时的锻炼
研究完两到三个开源框架源代码
拿到系统架构设计师的认证
完成J2EE轻量级的快速管理类软件开发平台
将权限管理系统做到极致并发布出来
专注性能优化工作,作为自己的一大长处