zoukankan      html  css  js  c++  java
  • Mybatis- 配置

    主配置文件

    properties

    • 第一种
    <properties>
        <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
        <property name="jdbc.url" value="jdbc:mysql://localhost:3306/eesy"/>
        <property name="jdbc.username" value="root"/>
        <property name="jdbc.password" value="1234"/>
    
    
    • 第二种
      • 在 classpath 下定义 db.properties 文件
    <properties  resource="jdbcConfig.properties"/>
    
    <dataSource type="POOLED">
        <property name="driver" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </dataSource>
    
    

    settings

    主要用于改变MyBatis运行时行为,例如开启二级缓存,开启延迟加载等

    typeAliases

    • 单个别名定义
    <typeAliases>
        <typeAlias alias="user" type="com.itheima.domain.User"/>
    </typeAliases>
    
    • 批量别名定义
      通过自动扫描包,将类名
    <typeAliases>
        <package name="com.itheima.domain"/>
    </typeAliases>
    
    • 如果在程序中使用了注解,则别名为其注解的值
      @Alias(value="user")

    • 除自定义类名外,Mybatis还默认为许多常见的Java类型提供了相应的类型别名

    typeHandler

    • 类型处理器
    • 自定义类型处理器

    objectFactory

    • 通常情况下使用默认的ObjectFactory即可,默认由DefaultObjectFactory提哦那个服务
    • 如需自定义对象工厂,实现ObjectFactory接口或继承DefaultObjectFactory类

    plugins

    -配置用户所开发的插件

    environments

    • 通过该元素配置多种数据源,即配置多种数据库

    mappers

    • 指定Mybatis映射文件的位置
      • <mapper resource=" " />:相对于类路径
      • <mapper url=" " />:本地文件路径引入
      • <mapper class=" " />:接口类路径,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中
      • <package name=""/>:指定包下的所有 mapper 接口,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中

    映射文件

    mappers是根元素

    select

    • id:命名空间唯一标识符
    • parameterType:指定传入参数的类型,基本类型和String类型可以直接写类型名,类名要使用全限定类名
    • resultType:指定结果集的类型,和parameterType一样
    • resultMap
      • 可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装
    <!-- 建立 User 实体和数据库表的对应关系
    type 属性:指定实体类的全限定类名
    id 属性:给定一个唯一标识,是给查询 select 标签引用用的。
    -->
    <resultMap type="com.itheima.domain.User" id="userMap">
        <id column="id" property="userId"/>
        <result column="username" property="userName"/>
        <result column="sex" property="userSex"/>
        <result column="address" property="userAddress"/>
        <result column="birthday" property="userBirthday"/>
    </resultMap>
    id 标签:用于指定主键字段
    result 标签:用于指定非主键字段
    column 属性:用于指定数据库列名
    property 属性:用于指定实体类属性名称
    

    insert

    • selectKey

    update

    delete

    sql

    Sql 中可将重复的 sql 提取出来,使用时用 include 引用即可,最终达到 sql 重用的目的

    <!-- 抽取重复的语句代码片段 -->
    <sql id="defaultSql">
        select * from user
    </sql>
    
    <!-- 配置查询所有操作 -->
    <select id="findAll" resultType="user">
        <include refid="defaultSql"></include>
    </select>
    
  • 相关阅读:
    二叉树之小球下落
    ACM规划型。。
    经典函数看待问题。。
    用putty连接ubuntu
    minheight最小高度的实现(兼容IE6、IE7、FF)(解决IE6不兼容minheight)
    elementui里面的form表单i验证input内容已经输入不为空了,但效验还是报错不能为空
    js中10位数的时间戳必须*1000才能格式化转换
    chrome已安装Vue Devtools在控制台却无显示
    elementui使用day.js格式化后端接口里的日期时间戳
    elementui分页更改后,需要再次调用获取列表数据函数
  • 原文地址:https://www.cnblogs.com/mewcoder/p/10699227.html
Copyright © 2011-2022 走看看