zoukankan      html  css  js  c++  java
  • MyBatis(三)

    6. 万能Map

    假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应该考虑使用Map!

    1. UserMapper接口

    //用万能Map插入用户
    public void addUser2(Map<String,Object> map);
    1. UserMapper.xml

    <!--对象中的属性可以直接取出来 传递map的key-->
    <insert id="addUser2" parameterType="map">
      insert into user (id,name,password) values (#{userid},#{username},#{userpassword})
    </insert>
    1. 测试

        @Test
       public void test3(){
           SqlSession sqlSession = MybatisUtils.getSqlSession();
           UserMapper mapper = sqlSession.getMapper(UserMapper.class);
           HashMap<String, Object> map = new HashMap<String, Object>();
           map.put("userid",4);
           map.put("username","王虎");
           map.put("userpassword",789);
           mapper.addUser2(map);
           //提交事务
           sqlSession.commit();
           //关闭资源
           sqlSession.close();
      }

    Map传递参数,直接在sql中取出key即可! 【parameter=“map”】

    对象传递参数,直接在sql中取出对象的属性即可! 【parameter=“Object”】

    只有一个基本类型参数的情况下,可以直接在sql中取到

    多个参数用Map , 或者注解!

    7. 模糊查询

    模糊查询这么写?

    1. Java代码执行的时候,传递通配符% %

      List<User> userList = mapper.getUserLike("%李%");
    2. 在sql拼接中使用通配符

      select * from user where name like "%"#{value}"%"

    4、配置解析

    1. 核心配置文件

    • mybatis-config.xml

    • Mybatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。

      configuration(配置)
        properties(属性)
        settings(设置)
        typeAliases(类型别名)
        typeHandlers(类型处理器)
        objectFactory(对象工厂)
        plugins(插件)
        environments(环境配置)
        environment(环境变量)
        transactionManager(事务管理器)
        dataSource(数据源)
        databaseIdProvider(数据库厂商标识)
        mappers(映射器)

    2. 环境配置 environments

    MyBatis 可以配置成适应多种环境

    不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境

    学会使用配置多套运行环境!

    MyBatis默认的事务管理器就是JDBC ,连接池:POOLED

    3. 属性 properties

    我们可以通过properties属性来实现引用配置文件

    这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。【db.poperties】

    1. 编写一个配置文件

      db.properties

      driver=com.mysql.cj.jdbc.Driver
      url=jdbc:mysql://localhost:3306/mybatis?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
      username=root
      password=root
    2. 在核心配置文件中引入

      <!--引用外部配置文件-->
      <properties resource="db.properties">
         <property name="username" value="root"/>
         <property name="password" value="root"/>
      </properties>
      • 可以直接引入外部文件

      • 可以在其中增加一些属性配置

      • 如果两个文件有同一个字段,优先使用外部配置文件的

    4. 类型别名 typeAliases

    • 类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置.

    • 意在降低冗余的全限定类名书写。

      <!--可以给实体类起别名-->
      <typeAliases>
         <typeAlias type="com.kuang.pojo.User" alias="User"/>
      </typeAliases>

      也可以指定一个包,每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author,;若有注解,则别名为其注解值。见下面的例子:

      <typeAliases>
         <package name="com.kuang.pojo"/>
      </typeAliases>

      在实体类比较少的时候,使用第一种方式。

      如果实体类十分多,建议用第二种扫描包的方式。

      第一种可以DIY别名,第二种不行,如果非要改,需要在实体上增加注解。

      @Alias("author")
      public class Author {
        ...
      }

    5. 设置 Settings

    这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。

    在这里插入图片描述

    6. 其他配置

    7. 映射器 mappers

    MapperRegistry:注册绑定我们的Mapper文件;

    方式一:【推荐使用】

    <!--每一个Mapper.xml都需要在MyBatis核心配置文件中注册-->
    <mappers>
       <mapper resource="com/kuang/dao/UserMapper.xml"/>
    </mappers>

    方式二:使用class文件绑定注册

    <!--每一个Mapper.xml都需要在MyBatis核心配置文件中注册-->
    <mappers>
       <mapper class="com.kuang.dao.UserMapper"/>
    </mappers>

    注意点:

    • 接口和他的Mapper配置文件必须同名

    • 接口和他的Mapper配置文件必须在同一个包下

    方式三:使用包扫描进行注入

    <mappers>
       <package name="com.kuang.dao"/>
    </mappers>
    123
  • 相关阅读:
    Samba配置文件常用参数详解-OK
    SVN Server配置详解 及备份
    secure crt 基本设置***
    ultraedit15.00.0.1046注册码
    makefile中的shell语法 ***
    Spring (一) IOC ( Inversion Of Control )
    软件开发过程中会出来的几个版本
    poj3070
    Python基础 3----文件和网络
    HDU 4720 Naive and Silly Muggles (外切圆心)
  • 原文地址:https://www.cnblogs.com/ltw222/p/14910138.html
Copyright © 2011-2022 走看看