mybatis学习笔记(二)
- 三种查询方式,由<resultType 属性控制>
- 第一种 selectList()
- 返回值为LIst
List<People> selectList = session.selectList("com.bjm.mapper.selAll"); for (People people : selectList) {
System.out.println(people.toString());
}
- 返回值为LIst
- 第二种 selectOne()
- 返回值Object,适用于返回结果只是变量或一行数据时
Object selectOne = session.selectOne("com.bjm.mapper.count");
System.out.println(selectOne);
- 返回值Object,适用于返回结果只是变量或一行数据时
- 第三种 selectMap
- 返回值Map,适用于需要在查询结果中通过某列的值取到这行数据的需求。
Map<Object, Object> selectMap = session.selectMap("com.bjm.mapper.selById", "name");
System.out.println(selectMap);
- 返回值Map,适用于需要在查询结果中通过某列的值取到这行数据的需求。
- 第一种 selectList()
- settings标签
- 在mybatis全局配置文件中通过<settings>标签控制 mybatis 全局开关
- 例如在mybatis开启log4j
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
- parameterType属性
- 在xxx(实体类)Mapper.xml中<select><delete>等标签的 parameterType 可以控制参数类型
- SqlSession 的 selectList()和 selectOne()的第二个参数和 selectMap()的第三个参数都表示方法的参数。
Object selectOne = session.selectOne("com.bjm.mapper.selAll",2);
System.out.println(selectOne);<select id="selAll" resultType="com.bjm.pojo.People" parameterType="int">
select * from people where id=#{0}
</select> - 在Mapper.xml 中可以通过#{}获取参数
- parameterType 控制参数类型
- #{}获取参数内容,需要注意#{0}表示使用索引,从 0 开始第一个参数,#{param1}也可以但从1开始计数
- 我们可以发现从sql语句可以看到#{0}使用的是占位符,因此mybatis使用的是preparestatement预处理(因为只有reparestatement可以处理占位符)。
控制台:
org.apache.ibatis.logging.jdbc.BaseJdbcLogger DEBUG ==> Preparing: select * from people where id=?
org.apache.ibatis.logging.jdbc.BaseJdbcLogger DEBUG ==> Parameters: 2(Integer)
org.apache.ibatis.logging.jdbc.BaseJdbcLogger DEBUG <== Total: 1
People [id=2, name=李四, age=22]
- Mapper.xml中使用${}也可以接收传入的数据,那么${}和#{}的区别在哪?
- #{} 获取参数的内容支持:索引获取#{0},#{param1}获取指定位置参数,并且 SQL 使用?占位符,可以防止sql注入。
- ${} 使用的是字符串拼接而不是?(占位符),默认找${内容}内容的 get/set 方法。如果没有get/set方法,则直接寻找属性值。如果写数字,就是一个数字。
- 一般情况推荐使用#{}
- Mapper.xml中使用${}也可以接收传入的数据,那么${}和#{}的区别在哪?
mybatis学习笔记(二)的更多相关文章
- Mybatis学习笔记二
本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询 ...
- mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现
项目结构 基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...
- MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...
- MyBatis学习笔记(二) 关联关系
首先给大家推荐几个网页: http://blog.csdn.net/isea533/article/category/2092001 没事看看 - MyBatis工具:www.mybatis.tk h ...
- MyBatis学习笔记(二) Executor
一.概述 当我们打开一个SqlSession的时候,我们就完成了操作数据库的第一步,那MyBatis是如何执行Sql的呢?其实MyBatis的增删改查都是通过Executor执行的,Executor和 ...
- Mybatis学习笔记(二) —— mybatis入门程序
一.mybatis下载 mybaits的代码由github.com管理,下载地址:https://github.com/mybatis/mybatis-3/releases 下载完后的目录结构: 二. ...
- mybatis学习笔记二(接口注解)
直接上代码,全部在代码里讲解. 1.实体类 package com.home.entity; /** * 此类是:user实体类 * @author hpc * @2017年1月10日下午9:36:5 ...
- MyBatis学习笔记二:MyBatis生产中使用环境搭建
这里是在上一个环境的基础上修改的,这里就不在给出所有的配置,只给出哪里修改的配置 1.修改POJO对象为注解方式 2.创建Dao层接口 package com.orange.dao; import c ...
- mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)
下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...
- Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [ ...
随机推荐
- Django用户头像上传
1 将文件保存到服务器本地 upload.html ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!DOCTYPE html> <html ...
- scrapy基础知识之 scrapy 三种模拟登录策略:
注意:模拟登陆时,必须保证settings.py里的 COOKIES_ENABLED (Cookies中间件) 处于开启状态 COOKIES_ENABLED = True或 # COOKIES_ENA ...
- SqlCommand的Parameters的用法
SqlCommand的Parameters的用法 可以用的SqlCommand的Parameters的方法SqlCommand cmd=new ("insert into notice(ly ...
- python3+pyQt5+QtDesignner实现窗口化猜数字游戏
描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成 ...
- python基础认识(一)
这些日子以来,新闻铺天盖地的都是人工智能,那么借着这股潮流,python也随之火起来了,现在的python不仅仅可以进行人工智能领域的开发.还可以进行web.爬虫等领域的运用.因此,我认为作为一个紧跟 ...
- 使用http3访问服务
用到的包:import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response; 主要代码: try { //创建OkH ...
- Spring Boot 邮件发送的 5 种姿势!
邮件发送其实是一个非常常见的需求,用户注册,找回密码等地方,都会用到,使用 JavaSE 代码发送邮件,步骤还是挺繁琐的,Spring Boot 中对于邮件发送,提供了相关的自动化配置类,使得邮件发送 ...
- OpenCV多版本切换和配置--opencv 安装与卸载、添加 opencv_contrib modules 以及 OpenCv 多版本切换
1. 查看安装Opencv的版本.以及libs和cflags $ pkg-config --modversion opencv $ pkg-config --cflags opencv // 编译链接 ...
- Java编程思想:序列化基础部分
import java.io.*; import java.util.Date; import java.util.Random; public class Test { public static ...
- Image Classification
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...