您的位置:首页 > 其它

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis