ToB企服应用市场:ToB评测及商务社交产业平台

标题: MyBatis 的在使用上的留意事项及其辨析 [打印本页]

作者: 鼠扑    时间: 2024-6-13 14:57
标题: MyBatis 的在使用上的留意事项及其辨析
1. MyBatis 的在使用上的留意事项及其辨析

@
目录

2. 准备工作

数据表结构的计划,数据表名为:t_car

t_car 表中的数据信息:

在pom.xml 文件当中配置相关的依赖的 jar 包如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  13.     <modelVersion>4.0.0</modelVersion>
  14.     <groupId>com.rainbowsea</groupId>
  15.     <artifactId>mybatis-005-crud-blog</artifactId>
  16.     <version>1.0-SNAPSHOT</version>
  17.     <properties>
  18. <mappers>
  19.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  21.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  22. </mappers>  <maven.compiler.source>17</maven.compiler.source>
  23. <mappers>
  24.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  26.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  27. </mappers>  <maven.compiler.target>17</maven.compiler.target>
  28.     </properties>
  29.     <dependencies>
  30. <mappers>
  31.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  32.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  34. </mappers>  
  35. <mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers>  <dependency>
  40. <mappers>
  41.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  44. </mappers><mappers>
  45.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  46.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  48. </mappers><groupId>org.mybatis</groupId>
  49. <mappers>
  50.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  51.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  52.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  53. </mappers><mappers>
  54.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  57. </mappers><artifactId>mybatis</artifactId>
  58. <mappers>
  59.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  60.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  61.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  62. </mappers><mappers>
  63.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  66. </mappers><version>3.5.10</version>
  67. <mappers>
  68.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  69.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  70.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  71. </mappers>  </dependency>
  72. <mappers>
  73.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  74.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  75.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  76. </mappers>  
  77. <mappers>
  78.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  80.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  81. </mappers>  <dependency>
  82. <mappers>
  83.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  84.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  85.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  86. </mappers><mappers>
  87.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  88.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  89.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  90. </mappers><groupId>mysql</groupId>
  91. <mappers>
  92.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  93.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  94.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  95. </mappers><mappers>
  96.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  97.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  98.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  99. </mappers><artifactId>mysql-connector-java</artifactId>
  100. <mappers>
  101.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  102.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  103.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  104. </mappers><mappers>
  105.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  106.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  107.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  108. </mappers><version>8.0.30</version>
  109. <mappers>
  110.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  111.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  112.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  113. </mappers>  </dependency>
  114. <mappers>
  115.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  116.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  117.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  118. </mappers>  <dependency>
  119. <mappers>
  120.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  121.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  122.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  123. </mappers><mappers>
  124.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  125.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  126.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  127. </mappers><groupId>junit</groupId>
  128. <mappers>
  129.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  130.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  131.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  132. </mappers><mappers>
  133.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  134.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  135.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  136. </mappers><artifactId>junit</artifactId>
  137. <mappers>
  138.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  139.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  140.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  141. </mappers><mappers>
  142.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  143.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  144.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  145. </mappers><version>4.13.2</version>
  146. <mappers>
  147.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  148.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  149.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  150. </mappers><mappers>
  151.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  152.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  153.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  154. </mappers><scope>test</scope>
  155. <mappers>
  156.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  157.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  158.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  159. </mappers>  </dependency>
  160. <mappers>
  161.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  162.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  163.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  164. </mappers>  
  165. <mappers>
  166.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  167.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  168.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  169. </mappers>  <dependency>
  170. <mappers>
  171.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  172.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  173.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  174. </mappers><mappers>
  175.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  176.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  177.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  178. </mappers><groupId>ch.qos.logback</groupId>
  179. <mappers>
  180.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  181.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  182.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  183. </mappers><mappers>
  184.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  185.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  186.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  187. </mappers><artifactId>logback-classic</artifactId>
  188. <mappers>
  189.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  190.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  191.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  192. </mappers><mappers>
  193.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  194.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  195.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  196. </mappers><version>1.2.11</version>
  197. <mappers>
  198.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  199.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  200.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  201. </mappers>  </dependency>
  202.     </dependencies>
  203. </project>
复制代码
配置 logback 的配置文件,用于打印显示,我们的日记信息,方便我们查看我们的运行过程,效果。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false">
  3.    
  4.     <appender name="STDOUT" >
  5. <mappers>
  6.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  7.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  8.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  9. </mappers>  <encoder >
  10. <mappers>
  11.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  12.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  13.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  14. </mappers><mappers>
  15.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  16.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  17.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  18. </mappers>
  19. <mappers>
  20.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  21.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  22.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  23. </mappers><mappers>
  24.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  26.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  27. </mappers><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  28. <mappers>
  29.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  31.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  32. </mappers>  </encoder>
  33.     </appender>
  34.    
  35.     <logger name="com.apache.ibatis" level="TRACE"/>
  36.     <logger name="java.sql.Connection" level="DEBUG"/>
  37.     <logger name="java.sql.Statement" level="DEBUG"/>
  38.     <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  39.    
  40.     <root level="DEBUG">
  41. <mappers>
  42.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  44.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  45. </mappers>  <appender-ref ref="STDOUT"/>
  46. <mappers>
  47.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  48.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  49.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  50. </mappers>  <appender-ref ref="FILE"/>
  51.     </root>
  52. </configuration>
复制代码
配置 MyBatis 的核心配置文件,
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  13. <configuration>
  14.    
  15.     <typeAliases>
  16. <mappers>
  17.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  18.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  20. </mappers>  
  21. <mappers>
  22.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  23.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  25. </mappers>  <package name="com.rainbowsea.mybatis.pojo"/>
  26.     </typeAliases>
  27.     <environments default="mybatis">
  28. <mappers>
  29.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  31.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  32. </mappers>  <environment id="mybatis">
  33. <mappers>
  34.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  35.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  36.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  37. </mappers><mappers>
  38.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  39.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  40.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  41. </mappers>
  42. <mappers>
  43.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  44.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  45.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  46. </mappers><mappers>
  47.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  48.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  49.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  50. </mappers><transactionManager type="JDBC"/>
  51. <mappers>
  52.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  53.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  54.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  55. </mappers><mappers>
  56.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  57.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  58.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  59. </mappers><dataSource type="POOLED">
  60. <mappers>
  61.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  62.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  63.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  64. </mappers><mappers>
  65.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  66.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  67.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  68. </mappers>    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  69. <mappers>
  70.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  71.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  72.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  73. </mappers><mappers>
  74.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  75.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  76.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  77. </mappers>    <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
  78. <mappers>
  79.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  80.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  81.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  82. </mappers><mappers>
  83.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  84.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  85.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  86. </mappers>    <property name="username" value="root"/>
  87. <mappers>
  88.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  89.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  90.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  91. </mappers><mappers>
  92.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  93.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  94.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  95. </mappers>    <property name="password" value="MySQL123"/>
  96. <mappers>
  97.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  98.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  99.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  100. </mappers><mappers>
  101.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  102.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  103.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  104. </mappers></dataSource>
  105. <mappers>
  106.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  107.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  108.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  109. </mappers>  </environment>
  110.     </environments>
  111.     <mappers>
  112. <mappers>
  113.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  114.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  115.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  116. </mappers>  
  117. <mappers>
  118.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  119.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  120.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  121. </mappers>  <mapper resource="CarMapper.xml"></mapper>
  122.     </mappers>
  123. </configuration>
复制代码
对照 t_car 创建的ORM 映射的 Car 类
留意:在MyBatis 当中对应的ORM ,一般在框架里对应的 Bean实体类,一定要实现该 set 和 get 方法以及无参数构造方法,无法框架无法使用反射机制,进行操纵
发起用包装类,如许可以防止 Null的问题,因为(简单类型 int num = null ,是不可以赋值为 null)的编译无法通过
  1. package com.rainbowsea.mybatis.pojo;
  2. public class Car {
  3.     // 数据库表当中的字段应该和pojo类的属性一一对应
  4.     // 建议使用包装类,这样可以防止null的问题
  5.     private Long id;
  6.     private String carNum;
  7.     private String brand;
  8.     private Double guidePrice;
  9.     private String produceTime;
  10.     private String carType;
  11.     public Car() {
  12.     }
  13.     public Car(Long id, String carNum, String brand, Double guidePrice, String produceTime, String carType) {
  14. <mappers>
  15.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  16.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  17.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  18. </mappers>  this.id = id;
  19. <mappers>
  20.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  21.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  22.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  23. </mappers>  this.carNum = carNum;
  24. <mappers>
  25.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  26.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  27.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  28. </mappers>  this.brand = brand;
  29. <mappers>
  30.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  31.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  32.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  33. </mappers>  this.guidePrice = guidePrice;
  34. <mappers>
  35.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  36.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  38. </mappers>  this.produceTime = produceTime;
  39. <mappers>
  40.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  41.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  43. </mappers>  this.carType = carType;
  44.     }
  45.     @Override
  46.     public String toString() {
  47. <mappers>
  48.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  49.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  50.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  51. </mappers>  return "Car{" +
  52. <mappers>
  53.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  54.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  56. </mappers><mappers>
  57.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  58.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  59.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  60. </mappers>    "id=" + id +
  61. <mappers>
  62.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  63.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  65. </mappers><mappers>
  66.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  67.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  68.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  69. </mappers>    ", carNum='" + carNum + '\'' +
  70. <mappers>
  71.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  72.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  74. </mappers><mappers>
  75.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  76.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  77.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  78. </mappers>    ", brand='" + brand + '\'' +
  79. <mappers>
  80.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  81.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  82.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  83. </mappers><mappers>
  84.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  85.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  86.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  87. </mappers>    ", guidePrice=" + guidePrice +
  88. <mappers>
  89.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  90.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  91.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  92. </mappers><mappers>
  93.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  94.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  95.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  96. </mappers>    ", produceTime='" + produceTime + '\'' +
  97. <mappers>
  98.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  99.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  100.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  101. </mappers><mappers>
  102.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  103.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  104.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  105. </mappers>    ", catType='" + carType + '\'' +
  106. <mappers>
  107.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  108.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  109.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  110. </mappers><mappers>
  111.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  112.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  113.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  114. </mappers>    '}';
  115.     }
  116.     public Long getId() {
  117. <mappers>
  118.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  119.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  120.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  121. </mappers>  return id;
  122.     }
  123.     public void setId(Long id) {
  124. <mappers>
  125.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  126.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  127.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  128. </mappers>  this.id = id;
  129.     }
  130.     public String getCarNum() {
  131. <mappers>
  132.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  133.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  134.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  135. </mappers>  return carNum;
  136.     }
  137.     public void setCarNum(String carNum) {
  138. <mappers>
  139.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  140.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  141.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  142. </mappers>  this.carNum = carNum;
  143.     }
  144.     public String getBrand() {
  145. <mappers>
  146.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  147.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  148.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  149. </mappers>  return brand;
  150.     }
  151.     public void setBrand(String brand) {
  152. <mappers>
  153.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  154.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  155.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  156. </mappers>  this.brand = brand;
  157.     }
  158.     public Double getGuidePrice() {
  159. <mappers>
  160.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  161.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  162.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  163. </mappers>  return guidePrice;
  164.     }
  165.     public void setGuidePrice(Double guidePrice) {
  166. <mappers>
  167.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  168.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  169.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  170. </mappers>  this.guidePrice = guidePrice;
  171.     }
  172.     public String getProduceTime() {
  173. <mappers>
  174.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  175.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  176.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  177. </mappers>  return produceTime;
  178.     }
  179.     public void setProduceTime(String produceTime) {
  180. <mappers>
  181.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  182.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  183.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  184. </mappers>  this.produceTime = produceTime;
  185.     }
  186.     public String getcarType() {
  187. <mappers>
  188.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  189.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  190.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  191. </mappers>  return carType;
  192.     }
  193.     public void setcarType(String catType) {
  194. <mappers>
  195.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  196.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  197.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  198. </mappers>  this.carType = catType;
  199.     }
  200. }
复制代码
对应操纵实现CRUD(增删改查)的接口(这里是:CarMapper接口),在MyBtis 当中 ,关于 CRUD(增删改查)操纵的接口/实现类,都是 mapper 结尾的作为长期层,而在 MVC的三层架构中,则是以 dao 为后缀作为CRUD(增删改查)操纵的接口/实现类。
  1. package com.rainbowsea.mybatis.mapper;
  2. import com.rainbowsea.mybatis.pojo.Car;
  3. import java.util.List;
  4. public interface CarMapper {
  5.     /**
  6.      * 新增 Car
  7.      * @param car
  8.      * @return
  9.      */
  10.     int insert(Car car);
  11.     /**
  12.      * 根据id 删除 Car
  13.      * @param id
  14.      * @return
  15.      */
  16.     int deleteById(Long id);
  17.     /**
  18.      * 修改汽车信息
  19.      * @param car
  20.      * @return
  21.      */
  22.     int update(Car car);
  23.     /**
  24.      * 根据id查询汽车信息
  25.      * @param id
  26.      * @return
  27.      */
  28.     Car selectById(Long id);
  29.     /**
  30.      * 获取所有的汽车信息
  31.      * @return
  32.      */
  33.     List<Car> selectAll();
  34. }
复制代码
获取 Sqlsession 对象的工具类的编写。
  1. package com.rainbowsea.mybatis.utils;
  2. import org.apache.ibatis.io.Resources;
  3. import org.apache.ibatis.session.SqlSession;
  4. import org.apache.ibatis.session.SqlSessionFactory;
  5. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  6. import java.io.IOException;
  7. public class SqlSessionUtil {
  8.     // 工具类的构造方法一般都是私有话化的
  9.     // 工具类中所有的方法都是静态的,直接类名即可调用,不需要 new 对象
  10.     // 为了防止new对象,构造方法私有化。
  11.     private SqlSessionUtil() {
  12.     }
  13.     private static SqlSessionFactory sessionFactory = null;
  14.     // 静态代码块,类加载时执行
  15.     // SqlSessionUtil 工具类在进行第一次加载的时候,解析mybatis-config.xml 文件,创建SqlSessionFactory对象。
  16.     static {
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  // 获取到  SqlSessionFactoryBuilder 对象
  22. <mappers>
  23.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  26. </mappers>  SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
  27. <mappers>
  28.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  31. </mappers>  // 获取到SqlSessionFactory 对象
  32. <mappers>
  33.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  35.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  36. </mappers>  // SQlsessionFactory对象,一个SqlSessionFactory对应一个 environment, 一个environment通常是一个数据库
  37. <mappers>
  38.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  39.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  40.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  41. </mappers>  try {
  42. <mappers>
  43.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  44.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  45.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  46. </mappers><mappers>
  47.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  48.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  49.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  50. </mappers>sessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"),
  51. <mappers>
  52.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  53.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  54.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  55. </mappers><mappers>
  56.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  57.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  58.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  59. </mappers><mappers>
  60.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  61.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  62.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  63. </mappers>  "mybatis");
  64. <mappers>
  65.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  66.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  67.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  68. </mappers>  } catch (IOException e) {
  69. <mappers>
  70.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  71.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  72.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  73. </mappers><mappers>
  74.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  75.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  76.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  77. </mappers>throw new RuntimeException(e);
  78. <mappers>
  79.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  80.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  81.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  82. </mappers>  }
  83.     }
  84.     /**
  85.      * 获取会话对象
  86.      * @return SqlSession
  87.      */
  88.     public static SqlSession openSession() {
  89. <mappers>
  90.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  91.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  92.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  93. </mappers>  // 获取到 SqlSession 对象
  94. <mappers>
  95.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  96.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  97.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  98. </mappers>  SqlSession sqlSession = sessionFactory.openSession();
  99. <mappers>
  100.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  101.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  102.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  103. </mappers>  return sqlSession;
  104.     }
  105. }
复制代码
3. #{ } 与 ${ } 的区别和使用


查验一下。
这里我们根据汽车的 car_type 查询,为新能源汽车的。多条记录
首先这里我们先使用 #{} ,传的是带有 '' 单引号的值 ——> '新能源'

  1. package com.rainbowsea.mybatis.mapper;
  2. import com.rainbowsea.mybatis.pojo.Car;
  3. import java.util.List;
  4. /**
  5. * 封装汽车相关信息的pojo类,普通的Java类
  6. */
  7. public interface CarMapper {
  8.     /**
  9.      * 根据汽车类型获取汽车信息
  10.      * @param carType
  11.      * @return
  12.      */
  13.     List<Car> selectByCarType(String carType);
  14. }
复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.CarMapper">
  14.    
  15.    
  16.     <select id="selectByCarType" resultType="com.rainbowsea.mybatis.pojo.Car">
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  select id,
  22. <mappers>
  23.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  26. </mappers><mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>   car_num<mappers>
  31.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  32.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  34. </mappers>as carNum,
  35. <mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers><mappers>
  40.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  41.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  43. </mappers>   brand,
  44. <mappers>
  45.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  46.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  48. </mappers><mappers>
  49.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  50.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  51.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  52. </mappers>   guide_price  as guidePrice,
  53. <mappers>
  54.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  57. </mappers><mappers>
  58.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  59.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  60.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  61. </mappers>   produce_time as produceTime,
  62. <mappers>
  63.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  66. </mappers><mappers>
  67.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  68.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  69.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  70. </mappers>   car_type     as carType
  71. <mappers>
  72.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  74.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  75. </mappers>  from t_car
  76. <mappers>
  77.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  78.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  80. </mappers>  where car_type = #{carType}
  81.     </select>
  82. </mapper>
复制代码
运行Java步伐:


查询乐成。
下面我们再实行用  ${} ,直接就是新能源的值,没有单引号,也没有双引号,就是直接就是——》新能源的值。运行结果如下:

比力上述#{}和 ?{} 的运行结果:
{}


${}

通过实行可以清楚的看到,sql 语句中是带有 ? 的,这个 ? 就是各人在JDBC中所学的占位符,专门用来接收值的。
把“新能源”以 String 类型的值,传递给 ? ,加上 '' 单引号,作为字符串传入进行,实行SQL语句
这就是 #{},它会先进行sql语句的预编译,然后再给占位符传值。
而 ${} 是直接将我们的 新能源 作为值,传入给SQL语句的,留意 ${} 的方式是不会加单引号/双引号的,而是作为值,直接拼接到 SQL语句当中去了,但是,在我们这个查询的SQL当中,新能源就是必须要为字符串才行的,不然是无法实行SQL语句,是无法识别出来的。

3.1 什么情况下必须使用 $

当需要进行 sql 语句关键字拼接的时候,简单的说就是当我们要使用 SQL语句当中的关键字的时候,以及要传的值,不要单引号/双引号的值的时候,就必须使用${ }
需求:通过向sql语句中注入asc或desc关键字,来完成数据的升序或降序排列。
根据数据表中的 produce_time日期时间进行排序。
因为这里我们使用到了 ASC / DESC 这两者都是 SQL语句当中的关键字,以是我们需要使用 ${} 的方式。
  1. package com.rainbowsea.mybatis.mapper;
  2. import com.rainbowsea.mybatis.pojo.Car;
  3. import java.util.List;
  4. /**
  5. * 封装汽车相关信息的pojo类,普通的Java类
  6. */
  7. public interface CarMapper {
  8.     /**
  9.      * 查询所有的汽车信息,然后通过 asc 升序,desc 降序
  10.      * @param ascOrDesc
  11.      * @return
  12.      */
  13.     List<Car> selectAllByAscOrDesc(String ascOrDesc);
  14. }
复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.CarMapper">
  14.    
  15.    
  16.     <select id="selectAllByAscOrDesc" resultType="com.rainbowsea.mybatis.pojo.Car">
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  select id,
  22. <mappers>
  23.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  26. </mappers><mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>   car_num<mappers>
  31.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  32.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  34. </mappers>as carNum,
  35. <mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers><mappers>
  40.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  41.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  43. </mappers>   brand,
  44. <mappers>
  45.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  46.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  48. </mappers><mappers>
  49.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  50.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  51.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  52. </mappers>   guide_price  as guidePrice,
  53. <mappers>
  54.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  57. </mappers><mappers>
  58.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  59.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  60.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  61. </mappers>   produce_time as produceTime,
  62. <mappers>
  63.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  66. </mappers><mappers>
  67.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  68.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  69.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  70. </mappers>   car_type     as carType
  71. <mappers>
  72.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  74.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  75. </mappers>  from t_car
  76. <mappers>
  77.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  78.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  80. </mappers>  order by produce_time ${ascOrDesc}
  81.     </select>
  82. </mapper>
复制代码
Java步伐运行测试:
  1. public class TestCarMapper {
  2.     @Test
  3.     public void testSelectAllByAscOrDesc() {
  4. <mappers>
  5.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  7.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  8. </mappers>  SqlSession sqlSession = SqlSessionUtil.openSession();
  9. <mappers>
  10.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  12.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  13. </mappers>  CarMapper mapper = sqlSession.getMapper(CarMapper.class);
  14. <mappers>
  15.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  16.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  17.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  18. </mappers>  List<Car> cars = mapper.selectAllByAscOrDesc("asc");
  19. <mappers>
  20.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  21.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  22.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  23. </mappers>  cars.forEach(car -> {
  24. <mappers>
  25.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  26.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  27.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  28. </mappers><mappers>
  29.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  31.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  32. </mappers>System.out.println(car);
  33. <mappers>
  34.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  35.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  36.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  37. </mappers>  });
  38. <mappers>
  39.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  40.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  41.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  42. </mappers>  sqlSession.close();
  43.     }
  44. }
复制代码
如果换成 #{} ,将SQL 语句的关键字 asc 作为字符串的形式拼接到 SQL语句当中是会编译失败的了。

3.1.1 拼接表名

业务背景:实际开发中,有的表数据量非常庞大,大概会接纳分表方式进行存储,比如每天天生一张表,表的名字与日期挂钩,例如:2022年8月1日天生的表:t_user20220108。2000年1月1日天生的表:t_user20000101。此时前端在进行查询的时候会提交一个具体的日期,比如前端提交的日期为:2000年1月1日,那么后端就会根据这个日期动态拼接表名为:t_user20000101。有了这个表名之后,将表名拼接到sql语句当中,返回查询结果。那么各人思考一下,拼接表名到sql语句当中应该使用#{} 还是 ${} 呢?
使用#{}会是如许:select * from 't_car'
使用${}会是如许:select * from t_car
向SQL语句当中拼接表名,就需要使用${}
实际业务当中,大概存在分表存储的数据的情况,因为一张表存的话,数据量太大了,查询效率比力低。
可以将这些数据有规律的分表存储,如许在查询的时候效率就比力高,因为扫描的数据量变小了
日记表,专门存储日记信息,如果t_long 只有一张表,这张表中每一天都会产生许多的log,逐步的,这个表中数据会许多,
怎么办理呢
可以每天天生一个新表,每张表以当天日期作为名称,例如:
t_log_202209801
t_log_20220902
你想知道某一天的日记信息怎么办呢?
假设本日20220901,那么直接查:t_log-20220901的表即可。
下面是我们的t_log_20220902 的数据表信息


对应数据表的 POJO 类计划:
  1. package com.rainbowsea.mybatis.pojo;
  2. public class Log {
  3.     private Integer id;
  4.     private String log;
  5.     private String time;
  6.     public Log() {
  7.     }
  8.     public Log(Integer id, String log, String time) {
  9. <mappers>
  10.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  12.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  13. </mappers>  this.id = id;
  14. <mappers>
  15.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  16.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  17.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  18. </mappers>  this.log = log;
  19. <mappers>
  20.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  21.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  22.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  23. </mappers>  this.time = time;
  24.     }
  25.     @Override
  26.     public String toString() {
  27. <mappers>
  28.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  31. </mappers>  return "Log{" +
  32. <mappers>
  33.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  35.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  36. </mappers><mappers>
  37.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  39.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  40. </mappers>    "id=" + id +
  41. <mappers>
  42.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  44.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  45. </mappers><mappers>
  46.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  48.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  49. </mappers>    ", log='" + log + '\'' +
  50. <mappers>
  51.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  52.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  53.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  54. </mappers><mappers>
  55.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  57.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  58. </mappers>    ", time='" + time + '\'' +
  59. <mappers>
  60.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  61.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  62.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  63. </mappers><mappers>
  64.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  66.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  67. </mappers>    '}';
  68.     }
  69.     public Integer getId() {
  70. <mappers>
  71.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  72.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  74. </mappers>  return id;
  75.     }
  76.     public void setId(Integer id) {
  77. <mappers>
  78.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  80.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  81. </mappers>  this.id = id;
  82.     }
  83.     public String getLog() {
  84. <mappers>
  85.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  86.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  87.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  88. </mappers>  return log;
  89.     }
  90.     public void setLog(String log) {
  91. <mappers>
  92.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  93.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  94.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  95. </mappers>  this.log = log;
  96.     }
  97.     public String getTime() {
  98. <mappers>
  99.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  100.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  101.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  102. </mappers>  return time;
  103.     }
  104.     public void setTime(String time) {
  105. <mappers>
  106.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  107.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  108.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  109. </mappers>  this.time = time;
  110.     }
  111. }
复制代码
对应的LogMapper 的接口信息编写。
首先我们使用 ${} 的方式测试运行。

  1. package com.rainbowsea.mybatis.mapper;
  2. import com.rainbowsea.mybatis.pojo.Log;
  3. import java.util.List;
  4. public interface LogMapper {
  5.     /**
  6.      * 根据日期查询不同的表,获取表中所有的日志
  7.      *
  8.      * @param date
  9.      * @return
  10.      */
  11.     List<Log> selectAllByTable(String date);
  12. }
复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.LogMapper">
  14.    
  15.    
  16.     <select id="selectAllByTable" resultType="com.rainbowsea.mybatis.pojo.Log">
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  select * from t_log_${date};
  22.     </select>
  23. </mapper>
复制代码
  1. package com.rainbowsea.test;
  2. import com.rainbowsea.mybatis.mapper.LogMapper;
  3. import com.rainbowsea.mybatis.pojo.Log;
  4. import com.rainbowsea.mybatis.utils.SqlSessionUtil;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.junit.Test;
  7. import java.util.List;
  8. public class LogMapperTest {
  9.     @Test
  10.     public void testSelectAllByTable() {
  11. <mappers>
  12.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  13.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  14.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  15. </mappers>  SqlSession sqlSession = SqlSessionUtil.openSession();
  16. <mappers>
  17.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  18.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  20. </mappers>  LogMapper mapper = sqlSession.getMapper(LogMapper.class);
  21. <mappers>
  22.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  23.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  25. </mappers>  List<Log> logs = mapper.selectAllByTable("20220902");
  26. <mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>  logs.forEach(log -> {
  31. <mappers>
  32.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  35. </mappers><mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers>System.out.println(log);
  40. <mappers>
  41.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  44. </mappers>  });
  45.     }
  46. }
复制代码
使用 ${} 拼接上的结果为:select * from t_log_20220902; 直接就是 20220902 的值,没有加单引号/双引号。
使用 #{ } 的方式是会带上 ‘’ 单引号的。

使用 #{} 拼接上的结果为:select * from t_log_‘20220902’; 加上的单引号后拼接上去,t_log_20220902是一个数据表名的,加了单引号后,MySQL 就找不到该数据表了,编译无法通过了。
3.1.2 批量删除

业务背景:一次删除多条记录。

批量删除:一次删除多条记录
批量删除的SQL语句有两种写法:
  1. 第一种:or: delete form t_car where id =1 or id = 2 or id = 3
  2. 第二种:delete from t_car where id in(1,2,3)
复制代码
假设如今使用in的方式处置惩罚,前端传过来的字符串:1, 2, 3
如果使用mybatis处置惩罚,应该使用#{} 还是 ${}
使用#{} :delete from t_user where id in('1,2,3')  会加上单引号, 实行错误:1292 - Truncated incorrect DOUBLE value: '1,2,3'
使用${} :delete from t_user where id in(1, 2, 3),实行乐成
以是我们要接纳 ${} ,不加单引号的形式。

  1. package com.rainbowsea.mybatis.mapper;
  2. import com.rainbowsea.mybatis.pojo.Car;
  3. import java.util.List;
  4. /**
  5. * 封装汽车相关信息的pojo类,普通的Java类
  6. */
  7. public interface CarMapper {
  8.     /**
  9.      * 批量删除,根据id
  10.      * @param ids
  11.      * @return
  12.      */
  13.     int deleteBath(String ids);
  14. }
复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.CarMapper">
  14.    
  15.     <delete id="deleteBath">
  16. <mappers>
  17.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  18.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  20. </mappers>  delete from t_car where id in(${ids})
  21.     </delete>
  22. </mapper>
复制代码
Java步伐测试,
留意因为我们这里是对数据表进行的修改操纵的,以是需要提交一下数据给数据库。
这里我们删除 id为(121,122,123) 三条记录。

  1. package com.rainbowsea.test;
  2. import com.rainbowsea.mybatis.mapper.CarMapper;
  3. import com.rainbowsea.mybatis.pojo.Car;
  4. import com.rainbowsea.mybatis.utils.SqlSessionUtil;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.junit.Test;
  7. import java.util.List;
  8. public class TestCarMapper {
  9.     @Test
  10.     public void testDeleteBath() {
  11. <mappers>
  12.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  13.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  14.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  15. </mappers>  SqlSession sqlSession = SqlSessionUtil.openSession();
  16. <mappers>
  17.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  18.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  20. </mappers>  CarMapper mapper = sqlSession.getMapper(CarMapper.class);
  21. <mappers>
  22.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  23.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  25. </mappers>  int count = mapper.deleteBath("121,122,123");
  26. <mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>  sqlSession.commit();
  31. <mappers>
  32.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  35. </mappers>  sqlSession.close();
  36.     }
  37. }
复制代码
如果使用 #{} 是将 使用#{} :delete from t_user where id in('121,122,123')  会加上单引号, 实行错误:1292 - Truncated incorrect DOUBLE value: '121,122,123'

3.1.3 模糊查询

需求:查询小米系列的汽车。【只要品牌brand中含有小米两个字的都查询出来。】
关于模糊查询有四种方案:
  1. 方案一:'%${brand}%'
  2. 方案二: concat('%','${brand}','%')
  3. 方案三: count函数,这个是mysql数据库当中的一个函数,专门进行字符串拼接的
  4. <mappers>
  5.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  7.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  8. </mappers>  concat('%',#{brand},'%')
  9. 方案四: "%"#{brand}"%"
复制代码
四种方式:总的来说,都是为了拼接成字符串,把不是字符串的想办法拼接成字符串
3.1.3.1 使用 ${ }的方式

方案一:'%${brand}%'

  1. package com.rainbowsea.mybatis.mapper;
  2. import com.rainbowsea.mybatis.pojo.Car;
  3. import java.util.List;
  4. /**
  5. * 封装汽车相关信息的pojo类,普通的Java类
  6. */
  7. public interface CarMapper {
  8.     /**
  9.      * 根据汽车品牌进行模糊查询
  10.      * @param brand
  11.      * @return
  12.      */
  13.     List<Car> selectByBrandLike(String brand);
  14. }
复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.CarMapper">
  14.    
  15.    
  16.     <select id="selectByBrandLike" resultType="com.rainbowsea.mybatis.pojo.Car">
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  select
  22. <mappers>
  23.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  26. </mappers><mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>id,
  31. <mappers>
  32.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  35. </mappers><mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers>car_num as carNum,
  40. <mappers>
  41.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  44. </mappers><mappers>
  45.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  46.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  48. </mappers>brand,
  49. <mappers>
  50.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  51.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  52.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  53. </mappers><mappers>
  54.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  57. </mappers>guide_price as guidePrice,
  58. <mappers>
  59.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  60.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  61.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  62. </mappers><mappers>
  63.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  66. </mappers>produce_time as produceTime,
  67. <mappers>
  68.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  69.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  70.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  71. </mappers><mappers>
  72.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  74.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  75. </mappers>car_type as carType
  76. <mappers>
  77.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  78.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  80. </mappers>  from t_car
  81. <mappers>
  82.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  83.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  84.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  85. </mappers>  where brand like '%${brand}%'
  86.     </select>
  87. </mapper>
复制代码
Java步伐运行结果:

方案二: concat('%','${brand}','%')
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.CarMapper">
  14.    
  15.    
  16.     <select id="selectByBrandLike" resultType="com.rainbowsea.mybatis.pojo.Car">
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  select
  22. <mappers>
  23.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  26. </mappers><mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>id,
  31. <mappers>
  32.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  35. </mappers><mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers>car_num as carNum,
  40. <mappers>
  41.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  44. </mappers><mappers>
  45.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  46.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  48. </mappers>brand,
  49. <mappers>
  50.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  51.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  52.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  53. </mappers><mappers>
  54.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  57. </mappers>guide_price as guidePrice,
  58. <mappers>
  59.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  60.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  61.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  62. </mappers><mappers>
  63.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  66. </mappers>produce_time as produceTime,
  67. <mappers>
  68.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  69.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  70.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  71. </mappers><mappers>
  72.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  74.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  75. </mappers>car_type as carType
  76. <mappers>
  77.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  78.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  80. </mappers>  from t_car
  81. <mappers>
  82.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  83.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  84.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  85. </mappers>  where brand like concat('%','${brand}','%')
  86.     </select>
  87. </mapper>
复制代码

3.1.3.2 使用 #{ } 的方式

方案三: count函数,这个是mysql数据库当中的一个函数,专门进行字符串拼接的 concat('%',#{brand},'%')
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.CarMapper">
  14.    
  15.    
  16.     <select id="selectByBrandLike" resultType="com.rainbowsea.mybatis.pojo.Car">
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  select
  22. <mappers>
  23.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  26. </mappers><mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>id,
  31. <mappers>
  32.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  35. </mappers><mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers>car_num as carNum,
  40. <mappers>
  41.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  44. </mappers><mappers>
  45.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  46.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  48. </mappers>brand,
  49. <mappers>
  50.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  51.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  52.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  53. </mappers><mappers>
  54.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  57. </mappers>guide_price as guidePrice,
  58. <mappers>
  59.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  60.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  61.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  62. </mappers><mappers>
  63.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  66. </mappers>produce_time as produceTime,
  67. <mappers>
  68.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  69.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  70.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  71. </mappers><mappers>
  72.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  74.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  75. </mappers>car_type as carType
  76. <mappers>
  77.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  78.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  80. </mappers>  from t_car
  81. <mappers>
  82.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  83.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  84.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  85. </mappers>  where brand like concat('%',#{brand},'%')
  86.     </select>
  87. </mapper>
复制代码

方案四:  "%"#{brand}"%", 这种方式比力常用,也避免了SQL注入的问题。
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  13. <mapper namespace="com.rainbowsea.mybatis.mapper.CarMapper">
  14.    
  15.    
  16.     <select id="selectByBrandLike" resultType="com.rainbowsea.mybatis.pojo.Car">
  17. <mappers>
  18.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  20.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  21. </mappers>  select
  22. <mappers>
  23.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  26. </mappers><mappers>
  27.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  28.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  29.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  30. </mappers>id,
  31. <mappers>
  32.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  33.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  34.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  35. </mappers><mappers>
  36.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  37.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  38.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  39. </mappers>car_num as carNum,
  40. <mappers>
  41.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  42.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  44. </mappers><mappers>
  45.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  46.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  47.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  48. </mappers>brand,
  49. <mappers>
  50.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  51.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  52.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  53. </mappers><mappers>
  54.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  55.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  56.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  57. </mappers>guide_price as guidePrice,
  58. <mappers>
  59.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  60.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  61.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  62. </mappers><mappers>
  63.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  64.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  65.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  66. </mappers>produce_time as produceTime,
  67. <mappers>
  68.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  69.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  70.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  71. </mappers><mappers>
  72.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  73.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  74.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  75. </mappers>car_type as carType
  76. <mappers>
  77.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  78.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  79.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  80. </mappers>  from t_car
  81. <mappers>
  82.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  83.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  84.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  85. </mappers>  where brand like "%"#{brand}"%"
  86.     </select>
  87. </mapper>
复制代码
测试运行:

4. typeAliases 别名定义的使用

我们来观察一下CarMapper.xml中的配置信息:

resultType 属性用来指定查询结果集的封装类型,这个名字太长,可以起别名吗?可以。
mybatis-config.xml  文件中使用 typeAliases 标签来起别名,包罗两种方式:
4.1 typeAliases 的第一种方式:typeAlias

  1.    
  2.     <typeAliases>
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  <typeAlias type="com.rainbowsea.mybatis.pojo.Car" alias="Car"></typeAlias>
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  <typeAlias type="com.rainbowsea.mybatis.pojo.Log" alias="Log"></typeAlias>
  13.     </typeAliases>
复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  13. <configuration>
  14.    
  15.     <typeAliases>
  16. <mappers>
  17.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  18.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  19.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  20. </mappers>  
  21. <mappers>
  22.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  23.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  24.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  25. </mappers>  <package name="com.rainbowsea.mybatis.pojo"/>
  26.     </typeAliases>
  27.     <environments default="mybatis">
  28. <mappers>
  29.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  31.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  32. </mappers>  <environment id="mybatis">
  33. <mappers>
  34.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  35.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  36.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  37. </mappers><mappers>
  38.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  39.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  40.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  41. </mappers>
  42. <mappers>
  43.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  44.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  45.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  46. </mappers><mappers>
  47.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  48.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  49.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  50. </mappers><transactionManager type="JDBC"/>
  51. <mappers>
  52.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  53.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  54.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  55. </mappers><mappers>
  56.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  57.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  58.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  59. </mappers><dataSource type="POOLED">
  60. <mappers>
  61.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  62.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  63.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  64. </mappers><mappers>
  65.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  66.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  67.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  68. </mappers>    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  69. <mappers>
  70.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  71.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  72.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  73. </mappers><mappers>
  74.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  75.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  76.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  77. </mappers>    <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
  78. <mappers>
  79.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  80.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  81.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  82. </mappers><mappers>
  83.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  84.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  85.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  86. </mappers>    <property name="username" value="root"/>
  87. <mappers>
  88.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  89.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  90.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  91. </mappers><mappers>
  92.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  93.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  94.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  95. </mappers>    <property name="password" value="MySQL123"/>
  96. <mappers>
  97.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  98.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  99.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  100. </mappers><mappers>
  101.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  102.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  103.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  104. </mappers></dataSource>
  105. <mappers>
  106.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  107.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  108.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  109. </mappers>  </environment>
  110.     </environments>
  111.     <mappers>
  112. <mappers>
  113.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  114.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  115.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  116. </mappers>  
  117. <mappers>
  118.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  119.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  120.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  121. </mappers>  <mapper resource="CarMapper.xml"></mapper>
  122.     </mappers>
  123. </configuration><mappers>
  124.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  125.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  126.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  127. </mappers>  
复制代码
留意:接口,一定要为全限定类名(带有包名),不可以用别名机制
测试:


特殊的:  省略 alias 属性之后,别名就是类的简名了,比如 :com.rainbowsea.mybatis.pojo.Car 的别名就是 Car/CAR/cAR,不区分大小写的。
  1.    
  2.     <typeAliases>
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  <typeAlias type="com.rainbowsea.mybatis.pojo.Car" alias="Car"></typeAlias>
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  <typeAlias type="com.rainbowsea.mybatis.pojo.Log" alias="Log"></typeAlias>
  13.     </typeAliases>   
复制代码
4.2 typeAliases 的第二种方式:package

如果一个包下的类太多,每个类都要起别名,会导致 typeAlias 标签配置较多,以是mybatis用提供package的配置方式,只需要指定包名,该包下的所有类都自动起别名,别名就是简类名。而且别名不区分大小写。
留意:接口,一定要为全限定类名(带有包名),不可以用别名机制
这种方式是最常用的。
  1.     <typeAliases>
  2. <mappers>
  3.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  4.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  6. </mappers>  
  7. <mappers>
  8.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  9.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  11. </mappers>  <package name="com.rainbowsea.mybatis.pojo"/>
  12.     </typeAliases>
复制代码
测试:

留意:
使用 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
                PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="">


       
</mapper>还可以将这个包下的所有的类的全部自动起别名,别名就是简名,不区分大小写
,所有的别名不区分大小写。但是:namespace 不能使用别名机制
同时需要按照一定的顺序放置,放到指定的顺序当中去
5. mappers 路径设置的使用

SQL映射文件的配置方式包罗四种:
5.1 mapper 标签下的 resource 属性的使用

这种方式是从类路径中加载配置文件,以是这种方式要求SQL映射文件必须放在resources目录下或其子目录下。
  1. <mappers>
  2.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  3.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  4.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  5. </mappers>
复制代码

5.2 mapper 标签下的 url 属性的使用

这种方式是一种绝对路径的方式,这种方式不要求配置文件必须放到类的路径当中,哪里都行,只要提供了一个绝对路径就行,这种方式使用少少,因为移植性太差了(并不是以是的系统都有盘符的说法的)。

**需要留意的是:要三个\\\ ,才表现两个 \\ **
  1. <mappers>
  2.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  3.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  4.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  5. </mappers>
复制代码
5.3 mapper 标签下的 class 属性的使用

Class: 这位置提供的是 mapper 接口的全限定接口名,必须带有包名(就是要一定要和对应接口的路径是一致的,一致的,一致的)
如果使用这种方式必须满足以下条件:
  1. <mappers>
  2.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  3.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  4.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  5. </mappers><mappers>
  6.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  7.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  8.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  9. </mappers>    如果你class指定是:com.rainbowsea.mybatis.mapper.CarMapper<mappers>
  10.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  12.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  13. </mappers>  那么mybatis框架会自动去com/rainbowsea/mybatis/mapper/CarMapper/的目录下找,留意是 / 留意:也就是说,如果你接纳这种方式,那么你必须包管:CarMapper.xml文件和CarMapper接口必须在同一个目录下,而且名字也是一致的CarMapper接口——》CarMapper.xmlLogMapper接口——> LogMapper.xml
复制代码
提示:
在IDEA的resources 目录下新建多重目录的话,必须是如许创建:
com/rianbowsea/mybatis/mapper/
不然是
com.rianbowsea.mybatis.mapper 这是建包了


保持一致的同时,名称也要是一致的
  1.    
  2.     <typeAliases>
  3. <mappers>
  4.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  6.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  7. </mappers>  <typeAlias type="com.rainbowsea.mybatis.pojo.Car" alias="Car"></typeAlias>
  8. <mappers>
  9.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  12. </mappers>  <typeAlias type="com.rainbowsea.mybatis.pojo.Log" alias="Log"></typeAlias>
  13.     </typeAliases>  
复制代码
测试运行:
运行步伐:正常!!!

5.4 package 标签的使用

如果class较多,可以使用这种package的方式,但前提条件和上一种(mapper 标签下的class 属性的使用)方式一样。
如果使用这种方式必须满足以下条件:
这种方式是最常用的。
  1. <mappers>
  2.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  3.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  4.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  5. </mappers>  
复制代码

运行测试:

6. 在 IDEA 中自定义配置文件模板

mybatis-config.xml 和 SqlMapper.xml ,logback 文件可以在IDEA中提前创建好模板,以后通过模板创建配置文件。


mybatis 核心配置文件的模板内容
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false">
  3.    
  4.     <appender name="STDOUT" >
  5. <mappers>
  6.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  7.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  8.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  9. </mappers>  <encoder >
  10. <mappers>
  11.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  12.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  13.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  14. </mappers><mappers>
  15.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  16.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  17.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  18. </mappers>
  19. <mappers>
  20.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  21.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  22.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  23. </mappers><mappers>
  24.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  26.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  27. </mappers><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  28. <mappers>
  29.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  31.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  32. </mappers>  </encoder>
  33.     </appender>
  34.    
  35.     <logger name="com.apache.ibatis" level="TRACE"/>
  36.     <logger name="java.sql.Connection" level="DEBUG"/>
  37.     <logger name="java.sql.Statement" level="DEBUG"/>
  38.     <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  39.    
  40.     <root level="DEBUG">
  41. <mappers>
  42.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  44.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  45. </mappers>  <appender-ref ref="STDOUT"/>
  46. <mappers>
  47.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  48.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  49.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  50. </mappers>  <appender-ref ref="FILE"/>
  51.     </root>
  52. </configuration>
复制代码
logback 的日记配置模板内容
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false">
  3.    
  4.     <appender name="STDOUT" >
  5. <mappers>
  6.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  7.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  8.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  9. </mappers>  <encoder >
  10. <mappers>
  11.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  12.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  13.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  14. </mappers><mappers>
  15.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  16.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  17.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  18. </mappers>
  19. <mappers>
  20.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  21.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  22.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  23. </mappers><mappers>
  24.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  25.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  26.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  27. </mappers><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  28. <mappers>
  29.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  30.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  31.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  32. </mappers>  </encoder>
  33.     </appender>
  34.    
  35.     <logger name="com.apache.ibatis" level="TRACE"/>
  36.     <logger name="java.sql.Connection" level="DEBUG"/>
  37.     <logger name="java.sql.Statement" level="DEBUG"/>
  38.     <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  39.    
  40.     <root level="DEBUG">
  41. <mappers>
  42.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  43.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  44.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  45. </mappers>  <appender-ref ref="STDOUT"/>
  46. <mappers>
  47.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  48.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  49.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  50. </mappers>  <appender-ref ref="FILE"/>
  51.     </root>
  52. </configuration>
复制代码
SqLMapper的配置模板内容:
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="">
  6.        
  7. </mapper>
复制代码
7. 补充:插入数据时获取自动天生的主键的值

**前提是:主键是自动天生的。 **
业务背景:一个用户有多个角色。

插入一条新的记录之后,自动天生了主键,而这个主键需要在其他表中使用时。
插入一个用户数据的同时需要给该用户分副角色:需要将天生的用户的id插入到角色表的user_id字段上。
第一种方式:可以先插入用户数据,再写一条查询语句获取id,然后再插入user_id字段。【比力麻烦】
第二种方式:mybatis提供了一种方式更加便捷。
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="">
  6.        
  7. </mapper><?xml version="1.0" encoding="UTF-8" ?>
  8. <!DOCTYPE mapper
  9.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  10.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  11. <mapper namespace="">
  12.        
  13. </mapper><?xml version="1.0" encoding="UTF-8" ?>
  14. <!DOCTYPE mapper
  15.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  16.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  17. <mapper namespace="">
  18.        
  19. </mapper>insert into t_car values(null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType})<?xml version="1.0" encoding="UTF-8" ?>
  20. <!DOCTYPE mapper
  21.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  22.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  23. <mapper namespace="">
  24.        
  25. </mapper>
复制代码
userGeneratedKeys = "true"  使用自动天生的主键值,false 则是不使用自动天生的主键值了
keyProperty="id" 指定主键值赋值给POJO类(ORM映射)对象的哪个属性,这个就表现将主键值给Car对象的 id属性。
留意:这个 keyProperty 指定的值,一定要和对应上的 pojo 对象类上的属性一致,不然,不可的。

  1. package com.rainbowsea.mybatis.mapper;
  2. import com.rainbowsea.mybatis.pojo.Car;
  3. import java.util.List;
  4. /**
  5. * 封装汽车相关信息的pojo类,普通的Java类
  6. */
  7. public interface CarMapper {
  8.     /**
  9.      * 插入 Car 信息,并且使用生成的主键值
  10.      * @param car
  11.      * @return
  12.      */
  13.     int insertCarUserGeneratedKey(Car car);
  14. }
复制代码
  1. <mappers>
  2.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  3.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  4.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  5. </mappers><mappers>
  6.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  7.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  8.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  9. </mappers>    insert into t_car<mappers>
  10.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  11.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  12.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  13. </mappers>  values (null, #{carNum}, #{brand}, #{guidePrice}, #{produceTime}, #{carType})   
复制代码
运行测试:


8. 总结:

  1. - #{ } :先编译 SQL 语句,再对占位符传值,底层是 PrepareedStatement 实现,可以防止 SQL 注入,比较常用
  2. - ${ }:先进行SQL语句的拼接,然后再对SQL语句进行编译,底层是 Statement 实现,这种方式存在 SQL注入现象,SQL注入的风险,简单的说就是,直接将传入的值拼接为了SQL语句,然后再执行的)。只有在需要进行SQL语句关键字拼接的情况下才会用到。
  3. - 简单的说一个区别就是:#{} 传的值是带有 '' 单引号的,而 ${} 传的值是(直接就是值,没有单引号,或者是双引号,两个都没有)
复制代码
  1. 拼接表名
  2. 批量删除
  3. 模糊查询
复制代码
  1.     <typeAliases>
  2. <mappers>
  3.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  4.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  5.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  6. </mappers>  
  7. <mappers>
  8.   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  9.   <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  10.   <mapper resource="org/mybatis/builder/PostMapper.xml"/>
  11. </mappers>  <package name="com.rainbowsea.mybatis.pojo"/>
  12.     </typeAliases>
复制代码
  1. - SQL映射文件和mapper接口放在同一个目录下。
  2. - SQL映射文件的名字也必须和mapper接口名一致。
复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="">
  6.        
  7. </mapper><?xml version="1.0" encoding="UTF-8" ?>
  8. <!DOCTYPE mapper
  9.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  10.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  11. <mapper namespace="">
  12.        
  13. </mapper><?xml version="1.0" encoding="UTF-8" ?>
  14. <!DOCTYPE mapper
  15.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  16.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  17. <mapper namespace="">
  18.        
  19. </mapper>insert into t_car values(null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType})<?xml version="1.0" encoding="UTF-8" ?>
  20. <!DOCTYPE mapper
  21.                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  22.                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  23. <mapper namespace="">
  24.        
  25. </mapper>
复制代码
9. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时候再次相遇。”


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4