IDEA+Mybatis(二)全局配置文件

前言

如果IDEA没有XML自动提示,可在如下图所示地方添加两个dtd文件:

http://mybatis.org/dtd/mybatis-3-config.dtd

http://mybatis.org/dtd/mybatis-3-mapper.dtd在这里插入图片描述

一、properties

  1. mybatis可以使用properties标签来引入外部properties配置文件内容
  2. resource属性:引入类路径下的资源
  3. URL属性:引入网络路径或磁盘路径下的资源

示例:
新建文件 dbconfig.properties 在里面配置数据库连接信息

jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=user
jdbc.username=sa
jdbc.password=12345

修改 mybatis-config.xml 配置文件

  1. 在properties 标签下的resource 中写入dbconfig.properties 文件(注意路径问题)
  2. 修改数据库连接信息,将写死的 value 改成 用 ${} 符号取出配置文件中的值的格式

如下:

<?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>
    <properties resource="com\conf\dbconfig.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <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>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/conf/StudentDAO.xml"/>
    </mappers>
</configuration>

二、settings

settings标签包含了很多mybatis设置项

  1. setting :用来设置每一个 设置项
  2. name:设置项名
  3. value:设置项取值

具体每一个设置项请参考: 官方文档

 <settings>
        <setting name="" value=""/>
    </settings>

举例:一个常用的设置项 mapUnderscoreToCamelCase 数据库驼峰命名设置,即是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。

 <settings>
        <setting name="mapUnderscoreToCamelCase " value="true"/>
    </settings>

开启后即可映射因为驼峰命名导致数据库名与属性名不一致的数据项

三、typeAliases

typeAliases是mybatis下的别名处理器,可以为一个java类型起一个别名、

  1. typeAliases :可以为一个java类型起一个别名
  2. type:指定要起别名的类型全类名,默认别名为类名小写
  3. alias:指定一个新的别名
  4. 别名不区分大小写
    如:
 <typeAliases>
     <typeAlias type="com.company.Student" alias="student"/>
 </typeAliases>

则mapper文件里resultType属性即可写别名

<mapper namespace="com.company.StudentDAO">
    <select id="SelectStudent" resultType="student">
        select * from userbean where username = #{username}
    </select>
</mapper>

批量起别名

  1. package:为某个指定包下的所有类其别名
  2. name: 指定包名(为当前包下所有类其默认别名)
    注解:使用此方法后mybatis会在包名下搜索需要的java Bean,在后面使用java Bean时可省去前面的报名直接写类名名,首字母小写
<typeAliases>
     <package name="com.company"/>
 </typeAliases>

在类里面使用注解 @Alias 起别名
在批量起别名的情况下

@Alias("student")
public class Student{
}

很多java类型都起有默认别名

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
string
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
objectObject
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

四、typeHandlers

typeHandlers类型处理器,架起java类型和数据库类型的桥梁
官方文档

五、objectFactory

objectFactory 对象工厂
官方文档

六、plugins

plugins 插件

官方文档

七、environments

environments 环境配置,mybatis可以配置多种环境

  1. default :指定使用某种环境
  2. environment:配置一个具体的环境信息
    id:代表当前环境的唯一标识(可用于设定测试可开发环境,修改 environments 的default 属性可切换环境)
    transactionManager :事务管理器
    type:事务管理器类型:{JDBC|MANAGED}进行事务控制
    dataSource :数据源;
    type:数据源类型:{UNPOOLED(不使用连接池技术)|POOLED(使用连接池技术)|JNDI}(可自定义数据源,C3P0等)
 <environments default="development">
        <environment id="text">
            <transactionManager type=""></transactionManager>
            <dataSource type=""></dataSource>
        </environment>
        <environment id="development">
            <transactionManager type="JDBC"/>
            <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>
        </environment>
    </environments>

八、databaseIdProvider

databaseIdProvider 数据库厂商标识

  1. databaseIdProvider 支持多数据库厂商
  2. type=“DB_VENDOR”:获取数据库厂商标识,mybatis能根据数据库厂商标识来执行不同的sql语句
  3. property:为不同厂商起别名(name:厂商标识;value:别名 )

在mapper文件中告诉mybatis 某个sql属于哪个数据库厂商使用
databaseId="mysql"指定为mysql数据库使用

 <databaseIdProvider type="DB_VENDOR">
        <property name="MySQL" value="mysql"/>
        <property name="SQL Server" value="sqlserver"/>
    </databaseIdProvider>
<mapper namespace="com.company.StudentDAO">
    <select id="SelectStudent" resultType="student" databaseId="mysql">
        select * from userbean where username = #{username}
    </select>
    <select id="SelectStudent" resultType="student" databaseId="sqlserver">
        select * from user where username = #{username}
    </select>
</mapper>

这样在environments 的default中切换环境时就可自动切换数据库语句

九、mappers

mappers 映射器,将sql映射注册到全局映射中

  1. mappers :注册一个sql映射
  2. resource:引用类路径下的sql文件(注册配置文件)
  3. url:引用网络路径下或磁盘路径下的sql文件(注册配置文件)
  4. class:引用接口(注册接口)
    有sql映射文件,映射文件名必须和接口同名,并且放在同一目录下
    没有sql映射文件,所有sql都是利用注解写在接口上
  5. package
    三种方法注册mapper:resource、class、package (url不推荐使用,推荐使用resource)
/**
注入方法:
'将sql写在注解上,则注册mappers时使用 class 属性
*/
public interface StudnetAnnotation {
    @Select("  select * from user where username = #{username}")
    Student SelectStudent(String s) ;
}
<!--resource方法-->
 <mappers>
        <mapper resource="com/company/StudnetAnnotation"></mapper>
    </mappers>
<!--class方法,使用注解写sql时使用-->
 <mappers>
        <mapper class="com.company.StudnetAnnotation"></mapper>
    </mappers>
<!--package 方法-->
 <mappers>
        <mapper package="com.company.StudnetAnnotation"></mapper>
    </mappers>

推荐
比较重要的,复杂DAO接口使用映射文件
不重要的DAO接口可以使用注解(更快)

批量注册
package:进行批量注册
name:写包名

  <package name="com.company"/>

注意:
1、 各种接口、映射文件的路径问题,可以让DAO和映射文件在不同路径下起同样包名,如下
在这里插入图片描述

2、使用package和class方法映射时接口和他的mapper配置文件必须同名且在同一包下

待续。。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目描述 说明: spring security 全注解式的权限管理 动态配置权限,角色和资源,权限控制到按钮粒度 采用token进行权限校验,禁用session,未登录返回401,权限不足返回403 采用redis存储token及权限信息 内置功能: 用户管理:用户查询、添加用户、修改用户、给用户分配角色 菜单管理:菜单列表、添加菜单、修改菜单、删除菜单、权限配置、菜单图标设置、菜单排序 角色管理:角色查询、添加角色、修改角色、删除角色 代码生成:根据表名生成bean、controller、dao、Mapper.xml、列表页、搜索、分页、新增页、修改页 job集群:创建job、取消job、查询job、下拉搜索spring bean 数据源监控:druid 接口swagger文档 日志查询 邮件管理:发送邮件、搜索邮件 文件管理:上传文件文件列表、文件删除 公告管理:公告未读提醒、发布公告、查询公告、公告阅读人列表 excel下载:自定义sql导出excel、也可在页面展示sql结果数据 字典管理:一些常量字典的维护 个人信息修改 修改密码 头像修改 其他说明: 日志模块 sl4j日志分包:将sql日志、业务日志、异常日志进行了分离,更方便定位问题 日志表:使用aop拦截实现 权限控制:基于token方式,禁用session 对各种不同异常进行了全局统一处理 使用lombok简化java代码,让源码更简洁,可读性高 mybatis未进行二次封装,原滋原味,简单sql采用注解,复杂sql采用Mapper.xml配置 使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据表格等 表单数据采用bootstrapValidator校验,简单快捷方便 运行环境 jdk8+mysql+redis+IntelliJ IDEA+maven 项目技术(必填) Springboot+Mybatis+ SpringMvc+springsecrity+Redis+bootstrap+jquery 数据库文件 压缩包内 jar包文件 maven搭建

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值