Mybatis入门笔记--一些概念
2017-05-08 20:30
489 查看
创建session
开启一个session需要使用到SqlSessionFactory,而SqlSessionFactory是由SqlSessionFactoryBuilder创建的。具体的代码就是:String resource = "configuration.xml"; InputStream stream = Resources.getResourceAsStream(resource); SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(stream); SqlSession session = ssf.openSession();
session的增删改查
在session里进行增删改查一系列的操作,对应的方法都由session提供,可以传递参数给sql语句。比如说:Order order = session.selectOne("domain.Order.selectOrder", "0001");
session的方法还有:selectList、selectMap、delete、update、insert等,select操作的方法最多。
就上面的selectOne(xxx, xxx)而言,这里接收两个参数。第一个用于定位到所要执行的sql语句,第二个是传递的参数。这里的意思是查询一个id为”0001”的订单信息。
mapper配置文件
order.xml配置文件也叫做mapper配置文件。最简单的写法就是如下了:<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="domain.Order"> <select id="selectOrder" parameterType="String" resultType="domain.Order"> select * from orders where id = #{id} </select> </mapper>
这里的namespace用于区分相同的id,和java里的package效果类似。parameterType是传入参数的类型,resultType是返回的数据类型。
<select></select>里面就是所需要的查询语句,这里的
#{}是占位符,会被传入的参数所替代。
多个传递参数
在where查询条件中,常常是会有多个条件的,所以参数也会有多个,那该如何做呢?看下面这个例子:1.首先需要将参数用Map封装起来
Map<String, String> params = new HashMap<String, String>(); params.put("receiverAddress", "China"); params.put("receiverName", "Bean"); List<Order> orders = session.selectList("domain.Order.selectOrders", params); for(Order ord : orders) { System.out.println(ord); }
2.在order.xml文件中,parameterType的类型改为Map,同时在sql语句中增加相应的参数即可:
<select id="selectOrders" parameterType="Map" resultType="domain.Order"> select * from orders where receiverAddress = #{receiverAddress} and receiverName = #{receiverName} </select>
关于configuration.xml配置文件
对于configuration.xml文件,这里需要引入所需的各种mapper配置文件,也就是<mapper></mapper>节点。
<mappers> <mapper resource="domain/order.xml" /> <mapper resource="domain/user.xml" /> </mappers>
相关文章推荐
- GIT入门笔记(3)- git中的一些概念和原理
- UML学习笔记(二):复习面向对象的一些基本概念
- Oracle Concept 的一些笔记 -- extent的概念
- MyBatis入门示例——MyBatis学习笔记之一 推荐
- mybatis学习笔记---入门
- cocos2d-x初学笔记02:一些概念
- [Eclipse笔记]一些基本概念
- CMurphi入门笔记(二)——基本概念
- javascript学习笔记(二) js一些基本概念
- ant入门示例——mybatis学习笔记之预备篇(二) 推荐
- [Python]入门教程(二):Python中的一些基本概念
- C++中动态链接库的一些概念及入门(1)
- (笔记)关于3d建模软件中骨骼动画的一些概念
- Oracle RAC学习笔记:基本概念及入门
- javascript学习笔记(二) js一些基本概念
- Oracle Concept 的一些笔记 -- block的概念
- UML学习笔记(二):复习面向对象的一些基本概念
- Oracle RAC学习笔记:基本概念及入门
- TCP和http学习笔记(入门概念)
- <C++学习笔记 -- 1> C++中的一些基本概念