zoukankan      html  css  js  c++  java
  • Mbatis使用

    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为键
  • 相关阅读:
    MapReduce WordCount Combiner程序
    Spring Boot 单元测试
    Spring Boot @SpringApplicationConfiguration 不能导入的问题
    西西弗斯 滚石上山
    《Effective Modern C++》翻译--简单介绍
    算法排序问题
    MySQL Study之--MySQL schema_information数据库
    HDOJ 4251 The Famous ICPC Team Again
    一、OpenStack入门 之 初步认识
    python模块
  • 原文地址:https://www.cnblogs.com/KingTL/p/13050596.html
Copyright © 2011-2022 走看看