mybaits 学习笔记

1、导入mybaits jar包

  手动导入mybaits github 下载地址 https://github.com/mybatis/mybatis-3/

  maven导入依赖

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>

2、主配置文件

在github上下载源码包,并在\src\test\java\org\apache\ibatis\submitted\complex_property下拷贝Configuration.xml作为配置样板。

配置数据库链接

<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/db_name"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>

3、获取SqlSession

SqlSession作用 1、向sql语句传入参数。 2、执行sql语句。 3、获取执行sql语句的结果。 4、事务的控制。

如何得到SqlSession:

  1. 通过主配置文件获取数据库连接相关信息。
  2. 通过配置信息构建SqlSessionFactory。
  3. 通过SqlSessionFactory打开数据库会话。

4、构建数据库访问类

  public class DBAcess {

public SqlSession getSqlSession() throws IOException{
//通过配置文件读取数据库链接信息
Reader reader = Resources.getResourceAsReader("config/Configuration.xml"); //配置文件路径为相对于代码根目录的路径
//通过配置文件构建一个SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//通过SqlSessionFactory打开一个数据库会话
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}

}

5、mabaits操作xml配置

  在github上下载源码包,并在\src\test\java\org\apache\ibatis\submitted\complex_property下拷贝User.xml作为配置样板。

  在mapper下配置相应的sql操作如: 

<select id="queryUserList"   resultMap="UserResult">
  SELECT id,username,password  FROM user WHERE 1 = 1
</select>

根据需要配置相应的resultMap返回数据 如:   

<resultMap type="bean.User" id="UserResult">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="username" jdbcType="VARCHAR" property="username"/>
<result column="password" jdbcType="VARCHAR" property="password.encrypted"/>
</resultMap>

6、将mabaits操作xml配置添加到主配置文件中

<mappers>
<mapper resource="oconfig/User.xml"/>
</mappers>

DAO层调用  例:sqlSession.selectList("User.queryUserList");//User对应<mapper namespace="User">

7、传递参数到SQL   结合OGNL

Mybaits中的OGNL
取值范围  标签中的属性
     取值写法  String与基本数据类型 _parameter 
 自定义类型  属性名(username)
   集合  数组:array
 List:list
 Map:_parameter
  操作符  java常用操作符  +,-,*,/,==,!=,||,&&等
 自己特有的操作符  and,or,mod,in,not in
Mybaits中的OGNL
从集合中取出一条数据 数组 array[索引](String[])
array[索引]。属性名(User[])
List list[索引](List<String>)
list[索引].属性名(List<User>)
Map _parameter.key(Map<String,String>)
key.属性名(Map<String,User>)
利用foreach标签从集合中取出数据 <foreach collection="array" index="i" item="item">
数组 i:索引(下标)
item

item.属性名

List
Map i:key

    

    

<select id="queryMessageList" parameterType="bean.Message" resultMap="MessageResult">
<!-- SELECT * FROM user WHERE id = #{id:INTEGER} -->
select id,command,description,content from message where 1=1
<if test="command != null and !&quot;&quot;.equals(command.trim())">and command=#{command}</if>
<if test="description != null and !&quot;&quot;.equals(description.trim())">and description like ‘%‘#{description}‘%‘</if>
</select>

    例:

    User user = new User();

    user.setUsername("...");

    DAO层调用  例:sqlSession.selectList("User.queryUserList",user);

    

  

时间: 2024-11-05 22:34:09

mybaits 学习笔记的相关文章

Mybatis学习笔记(二) 之实现数据库的增删改查

开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载.首先建立一个名字为 MyBaits 的 dynamic web project 1. 可以创建maven项目,依赖的包mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar <!-- mybatis包 --> <depe

springmvc+mybatis学习笔记(汇总)

springmvc+mybatis学习笔记(汇总) 标签 : springmvc mybaits springmvcmybatis学习笔记汇总 目录 联系作者 笔记分为两大部分:mybatis和springmvc mybatis springmvc 笔记内容主要是mybatis和springmvc的一些基本概念和使用方法,涉及概念介绍.环境搭建.编程细节.运行调试等方面. 这套笔记整体偏入门和应用,适合快速上手,对底层实现和机理并未做过多分析.我后续会研读spring源码,并把学习的收获写成博客

mybatis学习笔记(13)-查询缓存之二级缓存

mybatis学习笔记(13)-查询缓存之二级缓存 mybatis学习笔记13-查询缓存之二级缓存 二级缓存原理 开启二级缓存 调用pojo类实现序列化接口 测试方法 useCache配置 刷新缓存就是清空缓存 应用场景和局限性 本文主要讲mybatis的二级缓存,二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的. 二级缓存原理 首先开启mybatis的二级缓存. sqlS

mybatis学习笔记(14)-查询缓存之中的一个级缓存

mybatis学习笔记(14)-查询缓存之中的一个级缓存 mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 本文主要讲mybatis的一级缓存.一级缓存是SqlSession级别的缓存. 查询缓存 mybatis提供查询缓存.用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在操作数据库时须要构造sqlSession对象,在对象中有一个数据结构(HashMa

SpringBoot学习笔记(1):配置Mybatis

SpringBoot学习笔记(1):配置Mybatis 参考资料: 1.AndyLizh的博客 2.xiaolyuh123的博客 快速开始 添加Mybatis依赖(其他依赖已省去) <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------