mybatis 全局配置文件

野性酷女 2023-06-16 10:43 70阅读 0赞

全局配置文件:

20191126113223852.png
配置文件中各种标签的顺序旭遵守下面蓝色部分,可以没有相应标签,但是顺序必须是这样 (了解):

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODc3MTg0_size_16_color_FFFFFF_t_70

  • xml引入dtd

dtd约束文件作用:规定xml中标签语法规则,为了” alt “+” / “ 有提示.
watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODc3MTg0_size_16_color_FFFFFF_t_70 1

  1. <!DOCTYPE configuration
  2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>

1)联网情况下可直接使用
2)未联网情况下:需绑定
第一步:导入mybatis.jar包中的dtd文件(无法直接复制粘贴,找到mybatis的路径,解压这dtd文件)。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODc3MTg0_size_16_color_FFFFFF_t_70 2

第二部:配置
Key:http://mybatis.org/dtd/mybatis-3-config.dtd

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODc3MTg0_size_16_color_FFFFFF_t_70 3

举例:获取数据库last_name字段属性
20191126093829251.png

根据mapUnderscoreToCamelCase规范,则lastName即可。

20191126093745546.png

  • typeAliases别名处理器

作用:类型别名是为 Java 类型设置一个短的名字,可以方便我们引用某个类。

方法一:单个设置包下类的别名。

  1. <typeAliases>
  2. <!-- 1、typeAlias:为某个java类型起别名
  3. type:指定要起别名的类型全类名;默认别名就是类名小写;employee
  4. alias:指定新的别名
  5. -->
  6. <typeAlias type="com.atguigu.mybatis.bean.Employee" alias="emp"/>
  7. </typeAliases>

方法二:类很多的情况下,可以批量设置别名这个包下的每一个类创建一个默认的别名,就是简单类名小写。

  1. <typeAliases>
  2. <package name="com.atguigu.mybatis.bean"/>
  3. </typeAliases>

方法三:也可以使用@Alias注解为其指定一个别名
20191126095148412.png

  • 数据库操作

    • environments环境

MyBatis可以配置多种环境,比如开发、测试和生 产环境需要有不同的配置。 每种环境使用一个environment标签进行配置并指 定唯一标识符 ,可以通过environments标签中的default属性指定,一个环境的标识符来快速的切换环境。

  • environment-指定具体环境

id:指定当前环境的唯一标识 transactionManager、和dataSource都必须有

配置两个数据库:
dbconfig.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/mybatis
  3. jdbc.username=root
  4. jdbc.password=!wyl72229992
  5. orcl.driver=oracle.jdbc.OracleDriver
  6. orcl.url=jdbc:oracle:thin:@localhost:1521:orcl
  7. orcl.username=scott
  8. orcl.password=123456
  9. <environments default="dev_mysql">
  10. <environment id="dev_mysql">
  11. <transactionManager type="JDBC"></transactionManager>
  12. <dataSource type="POOLED">
  13. <property name="driver" value="${jdbc.driver}" />
  14. <property name="url" value="${jdbc.url}" />
  15. <property name="username" value="${jdbc.username}" />
  16. <property name="password" value="${jdbc.password}" />
  17. </dataSource>
  18. </environment>
  19. <environment id="dev_oracle">
  20. <transactionManager type="JDBC" />
  21. <dataSource type="POOLED">
  22. <property name="driver" value="${orcl.driver}" />
  23. <property name="url" value="${orcl.url}" />
  24. <property name="username" value="${orcl.username}" />
  25. <property name="password" value="${orcl.password}" />
  26. </dataSource>
  27. </environment>
  28. </environments>
  • databaseIdProvider环境

MyBatis 可以根据不同的数据库厂商执行不同的语句。

Type: DB_VENDOR

– 使用MyBatis提供的 VendorDatabaseIdProvider 解析数据库

厂商标识。也可以实现DatabaseIdProvider接口来自定义。

Property-name :数据库厂商标识

Property-value :为标识

  1. <databaseIdProvider type="DB_VENDOR">
  2. <!-- 为不同的数据库厂商起别名 -->
  3. <property name="MySQL" value="mysql"/>
  4. <property name="Oracle" value="oracle"/>
  5. <property name="SQL Server" value="sqlserver"/>
  6. </databaseIdProvider>

案例:一条sql语句,跨厂商运行=厂商别名+environment配置数据库+dbconfig.properties

  1. //为<environments default="dev_mysql">默认厂商
  2. <select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee">
  3. select * from tbl_employee where id = #{id}
  4. </select>
  5. //databaseId="mysql" 指定mysql厂商
  6. <select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
  7. databaseId="mysql">
  8. select * from tbl_employee where id = #{id}
  9. </select>
  10. //databaseId="oracle" 指定oracle厂商
  11. <select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
  12. databaseId="oracle">
  13. select EMPLOYEE_ID id,LAST_NAME lastName,EMAIL email
  14. from employees where EMPLOYEE_ID=#{id}
  15. </select>

mapper映射

  • 注册一个sql映射

    1. resource:引用类路径下的sql映射文件 例如:mybatis/mapper/EmployeeMapper.xml
    2. url:引用网路路径或者磁盘路径下的sql映射文件 例如:file:///var/mappers/AuthorMapper.xml
    3. <mappers>
    4. <mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
    5. </mappers>
  • ​​​​​​​class:引用(注册)接口

    1、有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;(此种可以直接用resource=” “)
    *如果将接口和实现类全部放在一个包里面,会显得很乱,则有以下策略:
    watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODc3MTg0_size_16_color_FFFFFF_t_70 5
    此时在程序运行时,src与conf都为源文件,其文件夹下的所有包统一在bin目录(类路径)下(无src目录和conf目录)。



2、没有sql映射文件,所有的sql都是利用注解写在接口上;

  1. public interface EmployeeMapperAnnotation {
  2. @Select("select * from tbl_employee where id=#{id}")
  3. public Employee getEmpById(Integer id);
  4. }
  5. <mappers>
  6. <mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
  7. </mappers>

推荐:
比较重要的,复杂的Dao接口我们来写sql映射文件
不重要,简单的Dao接口为了开发快速可以使用注解;

  • 批量注册

    1. <mappers>
    2. <package name="com.atguigu.mybatis.dao"/>
    3. </mappers>

发表评论

表情:
评论列表 (有 0 条评论,70人围观)

还没有评论,来说两句吧...

相关阅读