Mybatis的搭建过程

  1. 导入jar

  2. 创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration> </configuration>
  3. 创建映射文件xxxMapper.xml,并配置

  4. 创建mapper接口,实现两个绑定:

    1. 接口全限定名要和映射文件的namespace保持一致
    2. 接口中方法名和sql语句的id保持一致
  5. 获取mybatis操作数据库的会话对象SqlSession,通过getMapper()获取接口的动态代理实现类

  6. 测试

Mybatis获取参数值的两种方式

${}:insert into ssm values(null, admin, 10, 男)

​ Statement:必须使用字符串拼接的方式操作SQL,一定要注意单引号问题

#{}:insert into ssm values(null, ?, ? ,?)

PrepareStatement:可以使用通配符操作SQL,因为在为String赋值时,可以自动加单引号,因此无需注意单引号的问题

使用建议:建议使用#{} ,在特殊情况下,需要使用${},例如模糊查询和批量删除

不同的参数类型,${}和#{}的不同取值方式

  1. 当传输参数为单个String或基本数据类型和其他包装类

    1. #{}:可以以任意的名字获取参数值
    2. ${}:只能以${value} ${_parameter}获取
  2. 当传输参数为JavaBean时
    1. #{}${}都可以通过属性名直接获取属性值,但是需要注意 ${}的单引号问题
  3. 当传输多个参数时,mybatis会默认将这些参数放在map集合中
    1. 两种方式:

      1. 键为0,1,2,3....N-1,以参数为值
      2. 键为param1,param2,param3...paramN,以参数位置
  4. 当传输Map参数时

    1.#{}和 ${}都可以通过键的名字直接获值,但是要注意${}的单引号问题
  5. 命名参数
    1. 可以通过@Parm("key") 为map集合指定键的名字
  6. 当传输的参数为List或Array,mybatis会讲List或Array放在map中
    1. List以list为键,Array以array为键

Mbatis使用的更多相关文章

  1. Mbatis Oracle 第一次插入失败 useGeneratedKeys

    <insert id="insertAgentInfo" parameterType="pd" useGeneratedKeys="false& ...

  2. Mbatis——动态SQL

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  3. Mbatis错误信息整理

        ***每存在一对接口和xml文件,必须在xml文件中定义好mapper标签及namespace     ***每对接口必须和xml文件名必须一致 <mapper>标签中的names ...

  4. Mbatis是什么?怎么运行?

    一   .    Mybatis是什么? Mybatis是一个持久层框架,其中编写的过程中sql语句是需要程序员自己去编写,Mybatis也有 一些映射(输入参数映射,输出参数映射),Mybatis是 ...

  5. Mbatis逆向工程常遇错误

    org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may e ...

  6. mbatis中的#{}和${}

    #{}和${}的区别是什么?a.#{}是预编译处理,${}是字符串替换. b.Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set ...

  7. mbatis动态sql中传入list并使用

    <!--Map:不单单forech中的collection属性是map.key,其它所有属性都是map.key,比如下面的departmentId --> <select id=&q ...

  8. mybatis0201 01复习

    mybatis是什么? mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架(因为mybatis提供输入和输出的映射,需要程序员自己写sql语句) ...

  9. IDEA搭建SSM出现的一些错误

    下面是我这几天整合SpringMVC+Spring+MyBatis框架遇到的一些问题 ,在这里总结一下: 1:HTTP Status 500 - Request processing failed; ...

随机推荐

  1. nginx配置之禁止访问和404错误功能配置

    禁止访问功能配置 nginx.conf中的http{}中的server{}的location ..{}中: location / { #拒绝访问,192.168.16.0网段的同学都无法访问 /24是 ...

  2. day02:三元运算、布林非、列表等(20170214)

    #1:三元运算(满足条件就返回值,不简洁的代码):a= 1b= 3c= 5if a > b : d = aelse: d = cprint (d) #2:三元运算(满足条件就返回值,简洁的代码) ...

  3. Centos7访问Win7/Win10系统中的共享文件

    服务器挂在U盘: 1.先将U盘格式化为Fat格式或其他服务器能识别的格式. 2.使用fdisk -l,找到自己的U盘(根据盘大小) 3.新建一个文件夹(mkdir /mnt/usb)用于挂在数据 4. ...

  4. LaunchScreen作为启动图设置,修改无效的解决方案

    原有的推流APP用launchScreen做的启动图,现在要修改一张,发现修改无效. 当前测试的方法有 1,重启Xcode  卸载app 清楚xcode缓存 2,修改launchScreen.stor ...

  5. poj3621 SPFA判断正环+二分答案

    Farmer John has decided to reward his cows for their hard work by taking them on a tour of the big c ...

  6. Istio 将被捐赠给开源基金会 | 云原生生态周报 Vol. 47

    作者 | 陈俊.徐迪.陈有坤.李鹏.敖小剑 业界要闻 1.Google Cloud CEO 表示将把 Istio 项目捐赠给基金会 Istio 项目找到了理想的发展方向: 捐赠给开源基金会. 2.Ko ...

  7. Android常用五大布局

    一.说明 1.每个应用程序都默认包含一个主界面布局文件(.xml). 2.位于项目的app/src/main/res/layout目录. 3.宽度和高度的属性 match_parent:强制性的使使徒 ...

  8. Win10上禁用Device Guard以便运行VMware

    Win10上每次大版本升级后,如果你试图运行VMware,都会提示如下的错误信息: “VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Devi ...

  9. 循序渐进VUE+Element 前端应用开发(1)--- 开发环境的准备工作

    之前一直采用VS进行各种前端后端的开发,随着项目的需要,正逐步融合纯前端的开发模式,开始主要选型为Vue + Element 进行BS前端的开发,后续会进一步整合Vue + AntDesign的界面套 ...

  10. Verilog语言中的系统任务和系统函数

    Verilog语言中预先定义了一些任务和函数,用于完成一些特殊的功能,它们被称为系统任务和系统函数,这些函数大多数都是只能在Testbench仿真中使用的,使我们更方便的进行验证. `timescal ...