
myBatis3实战
文章平均质量分 56
fhd001
这个作者很懒,什么都没留下…
展开
-
myBatis3之SQL映射的XML文件(动态SQL之四)
myBatis3之SQL映射的XML文件(动态SQL之四)---------- foreach 另外一个动态SQL通用的必要操作是迭代一个集合,通常是构建在IN条件中的。比如:<select id="selectPostIn" resultType="domain.blog.Post"> SELECT * FROM POST P WHE...原创 2011-07-22 18:04:00 · 119 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(Parameters)
myBatis3之SQL映射的XML文件(Parameters)---------- 在之前的语句中,你已经看到了一些简单参数的示例。在MyBatis中参数是非常强大的元素。对于简单的做法,大概90%的情况,是不用太多的,比如:<select id="selectUsers" parameterType="int" resultType="User"> selec...原创 2011-07-20 17:37:37 · 114 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(sql元素)
myBatis3之SQL映射的XML文件(sql元素)---------- sql 这个元素可以被用来定义可重用的SQL代码段,可以包含在其他语句中。比如: <sql id="userColumns"> id,username,password</sql> 这个SQL片段可以被包含在其他语句中,例如: <select i...原创 2011-07-20 15:42:01 · 165 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(insert,update,delete 元素)
myBatis3之SQL映射的XML文件(insert,update,delete 元素)---------- insert,update,delete 数据变更语句insert,update和delete在它们的实现中非常相似:<insert id="insertAuthor" parameterType="domain.blog.Author" ...原创 2011-07-20 15:24:18 · 358 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(select元素)
myBatis3之SQL映射的XML文件(select元素)---------- select 对简单类别的查询元素是非常简单的。比如:<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} <...原创 2011-07-20 14:08:10 · 435 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件
myBatis3之SQL映射的XML文件---------- SQL映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): 元素描述cache配置给定命名空间的缓存cache-ref从其他命名空间引用缓存配置resultMap最复杂,也是最有力量的元素,用来描述如何从数据库结果集中来加载你的对象。sql可以重用的SQL...原创 2011-07-20 11:36:14 · 107 阅读 · 0 评论 -
myBatis3与spring整合之使用SqlSession(SqlSessionDaoSupport类)
myBatis3与spring整合之使用SqlSession(SqlSessionDaoSupport类)---------- 注:这是手工编写实现的方式(其实可以直接使用注入映射器的) SqlSessionDaoSupportSqlSessionDaoSupport是一个抽象的支持类,用来为你提供SqlSession。调用getSqlSession()方法你会得到一个Sq...原创 2011-07-18 20:35:32 · 317 阅读 · 0 评论 -
myBatis3与spring整合之使用SqlSession(SqlSessionDaoTemplate类)
myBatis3与spring整合之使用SqlSession(SqlSessionDaoTemplate类)---------- 注:这是手工编写实现的方式(其实可以直接使用注入映射器的) SqlSessionTemplateSqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQ...原创 2011-07-18 20:18:05 · 177 阅读 · 0 评论 -
myBatis3与spring整合之注入映射器(2)
myBatis3与spring整合之注入映射器(2)---------- 没有必要在Spring的XML配置文件中注册所有的映射器。相反,你可以使用一个MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBeans。要创建MapperScannerConfigurer,可以在Spring的配置中添加如下代码: ...原创 2011-07-18 19:36:11 · 206 阅读 · 0 评论 -
myBatis3与spring整合之注入映射器(1)
myBatis3与spring整合之注入映射器(1)---------- MyBatis-Spring允许你在Service Bean中注入映射器。当使用映射器时,就像调用DAO那样来调用映射器就可以了,但是此时你就不需要进行任何DAO实现的编码,因为MyBatis会为你进行。 使用注入的映射器,你的代码就不会出现任何MyBatis-Spring依赖和MyBatis依赖。在我们的应...原创 2011-07-18 19:06:22 · 118 阅读 · 0 评论 -
myBatis3与spring整合之SqlSessionFactoryBean
myBatis3与spring整合之SqlSessionFactoryBean---------- 在基本的MyBatis中,session工厂可以使用SqlSessionFactoryBuilder来创建。在MyBatis-Spring中,使用SqlSessionFactoryBean来替代。SqlSessionFactoryBean实现了spring的FactoryBea...原创 2011-07-15 20:22:02 · 360 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(resultMap元素之一)
myBatis3之SQL映射的XML文件(resultMap元素之一)---------- 你已经看到简单映射语句的示例了,但没有明确的resultMap。比如: <select id=”selectUsers” parameterType=”int” resultType=”hashmap”> select id, username, hashedPass...原创 2011-07-21 11:30:23 · 202 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(resultMap元素之二)
myBatis3之SQL映射的XML文件(resultMap元素之二)---------- 高级结果映射 比如,我们如何映射下面这个语句?<!-- Very Complex Statement --> <select id="selectBlogDetails" parameterType="int" resultMap="detailed...原创 2011-07-21 14:49:10 · 114 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(resultMap元素之三)
myBatis3之SQL映射的XML文件(resultMap元素之三)---------- 高级结果映射之id,result元素 <id property="id" column="post_id"/> <result property="subject" column="post_subject"/> 这些是结果映射最基本内容。id和resul原创 2011-07-21 15:39:47 · 136 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(动态SQL之三)
myBatis3之SQL映射的XML文件(动态SQL之三)---------- trim, where, set 我们再来看看if的例子,如: <select id=”findActiveBlogLike” parameterType=”Blog” resultType=”Blog”> SELECT * FROM BLOG WHERE ...原创 2011-07-22 16:08:20 · 136 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(动态SQL之二)
myBatis3之SQL映射的XML文件(动态SQL之二)---------- if 在动态SQL中所做的最通用的事情是包含部分where字句的条件。比如:<select id=”findActiveBlogWithTitleLike” parameterType=”Blog” resultType=”Blog”> SELECT * FROM...原创 2011-07-22 11:15:22 · 115 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(动态SQL之一)
myBatis3之SQL映射的XML文件(动态SQL之一)---------- MyBatis的一个强大的特性之一通常是它的动态SQL能力。如果你有使用JDBC或其他相似框架的经验,你就明白条件地串联SQL字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号。动态SQL可以彻底处理这种痛苦。 通常使用动态SQL不可能是独立的一部分,MyBatis当然使用一种强...原创 2011-07-22 11:04:49 · 143 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(使用自定义缓存)
myBatis3之SQL映射的XML文件(使用自定义缓存)---------- 使用自定义缓存 除了这些自定义缓存的方式,你也可以通过实现你自己的缓存或为其他第三方缓存方案创建适配器来完全覆盖缓存行为。<cache type=”com.domain.something.MyCustomCache”/> 这个示例展示了如何使用一个自定义的缓存实现。...原创 2011-07-22 10:50:54 · 107 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(缓存)
myBatis3之SQL映射的XML文件(缓存)---------- MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。默认情况下是没有开启缓存的,要开启二级缓存,你需要在你的SQL映射文件中添加一行:<cache/> 字面上看就是这样。这个简单语句的效果如下: 1.映射语句文件中的所有select语句将会被缓存。 2.映射语句文件中...原创 2011-07-22 10:05:16 · 132 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(resultMap元素之七)
myBatis3之SQL映射的XML文件(resultMap元素之七)----------- 高级结果映射之discriminator元素(鉴别器) <discriminator javaType="int" column="draft"> <case value="1" resultType="DraftPost"/> <原创 2011-07-21 20:43:41 · 126 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(resultMap元素之六)
myBatis3之SQL映射的XML文件(resultMap元素之六)----------- 高级结果映射之collection元素(集合) <collection property="posts" ofType="domain.blog.Post"> <id property="id" column="post_id"/> &原创 2011-07-21 18:50:39 · 124 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(resultMap元素之五)
myBatis3之SQL映射的XML文件(resultMap元素之五)---------- 高级结果映射之association元素(关联) <association property="author" column="blog_author_id" javaType=" Author"> <id property="id" column="auth原创 2011-07-21 17:43:40 · 128 阅读 · 0 评论 -
myBatis3之SQL映射的XML文件(resultMap元素之四)
myBatis3之SQL映射的XML文件(resultMap元素之四)---------- 高级结果映射之constructor元素 <constructor> <idArg column="id" javaType="int"/> <arg column=”username” javaType=”String”/> <...原创 2011-07-21 16:00:59 · 98 阅读 · 0 评论 -
myBatis3与spring整合之数据源配置
myBatis3与spring整合之数据源配置---------- 用myBatis3与spring整合的时候,我们可以通过多种方式获取数据源,可以用dbcp,c3p0,proxool等数据连接池实现,也可以用jndi的方式实现。如例,C3P0的配置方式:<!-- C3P0数据源 --><bean id="dataSource" class="co...原创 2011-07-15 19:34:19 · 200 阅读 · 0 评论 -
myBatis3与spring整合之需要的jar包
myBatis3与spring整合之需要的jar包---------- 当你用spring与myBatis整合时,你不仅需要spring的jar包,myBatis的jar包,你还需要另一个依赖包,以maven项目为例: <dependency> <groupId>org.mybatis</groupId> <ar...原创 2011-07-15 14:48:55 · 200 阅读 · 0 评论 -
myBatis3之xml映射配置(mappers)
myBatis3之xml映射配置(mappers) 既然MyBatis的行为已经由上述元素配置完了,我们现在就要定义SQL映射语句了。但是,首先我们需要告诉MyBatis到哪里去找到这些语句。Java在这方面没有提供一个很好的方法,所以最佳的方式是告诉MyBatis到哪里去找映射文件。你可以使用相对于类路径的资源引用,或者字符表示,或url引用的完全限定名(包括file:///URL...原创 2011-07-14 20:29:12 · 182 阅读 · 0 评论 -
ibatis实战之插入数据(使用外部参数映射)
ibatis实战之插入数据(使用外部参数映射)---------- 和使用内联参数映射相比,使用外部参数映射除了能提供相同的功能之外,还具有更好的性能并且ibatis能在加载它的同时对其进行验证。下面给出一个使用外部参数映射的insert语句的示例,以下代码在功能上和前一个例子是一样的,只不过它使用的是外部参数映射而不是内联参数映射。<parameterMap...原创 2011-07-10 15:14:15 · 189 阅读 · 0 评论 -
ibatis实战之插入数据(使用内联参数映射)
ibatis实战之插入数据(使用内联参数映射)---------- 内联参数映射通过标记告诉ibatis你想让它如何将你的输入参数映射到已映射语句中,这样你就不需要显式定义外部参数映射,从而能够快速地构建已映射语句。以下是一个使用内联参数映射的insert语句的示例:<insert id="insertWithInlineInfo"> insert in...原创 2011-07-10 14:49:30 · 365 阅读 · 0 评论 -
ibatis实战之用于非查询语句的SqlMap API
ibatis实战之用于非查询语句的SqlMap API---------- 这里我们只讨论基础的方法,即insert,update和delete这3种最常用于更新数据的方法。 1.insert方法你可能已经猜到,insert方法用来执行和SQL的insert语句相对应的已映射语句:Object inset(String id,Object parameter...原创 2011-07-10 13:19:29 · 107 阅读 · 0 评论 -
ibatis实战之外部结果映射
ibatis实战之外部结果映射---------- 内联结果映射的确非常好,因为它们非常容易使用,并且在绝大多数情况下都能很顺利地完成工作。ibatis中的外部结果映射也同样有价值,因为它们可以提供更好的性能、更严格的配置验证,以及更加精确的行为。使用外部结果映射,在运行时很少会出错。 结果映射属性属性描述property设定一条...原创 2011-07-10 12:04:41 · 117 阅读 · 0 评论 -
ibatis实战之内联结果映射
ibatis实战之内联结果映射---------- 面blog,我们给出的示例中都没有定义任何结果映射(result map),但确实定义了结果类(result class)。这种方式所以可行是因为ibatis的自动结果映射机制,该机制会在映射语句第一次被执行时,迅速地自动创建一个结果映射,然后将它应用于这条已映射语句。可以有3种方式来使用这个特征:单列选择,固定多列选择和动...原创 2011-07-10 10:50:13 · 229 阅读 · 0 评论 -
ibatis实战之外部参数映射
ibatis实战之外部参数映射---------- 有两种方式可以将参数映射到已映射语句中:内联映射和外部映射。我们这里要讨论的是外部映射。 外部参数映射使用外部参数映射时,可以指定多达6个属性。如果没有指定其中的某个属性,ibatis就会用反射来尽可能地为其确定合理的值,但是这么做比较费时并且可能不准确。 参数映射的属性属性描述pr...原创 2011-07-10 10:10:11 · 246 阅读 · 0 评论 -
ibatis实战之内联参数映射
ibatis实战之内联参数映射---------- 前面我们讨论了如何使用最简单形式的内联参数映射,来告诉ibatis我们想要在运行时代入到查询中的属性的名称。除了使用这种最简单的形式,也可以在内联参数映射中提供一些外部参数映射所允许的特性,例如:jdbcType(数据库类型)以及nullValue(参数的空值占位符),只要用冒号将参数名、数据库类型和空值占位符分隔开即可。当你的...原创 2011-07-09 23:44:57 · 320 阅读 · 0 评论 -
ibatis实战之使用内联参数--用$做占位符
ibatis实战之使用内联参数--用$做占位符---------- 使用内联参数的另一种方式就是使用替代($)语法,它可以用来把值直接插入到SQL语句之中(在SQL语句被转变为参数化语句之前)。但是使用这种方式时要非常小心,因为它可能使你暴露给SQL注入,另外过度使用还可能造成性能问题。以下是一种在ibatis中处理LIKE运算符的方法示例: <select i...原创 2011-07-09 18:08:23 · 177 阅读 · 0 评论 -
ibatis实战之使用内联参数--用#做占位符
ibatis实战之使用内联参数--用#做占位符---------- 内联参数就是一种在已映射语句中添加查询条件的简单方式,你可以使用两个不同的方法来设置内联参数。第一个方法是使用散列(#)符号。以下的例子就使用#符号传递进一个简单的内联参数,以通过accountId值来获取一个唯一的Account bean: <select accountId, username...原创 2011-07-09 17:43:58 · 274 阅读 · 0 评论 -
myBatis3之自动化生成dao插件
mybatis3之自动化生成dao插件---------- 插件地址:http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/原创 2011-09-22 09:08:38 · 141 阅读 · 0 评论 -
ibatis实战之插入数据(自动生成主键)
ibatis实战之插入数据(自动生成主键)--------- 如果你将数据库设计为使用自动生成的主键,就可以使用ibatis的<selectKey>元素(该元素是<insert>元素的一个专用子元素)来获取这些自动生成的主键的值并将其保存在对象中。完成这项工作可以有两种方式,具体选择何种方式由你所使用的具体的主键生成技术来确定。 第一种方式是,当你...原创 2011-07-10 16:49:54 · 221 阅读 · 0 评论 -
myBatis3之从XML中构建SqlSessionFactory
myBatis3之从XML中构建SqlSessionFactory ---------- MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射。 每一个MyBatis的应用程序都以一个SqlSessionFactory对象的...原创 2011-07-10 19:01:28 · 219 阅读 · 0 评论 -
myBatis3之从SqlSessionFactory中获取SqlSession
myBatis3之从SqlSessionFactory中获取SqlSession---------- 现在,我们已经知道如何获取SqlSessionFactory对象了,基于同样的启示,我们就可以获得SqlSession的实例了。SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法。你可以用SqlSession实例来直接执行已映射的SQL 语句。例如:SqlSe...原创 2011-07-10 19:06:10 · 836 阅读 · 0 评论 -
myBatis3之xml映射配置(dataSsource)
myBatis3之xml映射配置(dataSsource)---------- dataSource元素使用基本的JDBC数据源接口来配置JDBC连接对象的资源。有三种内建的数据源类型: UNPOOLED-----这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢,这是对简单应用程序的一个很好的选择,因为它不需要及时的可用连接。不同的数据库对这个的表现也是不一...原创 2011-07-14 20:23:12 · 175 阅读 · 0 评论