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

标题: 2.MyBatis [打印本页]

作者: 笑看天下无敌手    时间: 2023-1-8 20:32
标题: 2.MyBatis
MyBatis

笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)
视频教程(P47~P60)
看前提醒:如果之前学过一些框架,只想知道mybatis怎么用,那么就不太建议看任何第三方教程,更建议直接去看官方文档,从入门到具体配置都有。如果之前没学过框架,也建议先试着去看,实在不行再继续看博客或教学视频内容。(官方文档不跟你废话,内容更加精炼)
什么是MyBatis?
持久层
框架
JDBC缺点
MyBatis简化
MyBatis快速入门

参考网站:https://mybatis.org/mybatis-3/zh/getting-started.html
查询user表中所有数据
具体操作
虽然相对于学习JDBC时只是在一个文件中操作而言,看起来似乎更加麻烦,但是也需要考虑实际开发中代码量大和后续维护困难程度的问题。
Mappr代理开发
  1. List<User><typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>users<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>=<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>sqlSession.selectList("test.selectAll");
复制代码
你可能会注意到,这种方式和用全限定名调用<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>Java<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>对象的方法类似。这样,该命名就可以直接映射到在命名空间中同名的映射器类,并将已映射的<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>select<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>语句匹配到对应名称、参数和返回类型的方法。因此你就可以像上面那样,不费吹灰之力地在对应的映射器接口调用方法,就像下面这样:
  1. UserMapper<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>userMapper<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>=<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>sqlSession.getMapper(UserMapper.class);
  8. List<User><typeAliases>
  9. <package name="com.atguigu.pojo"/>
  10. </typeAliases>users<typeAliases>
  11. <package name="com.atguigu.pojo"/>
  12. </typeAliases>=<typeAliases>
  13. <package name="com.atguigu.pojo"/>
  14. </typeAliases>userMapper.selectAll();
复制代码
第二种方法有很多优势,首先它不依赖于字符串字面值,会更安全一点;其次,如果你的<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>IDE<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>有代码补全功能,那么代码补全可以帮你快速选择到映射好的<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>SQL<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>语句。
使用Mapper代理方式完成入门案例

细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载
方法如下:
修改mybatis配置文件mybatis-config.xml中下的内容
  1. <mappers>
  2. <typeAliases>
  3. <package name="com.atguigu.pojo"/>
  4. </typeAliases>
  5.         <package<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>name="com.atguigu.mapper"/>
  8. </mappers>
复制代码
MyBatis核心配置文件

我只会介绍一些重要的部分,不可能都讲完。详细的可以去官网。
官方文档(如果需要详细了解就必须去看):https://mybatis.org/mybatis-3/zh/configuration.html
mybatis-config.xml
environments:配置数据库连接环境信息。可以配置多个environment,通过default属性切换不同的environment
mappers:配置sql映射文件(上面已经讲过了)
typeAliases:类型别名。可以减少需要书写的类的长度
例如:
在mybatis-config.xml的中加入下面的内容:
  1. <typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>
复制代码

后面需要使用com.atguigu.pojo中的类时就只需要写类名,前面不需要附加包名。例如包中的User类:

当然,也可以对每个类进行单独的配置。但一般不使用那种方式。如想了解可以自行去官网查找。
细节:配置各个标签时,需要遵守下列的前后顺序(必须遵守,否则会报错)
配置文件完成增删改查

完成品牌数据的增删改查操作

产品原型地址:
https://www.pmdaniu.com/storages/122645/74ccff58678d80583ea43a55547173eb-1818/电商后台高保真原型(首页).html
准备环境

①数据库表tb_brand
  1. --<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>删除tb_brand表drop<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>table<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>if<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>exists<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>tb_brand;--<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases>创建tb_brand表create<typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases>table<typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases>tb_brand(        --<typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases>id主键        id<typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>int<typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases>primary<typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases>key<typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases>auto_increment,        --<typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases>品牌名称        brand_name<typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases>varchar(20),        --<typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases>企业名称        company_name<typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases>varchar(20),        --<typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases>排序字段        ordered<typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases>int,        --<typeAliases>
  40. <package name="com.atguigu.pojo"/>
  41. </typeAliases>描述信息        description<typeAliases>
  42. <package name="com.atguigu.pojo"/>
  43. </typeAliases>varchar(100),        --<typeAliases>
  44. <package name="com.atguigu.pojo"/>
  45. </typeAliases>状态∶0:禁用1∶启用        status<typeAliases>
  46. <package name="com.atguigu.pojo"/>
  47. </typeAliases>int);--<typeAliases>
  48. <package name="com.atguigu.pojo"/>
  49. </typeAliases>添加数据insert<typeAliases>
  50. <package name="com.atguigu.pojo"/>
  51. </typeAliases>into<typeAliases>
  52. <package name="com.atguigu.pojo"/>
  53. </typeAliases>tb_brand<typeAliases>
  54. <package name="com.atguigu.pojo"/>
  55. </typeAliases>(brand_name,company_name,ordered,description,status)values<typeAliases>
  56. <package name="com.atguigu.pojo"/>
  57. </typeAliases>('三只松鼠','三只松鼠股份有限公司',5,'好吃不上火',0),                ('华为','华为技术有限公司',<typeAliases>
  58. <package name="com.atguigu.pojo"/>
  59. </typeAliases>100,'华为致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界',1),                ('小米','小米科技有限公司',50,'are<typeAliases>
  60. <package name="com.atguigu.pojo"/>
  61. </typeAliases>you<typeAliases>
  62. <package name="com.atguigu.pojo"/>
  63. </typeAliases>ok',<typeAliases>
  64. <package name="com.atguigu.pojo"/>
  65. </typeAliases>1);SELECT<typeAliases>
  66. <package name="com.atguigu.pojo"/>
  67. </typeAliases>*<typeAliases>
  68. <package name="com.atguigu.pojo"/>
  69. </typeAliases>FROM<typeAliases>
  70. <package name="com.atguigu.pojo"/>
  71. </typeAliases>tb_brand;
复制代码
②实体类Brand(放在main/java文件夹下,位置看package)
  1. package<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>com.atguigu.pojo;public<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>class<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>Brand<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>{private<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>Integer<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases>id;//主键private<typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases>String<typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases>brandName;//品牌名称private<typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases>String<typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>companyName;//企业名称private<typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases>Integer<typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases>ordered;//排序字段private<typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases>String<typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases>description;//描述信息private<typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases>Integer<typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases>status;//状态public<typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases>Integer<typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases>getId()<typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases>{return<typeAliases>
  40. <package name="com.atguigu.pojo"/>
  41. </typeAliases>id;}public<typeAliases>
  42. <package name="com.atguigu.pojo"/>
  43. </typeAliases>void<typeAliases>
  44. <package name="com.atguigu.pojo"/>
  45. </typeAliases>setId(Integer<typeAliases>
  46. <package name="com.atguigu.pojo"/>
  47. </typeAliases>id)<typeAliases>
  48. <package name="com.atguigu.pojo"/>
  49. </typeAliases>{this.id<typeAliases>
  50. <package name="com.atguigu.pojo"/>
  51. </typeAliases>=<typeAliases>
  52. <package name="com.atguigu.pojo"/>
  53. </typeAliases>id;}public<typeAliases>
  54. <package name="com.atguigu.pojo"/>
  55. </typeAliases>String<typeAliases>
  56. <package name="com.atguigu.pojo"/>
  57. </typeAliases>getBrandName()<typeAliases>
  58. <package name="com.atguigu.pojo"/>
  59. </typeAliases>{return<typeAliases>
  60. <package name="com.atguigu.pojo"/>
  61. </typeAliases>brandName;}public<typeAliases>
  62. <package name="com.atguigu.pojo"/>
  63. </typeAliases>void<typeAliases>
  64. <package name="com.atguigu.pojo"/>
  65. </typeAliases>setBrandName(String<typeAliases>
  66. <package name="com.atguigu.pojo"/>
  67. </typeAliases>brandName)<typeAliases>
  68. <package name="com.atguigu.pojo"/>
  69. </typeAliases>{this.brandName<typeAliases>
  70. <package name="com.atguigu.pojo"/>
  71. </typeAliases>=<typeAliases>
  72. <package name="com.atguigu.pojo"/>
  73. </typeAliases>brandName;}public<typeAliases>
  74. <package name="com.atguigu.pojo"/>
  75. </typeAliases>String<typeAliases>
  76. <package name="com.atguigu.pojo"/>
  77. </typeAliases>getCompanyName()<typeAliases>
  78. <package name="com.atguigu.pojo"/>
  79. </typeAliases>{return<typeAliases>
  80. <package name="com.atguigu.pojo"/>
  81. </typeAliases>companyName;}public<typeAliases>
  82. <package name="com.atguigu.pojo"/>
  83. </typeAliases>void<typeAliases>
  84. <package name="com.atguigu.pojo"/>
  85. </typeAliases>setCompanyName(String<typeAliases>
  86. <package name="com.atguigu.pojo"/>
  87. </typeAliases>companyName)<typeAliases>
  88. <package name="com.atguigu.pojo"/>
  89. </typeAliases>{this.companyName<typeAliases>
  90. <package name="com.atguigu.pojo"/>
  91. </typeAliases>=<typeAliases>
  92. <package name="com.atguigu.pojo"/>
  93. </typeAliases>companyName;}public<typeAliases>
  94. <package name="com.atguigu.pojo"/>
  95. </typeAliases>Integer<typeAliases>
  96. <package name="com.atguigu.pojo"/>
  97. </typeAliases>getOrdered()<typeAliases>
  98. <package name="com.atguigu.pojo"/>
  99. </typeAliases>{return<typeAliases>
  100. <package name="com.atguigu.pojo"/>
  101. </typeAliases>ordered;}public<typeAliases>
  102. <package name="com.atguigu.pojo"/>
  103. </typeAliases>void<typeAliases>
  104. <package name="com.atguigu.pojo"/>
  105. </typeAliases>setOrdered(Integer<typeAliases>
  106. <package name="com.atguigu.pojo"/>
  107. </typeAliases>ordered)<typeAliases>
  108. <package name="com.atguigu.pojo"/>
  109. </typeAliases>{this.ordered<typeAliases>
  110. <package name="com.atguigu.pojo"/>
  111. </typeAliases>=<typeAliases>
  112. <package name="com.atguigu.pojo"/>
  113. </typeAliases>ordered;}public<typeAliases>
  114. <package name="com.atguigu.pojo"/>
  115. </typeAliases>String<typeAliases>
  116. <package name="com.atguigu.pojo"/>
  117. </typeAliases>getDescription()<typeAliases>
  118. <package name="com.atguigu.pojo"/>
  119. </typeAliases>{return<typeAliases>
  120. <package name="com.atguigu.pojo"/>
  121. </typeAliases>description;}public<typeAliases>
  122. <package name="com.atguigu.pojo"/>
  123. </typeAliases>void<typeAliases>
  124. <package name="com.atguigu.pojo"/>
  125. </typeAliases>setDescription(String<typeAliases>
  126. <package name="com.atguigu.pojo"/>
  127. </typeAliases>description)<typeAliases>
  128. <package name="com.atguigu.pojo"/>
  129. </typeAliases>{this.description<typeAliases>
  130. <package name="com.atguigu.pojo"/>
  131. </typeAliases>=<typeAliases>
  132. <package name="com.atguigu.pojo"/>
  133. </typeAliases>description;}public<typeAliases>
  134. <package name="com.atguigu.pojo"/>
  135. </typeAliases>Integer<typeAliases>
  136. <package name="com.atguigu.pojo"/>
  137. </typeAliases>getStatus()<typeAliases>
  138. <package name="com.atguigu.pojo"/>
  139. </typeAliases>{return<typeAliases>
  140. <package name="com.atguigu.pojo"/>
  141. </typeAliases>status;}public<typeAliases>
  142. <package name="com.atguigu.pojo"/>
  143. </typeAliases>void<typeAliases>
  144. <package name="com.atguigu.pojo"/>
  145. </typeAliases>setStatus(Integer<typeAliases>
  146. <package name="com.atguigu.pojo"/>
  147. </typeAliases>status)<typeAliases>
  148. <package name="com.atguigu.pojo"/>
  149. </typeAliases>{this.status<typeAliases>
  150. <package name="com.atguigu.pojo"/>
  151. </typeAliases>=<typeAliases>
  152. <package name="com.atguigu.pojo"/>
  153. </typeAliases>status;}@Overridepublic<typeAliases>
  154. <package name="com.atguigu.pojo"/>
  155. </typeAliases>String<typeAliases>
  156. <package name="com.atguigu.pojo"/>
  157. </typeAliases>toString()<typeAliases>
  158. <package name="com.atguigu.pojo"/>
  159. </typeAliases>{<typeAliases>
  160. <package name="com.atguigu.pojo"/>
  161. </typeAliases>return<typeAliases>
  162. <package name="com.atguigu.pojo"/>
  163. </typeAliases>"Brand{"<typeAliases>
  164. <package name="com.atguigu.pojo"/>
  165. </typeAliases>+<typeAliases>
  166. <package name="com.atguigu.pojo"/>
  167. </typeAliases><typeAliases>
  168. <package name="com.atguigu.pojo"/>
  169. </typeAliases><typeAliases>
  170. <package name="com.atguigu.pojo"/>
  171. </typeAliases><typeAliases>
  172. <package name="com.atguigu.pojo"/>
  173. </typeAliases><typeAliases>
  174. <package name="com.atguigu.pojo"/>
  175. </typeAliases><typeAliases>
  176. <package name="com.atguigu.pojo"/>
  177. </typeAliases><typeAliases>
  178. <package name="com.atguigu.pojo"/>
  179. </typeAliases><typeAliases>
  180. <package name="com.atguigu.pojo"/>
  181. </typeAliases><typeAliases>
  182. <package name="com.atguigu.pojo"/>
  183. </typeAliases>"id="<typeAliases>
  184. <package name="com.atguigu.pojo"/>
  185. </typeAliases>+<typeAliases>
  186. <package name="com.atguigu.pojo"/>
  187. </typeAliases>id<typeAliases>
  188. <package name="com.atguigu.pojo"/>
  189. </typeAliases>+<typeAliases>
  190. <package name="com.atguigu.pojo"/>
  191. </typeAliases><typeAliases>
  192. <package name="com.atguigu.pojo"/>
  193. </typeAliases><typeAliases>
  194. <package name="com.atguigu.pojo"/>
  195. </typeAliases><typeAliases>
  196. <package name="com.atguigu.pojo"/>
  197. </typeAliases><typeAliases>
  198. <package name="com.atguigu.pojo"/>
  199. </typeAliases><typeAliases>
  200. <package name="com.atguigu.pojo"/>
  201. </typeAliases><typeAliases>
  202. <package name="com.atguigu.pojo"/>
  203. </typeAliases><typeAliases>
  204. <package name="com.atguigu.pojo"/>
  205. </typeAliases><typeAliases>
  206. <package name="com.atguigu.pojo"/>
  207. </typeAliases>",<typeAliases>
  208. <package name="com.atguigu.pojo"/>
  209. </typeAliases>brandName='"<typeAliases>
  210. <package name="com.atguigu.pojo"/>
  211. </typeAliases>+<typeAliases>
  212. <package name="com.atguigu.pojo"/>
  213. </typeAliases>brandName<typeAliases>
  214. <package name="com.atguigu.pojo"/>
  215. </typeAliases>+<typeAliases>
  216. <package name="com.atguigu.pojo"/>
  217. </typeAliases>'\''<typeAliases>
  218. <package name="com.atguigu.pojo"/>
  219. </typeAliases>+<typeAliases>
  220. <package name="com.atguigu.pojo"/>
  221. </typeAliases><typeAliases>
  222. <package name="com.atguigu.pojo"/>
  223. </typeAliases><typeAliases>
  224. <package name="com.atguigu.pojo"/>
  225. </typeAliases><typeAliases>
  226. <package name="com.atguigu.pojo"/>
  227. </typeAliases><typeAliases>
  228. <package name="com.atguigu.pojo"/>
  229. </typeAliases><typeAliases>
  230. <package name="com.atguigu.pojo"/>
  231. </typeAliases><typeAliases>
  232. <package name="com.atguigu.pojo"/>
  233. </typeAliases><typeAliases>
  234. <package name="com.atguigu.pojo"/>
  235. </typeAliases><typeAliases>
  236. <package name="com.atguigu.pojo"/>
  237. </typeAliases>",<typeAliases>
  238. <package name="com.atguigu.pojo"/>
  239. </typeAliases>companyName='"<typeAliases>
  240. <package name="com.atguigu.pojo"/>
  241. </typeAliases>+<typeAliases>
  242. <package name="com.atguigu.pojo"/>
  243. </typeAliases>companyName<typeAliases>
  244. <package name="com.atguigu.pojo"/>
  245. </typeAliases>+<typeAliases>
  246. <package name="com.atguigu.pojo"/>
  247. </typeAliases>'\''<typeAliases>
  248. <package name="com.atguigu.pojo"/>
  249. </typeAliases>+<typeAliases>
  250. <package name="com.atguigu.pojo"/>
  251. </typeAliases><typeAliases>
  252. <package name="com.atguigu.pojo"/>
  253. </typeAliases><typeAliases>
  254. <package name="com.atguigu.pojo"/>
  255. </typeAliases><typeAliases>
  256. <package name="com.atguigu.pojo"/>
  257. </typeAliases><typeAliases>
  258. <package name="com.atguigu.pojo"/>
  259. </typeAliases><typeAliases>
  260. <package name="com.atguigu.pojo"/>
  261. </typeAliases><typeAliases>
  262. <package name="com.atguigu.pojo"/>
  263. </typeAliases><typeAliases>
  264. <package name="com.atguigu.pojo"/>
  265. </typeAliases><typeAliases>
  266. <package name="com.atguigu.pojo"/>
  267. </typeAliases>",<typeAliases>
  268. <package name="com.atguigu.pojo"/>
  269. </typeAliases>ordered="<typeAliases>
  270. <package name="com.atguigu.pojo"/>
  271. </typeAliases>+<typeAliases>
  272. <package name="com.atguigu.pojo"/>
  273. </typeAliases>ordered<typeAliases>
  274. <package name="com.atguigu.pojo"/>
  275. </typeAliases>+<typeAliases>
  276. <package name="com.atguigu.pojo"/>
  277. </typeAliases><typeAliases>
  278. <package name="com.atguigu.pojo"/>
  279. </typeAliases><typeAliases>
  280. <package name="com.atguigu.pojo"/>
  281. </typeAliases><typeAliases>
  282. <package name="com.atguigu.pojo"/>
  283. </typeAliases><typeAliases>
  284. <package name="com.atguigu.pojo"/>
  285. </typeAliases><typeAliases>
  286. <package name="com.atguigu.pojo"/>
  287. </typeAliases><typeAliases>
  288. <package name="com.atguigu.pojo"/>
  289. </typeAliases><typeAliases>
  290. <package name="com.atguigu.pojo"/>
  291. </typeAliases><typeAliases>
  292. <package name="com.atguigu.pojo"/>
  293. </typeAliases>",<typeAliases>
  294. <package name="com.atguigu.pojo"/>
  295. </typeAliases>description='"<typeAliases>
  296. <package name="com.atguigu.pojo"/>
  297. </typeAliases>+<typeAliases>
  298. <package name="com.atguigu.pojo"/>
  299. </typeAliases>description<typeAliases>
  300. <package name="com.atguigu.pojo"/>
  301. </typeAliases>+<typeAliases>
  302. <package name="com.atguigu.pojo"/>
  303. </typeAliases>'\''<typeAliases>
  304. <package name="com.atguigu.pojo"/>
  305. </typeAliases>+<typeAliases>
  306. <package name="com.atguigu.pojo"/>
  307. </typeAliases><typeAliases>
  308. <package name="com.atguigu.pojo"/>
  309. </typeAliases><typeAliases>
  310. <package name="com.atguigu.pojo"/>
  311. </typeAliases><typeAliases>
  312. <package name="com.atguigu.pojo"/>
  313. </typeAliases><typeAliases>
  314. <package name="com.atguigu.pojo"/>
  315. </typeAliases><typeAliases>
  316. <package name="com.atguigu.pojo"/>
  317. </typeAliases><typeAliases>
  318. <package name="com.atguigu.pojo"/>
  319. </typeAliases><typeAliases>
  320. <package name="com.atguigu.pojo"/>
  321. </typeAliases><typeAliases>
  322. <package name="com.atguigu.pojo"/>
  323. </typeAliases>",<typeAliases>
  324. <package name="com.atguigu.pojo"/>
  325. </typeAliases>status="<typeAliases>
  326. <package name="com.atguigu.pojo"/>
  327. </typeAliases>+<typeAliases>
  328. <package name="com.atguigu.pojo"/>
  329. </typeAliases>status<typeAliases>
  330. <package name="com.atguigu.pojo"/>
  331. </typeAliases>+<typeAliases>
  332. <package name="com.atguigu.pojo"/>
  333. </typeAliases><typeAliases>
  334. <package name="com.atguigu.pojo"/>
  335. </typeAliases><typeAliases>
  336. <package name="com.atguigu.pojo"/>
  337. </typeAliases><typeAliases>
  338. <package name="com.atguigu.pojo"/>
  339. </typeAliases><typeAliases>
  340. <package name="com.atguigu.pojo"/>
  341. </typeAliases><typeAliases>
  342. <package name="com.atguigu.pojo"/>
  343. </typeAliases><typeAliases>
  344. <package name="com.atguigu.pojo"/>
  345. </typeAliases><typeAliases>
  346. <package name="com.atguigu.pojo"/>
  347. </typeAliases><typeAliases>
  348. <package name="com.atguigu.pojo"/>
  349. </typeAliases>'}';}}
复制代码
后续如果不想写数据库表对应的实体类,也可以使用自动生成,(再根据实际需求进行修改):
先连接数据库(右侧的<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>Database(数据库)<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>→"+"→Data<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>Source(数据源)→MySQL→配置好数据库信息→OK)
创建实体类(也可以使用之前配置好<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases><typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases><typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>右侧的<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>Database(数据库)→schemas→找到表名右键→Scripted<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>Extensions(脚本扩展)→Generate<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>POHOs.grovy)
这不是MyBatis的主要内容,我就不详细说了。
如果想看详细流程截图→:https://blog.csdn.net/weixin_42575720/article/details/125093184
③测试用例(放在test/java文件夹下,位置:src/test/java/com/itheima/test/MyBatisTest.java)
④安装MyBatisX插件(非必要,但开发更加方便)

1.<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>查询


1.1查询所有数据


和入门案例类似,以下为基本要点(一定要自己上手,可以复制之前写的代码再修改)

代码参考:
  1. package<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>com.atguigu.mapper;import<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>com.atguigu.pojo.Brand;import<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>java.util.List;public<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>interface<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>BrandMapper<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases>{<typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases><typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases><typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases><typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>List<User><typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases>selectAll();}
复制代码
  1. <typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases><typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases><typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases><typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases><typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases><typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases><typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases><typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases><typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases><typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases><typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases><typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases>SELECT<typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases>*<typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases>FROM<typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases>tb_brand<typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases><typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases><typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases><typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases>
复制代码
  1. package<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>com.itheima.test;import<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>com.atguigu.mapper.BrandMapper;import<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>com.atguigu.pojo.Brand;import<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>org.apache.ibatis.io.Resources;import<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>org.apache.ibatis.session.SqlSession;import<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases>org.apache.ibatis.session.SqlSessionFactory;import<typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases>org.apache.ibatis.session.SqlSessionFactoryBuilder;import<typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases>org.junit.Test;import<typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases>java.io.IOException;import<typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>java.io.InputStream;import<typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases>java.util.List;public<typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases>class<typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases>MyBatisTest<typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases>{<typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases><typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases><typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases><typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases>@Test<typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases><typeAliases>
  40. <package name="com.atguigu.pojo"/>
  41. </typeAliases><typeAliases>
  42. <package name="com.atguigu.pojo"/>
  43. </typeAliases><typeAliases>
  44. <package name="com.atguigu.pojo"/>
  45. </typeAliases>public<typeAliases>
  46. <package name="com.atguigu.pojo"/>
  47. </typeAliases>void<typeAliases>
  48. <package name="com.atguigu.pojo"/>
  49. </typeAliases>testSelectAll()<typeAliases>
  50. <package name="com.atguigu.pojo"/>
  51. </typeAliases>throws<typeAliases>
  52. <package name="com.atguigu.pojo"/>
  53. </typeAliases>IOException<typeAliases>
  54. <package name="com.atguigu.pojo"/>
  55. </typeAliases>{<typeAliases>
  56. <package name="com.atguigu.pojo"/>
  57. </typeAliases><typeAliases>
  58. <package name="com.atguigu.pojo"/>
  59. </typeAliases><typeAliases>
  60. <package name="com.atguigu.pojo"/>
  61. </typeAliases><typeAliases>
  62. <package name="com.atguigu.pojo"/>
  63. </typeAliases><typeAliases>
  64. <package name="com.atguigu.pojo"/>
  65. </typeAliases><typeAliases>
  66. <package name="com.atguigu.pojo"/>
  67. </typeAliases><typeAliases>
  68. <package name="com.atguigu.pojo"/>
  69. </typeAliases><typeAliases>
  70. <package name="com.atguigu.pojo"/>
  71. </typeAliases>String<typeAliases>
  72. <package name="com.atguigu.pojo"/>
  73. </typeAliases>resource<typeAliases>
  74. <package name="com.atguigu.pojo"/>
  75. </typeAliases>=<typeAliases>
  76. <package name="com.atguigu.pojo"/>
  77. </typeAliases>"mybatis-config.xml";<typeAliases>
  78. <package name="com.atguigu.pojo"/>
  79. </typeAliases><typeAliases>
  80. <package name="com.atguigu.pojo"/>
  81. </typeAliases><typeAliases>
  82. <package name="com.atguigu.pojo"/>
  83. </typeAliases><typeAliases>
  84. <package name="com.atguigu.pojo"/>
  85. </typeAliases><typeAliases>
  86. <package name="com.atguigu.pojo"/>
  87. </typeAliases><typeAliases>
  88. <package name="com.atguigu.pojo"/>
  89. </typeAliases><typeAliases>
  90. <package name="com.atguigu.pojo"/>
  91. </typeAliases><typeAliases>
  92. <package name="com.atguigu.pojo"/>
  93. </typeAliases>InputStream<typeAliases>
  94. <package name="com.atguigu.pojo"/>
  95. </typeAliases>inputStream<typeAliases>
  96. <package name="com.atguigu.pojo"/>
  97. </typeAliases>=<typeAliases>
  98. <package name="com.atguigu.pojo"/>
  99. </typeAliases>Resources.getResourceAsStream(resource);<typeAliases>
  100. <package name="com.atguigu.pojo"/>
  101. </typeAliases><typeAliases>
  102. <package name="com.atguigu.pojo"/>
  103. </typeAliases><typeAliases>
  104. <package name="com.atguigu.pojo"/>
  105. </typeAliases><typeAliases>
  106. <package name="com.atguigu.pojo"/>
  107. </typeAliases><typeAliases>
  108. <package name="com.atguigu.pojo"/>
  109. </typeAliases><typeAliases>
  110. <package name="com.atguigu.pojo"/>
  111. </typeAliases><typeAliases>
  112. <package name="com.atguigu.pojo"/>
  113. </typeAliases><typeAliases>
  114. <package name="com.atguigu.pojo"/>
  115. </typeAliases>SqlSessionFactory<typeAliases>
  116. <package name="com.atguigu.pojo"/>
  117. </typeAliases>sqlSessionFactory<typeAliases>
  118. <package name="com.atguigu.pojo"/>
  119. </typeAliases>=<typeAliases>
  120. <package name="com.atguigu.pojo"/>
  121. </typeAliases>new<typeAliases>
  122. <package name="com.atguigu.pojo"/>
  123. </typeAliases>SqlSessionFactoryBuilder().build(inputStream);<typeAliases>
  124. <package name="com.atguigu.pojo"/>
  125. </typeAliases><typeAliases>
  126. <package name="com.atguigu.pojo"/>
  127. </typeAliases><typeAliases>
  128. <package name="com.atguigu.pojo"/>
  129. </typeAliases><typeAliases>
  130. <package name="com.atguigu.pojo"/>
  131. </typeAliases><typeAliases>
  132. <package name="com.atguigu.pojo"/>
  133. </typeAliases><typeAliases>
  134. <package name="com.atguigu.pojo"/>
  135. </typeAliases><typeAliases>
  136. <package name="com.atguigu.pojo"/>
  137. </typeAliases><typeAliases>
  138. <package name="com.atguigu.pojo"/>
  139. </typeAliases>SqlSession<typeAliases>
  140. <package name="com.atguigu.pojo"/>
  141. </typeAliases>sqlSession<typeAliases>
  142. <package name="com.atguigu.pojo"/>
  143. </typeAliases>=<typeAliases>
  144. <package name="com.atguigu.pojo"/>
  145. </typeAliases>sqlSessionFactory.openSession();<typeAliases>
  146. <package name="com.atguigu.pojo"/>
  147. </typeAliases><typeAliases>
  148. <package name="com.atguigu.pojo"/>
  149. </typeAliases><typeAliases>
  150. <package name="com.atguigu.pojo"/>
  151. </typeAliases><typeAliases>
  152. <package name="com.atguigu.pojo"/>
  153. </typeAliases><typeAliases>
  154. <package name="com.atguigu.pojo"/>
  155. </typeAliases><typeAliases>
  156. <package name="com.atguigu.pojo"/>
  157. </typeAliases><typeAliases>
  158. <package name="com.atguigu.pojo"/>
  159. </typeAliases><typeAliases>
  160. <package name="com.atguigu.pojo"/>
  161. </typeAliases>BrandMapper<typeAliases>
  162. <package name="com.atguigu.pojo"/>
  163. </typeAliases>brandMapper<typeAliases>
  164. <package name="com.atguigu.pojo"/>
  165. </typeAliases>=<typeAliases>
  166. <package name="com.atguigu.pojo"/>
  167. </typeAliases>sqlSession.getMapper(BrandMapper.class);<typeAliases>
  168. <package name="com.atguigu.pojo"/>
  169. </typeAliases><typeAliases>
  170. <package name="com.atguigu.pojo"/>
  171. </typeAliases><typeAliases>
  172. <package name="com.atguigu.pojo"/>
  173. </typeAliases><typeAliases>
  174. <package name="com.atguigu.pojo"/>
  175. </typeAliases><typeAliases>
  176. <package name="com.atguigu.pojo"/>
  177. </typeAliases><typeAliases>
  178. <package name="com.atguigu.pojo"/>
  179. </typeAliases><typeAliases>
  180. <package name="com.atguigu.pojo"/>
  181. </typeAliases><typeAliases>
  182. <package name="com.atguigu.pojo"/>
  183. </typeAliases>List<typeAliases>
  184. <package name="com.atguigu.pojo"/>
  185. </typeAliases>brands<typeAliases>
  186. <package name="com.atguigu.pojo"/>
  187. </typeAliases>=<typeAliases>
  188. <package name="com.atguigu.pojo"/>
  189. </typeAliases>brandMapper.selectAll();<typeAliases>
  190. <package name="com.atguigu.pojo"/>
  191. </typeAliases><typeAliases>
  192. <package name="com.atguigu.pojo"/>
  193. </typeAliases><typeAliases>
  194. <package name="com.atguigu.pojo"/>
  195. </typeAliases><typeAliases>
  196. <package name="com.atguigu.pojo"/>
  197. </typeAliases><typeAliases>
  198. <package name="com.atguigu.pojo"/>
  199. </typeAliases><typeAliases>
  200. <package name="com.atguigu.pojo"/>
  201. </typeAliases><typeAliases>
  202. <package name="com.atguigu.pojo"/>
  203. </typeAliases><typeAliases>
  204. <package name="com.atguigu.pojo"/>
  205. </typeAliases>for<typeAliases>
  206. <package name="com.atguigu.pojo"/>
  207. </typeAliases>(Brand<typeAliases>
  208. <package name="com.atguigu.pojo"/>
  209. </typeAliases>brand<typeAliases>
  210. <package name="com.atguigu.pojo"/>
  211. </typeAliases>:<typeAliases>
  212. <package name="com.atguigu.pojo"/>
  213. </typeAliases>brands)<typeAliases>
  214. <package name="com.atguigu.pojo"/>
  215. </typeAliases>{<typeAliases>
  216. <package name="com.atguigu.pojo"/>
  217. </typeAliases><typeAliases>
  218. <package name="com.atguigu.pojo"/>
  219. </typeAliases><typeAliases>
  220. <package name="com.atguigu.pojo"/>
  221. </typeAliases><typeAliases>
  222. <package name="com.atguigu.pojo"/>
  223. </typeAliases><typeAliases>
  224. <package name="com.atguigu.pojo"/>
  225. </typeAliases><typeAliases>
  226. <package name="com.atguigu.pojo"/>
  227. </typeAliases><typeAliases>
  228. <package name="com.atguigu.pojo"/>
  229. </typeAliases><typeAliases>
  230. <package name="com.atguigu.pojo"/>
  231. </typeAliases><typeAliases>
  232. <package name="com.atguigu.pojo"/>
  233. </typeAliases><typeAliases>
  234. <package name="com.atguigu.pojo"/>
  235. </typeAliases><typeAliases>
  236. <package name="com.atguigu.pojo"/>
  237. </typeAliases><typeAliases>
  238. <package name="com.atguigu.pojo"/>
  239. </typeAliases>System.out.println(brand);<typeAliases>
  240. <package name="com.atguigu.pojo"/>
  241. </typeAliases><typeAliases>
  242. <package name="com.atguigu.pojo"/>
  243. </typeAliases><typeAliases>
  244. <package name="com.atguigu.pojo"/>
  245. </typeAliases><typeAliases>
  246. <package name="com.atguigu.pojo"/>
  247. </typeAliases><typeAliases>
  248. <package name="com.atguigu.pojo"/>
  249. </typeAliases><typeAliases>
  250. <package name="com.atguigu.pojo"/>
  251. </typeAliases><typeAliases>
  252. <package name="com.atguigu.pojo"/>
  253. </typeAliases><typeAliases>
  254. <package name="com.atguigu.pojo"/>
  255. </typeAliases>}<typeAliases>
  256. <package name="com.atguigu.pojo"/>
  257. </typeAliases><typeAliases>
  258. <package name="com.atguigu.pojo"/>
  259. </typeAliases><typeAliases>
  260. <package name="com.atguigu.pojo"/>
  261. </typeAliases><typeAliases>
  262. <package name="com.atguigu.pojo"/>
  263. </typeAliases><typeAliases>
  264. <package name="com.atguigu.pojo"/>
  265. </typeAliases><typeAliases>
  266. <package name="com.atguigu.pojo"/>
  267. </typeAliases><typeAliases>
  268. <package name="com.atguigu.pojo"/>
  269. </typeAliases><typeAliases>
  270. <package name="com.atguigu.pojo"/>
  271. </typeAliases><typeAliases>
  272. <package name="com.atguigu.pojo"/>
  273. </typeAliases><typeAliases>
  274. <package name="com.atguigu.pojo"/>
  275. </typeAliases><typeAliases>
  276. <package name="com.atguigu.pojo"/>
  277. </typeAliases><typeAliases>
  278. <package name="com.atguigu.pojo"/>
  279. </typeAliases><typeAliases>
  280. <package name="com.atguigu.pojo"/>
  281. </typeAliases><typeAliases>
  282. <package name="com.atguigu.pojo"/>
  283. </typeAliases><typeAliases>
  284. <package name="com.atguigu.pojo"/>
  285. </typeAliases><typeAliases>
  286. <package name="com.atguigu.pojo"/>
  287. </typeAliases>sqlSession.close();<typeAliases>
  288. <package name="com.atguigu.pojo"/>
  289. </typeAliases><typeAliases>
  290. <package name="com.atguigu.pojo"/>
  291. </typeAliases><typeAliases>
  292. <package name="com.atguigu.pojo"/>
  293. </typeAliases><typeAliases>
  294. <package name="com.atguigu.pojo"/>
  295. </typeAliases>}}
复制代码
运行结果:

这里可以看到<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>brandName和companyName并没有获取到数据。是因为数据库中(brand_name,company_name)和实体类字段名称(<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>brandName,companyName)不一样,对不上。需要手动设置。
方法一<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>起别名:修改sql语句,对不一样的列名起别名,让别名和实体类的属性名一样(缺点:每次查询都要定义一次别名。不推荐)
方法二<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>resultMap(结果映射):
具体修改如下所示(注意看我的注释):
  1. <typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases><typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases><typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases><typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases><typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases><typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases><typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases><typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases><typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases><typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases><typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases><typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases><typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases><typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases><typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases><typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases><typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases><typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases><typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases><typeAliases>
  40. <package name="com.atguigu.pojo"/>
  41. </typeAliases><typeAliases>
  42. <package name="com.atguigu.pojo"/>
  43. </typeAliases><typeAliases>
  44. <package name="com.atguigu.pojo"/>
  45. </typeAliases><typeAliases>
  46. <package name="com.atguigu.pojo"/>
  47. </typeAliases><typeAliases>
  48. <package name="com.atguigu.pojo"/>
  49. </typeAliases><typeAliases>
  50. <package name="com.atguigu.pojo"/>
  51. </typeAliases><typeAliases>
  52. <package name="com.atguigu.pojo"/>
  53. </typeAliases><typeAliases>
  54. <package name="com.atguigu.pojo"/>
  55. </typeAliases><typeAliases>
  56. <package name="com.atguigu.pojo"/>
  57. </typeAliases><typeAliases>
  58. <package name="com.atguigu.pojo"/>
  59. </typeAliases><typeAliases>
  60. <package name="com.atguigu.pojo"/>
  61. </typeAliases><typeAliases>
  62. <package name="com.atguigu.pojo"/>
  63. </typeAliases><typeAliases>
  64. <package name="com.atguigu.pojo"/>
  65. </typeAliases><typeAliases>
  66. <package name="com.atguigu.pojo"/>
  67. </typeAliases><typeAliases>
  68. <package name="com.atguigu.pojo"/>
  69. </typeAliases><typeAliases>
  70. <package name="com.atguigu.pojo"/>
  71. </typeAliases><typeAliases>
  72. <package name="com.atguigu.pojo"/>
  73. </typeAliases><typeAliases>
  74. <package name="com.atguigu.pojo"/>
  75. </typeAliases><typeAliases>
  76. <package name="com.atguigu.pojo"/>
  77. </typeAliases><typeAliases>
  78. <package name="com.atguigu.pojo"/>
  79. </typeAliases><typeAliases>
  80. <package name="com.atguigu.pojo"/>
  81. </typeAliases><typeAliases>
  82. <package name="com.atguigu.pojo"/>
  83. </typeAliases><typeAliases>
  84. <package name="com.atguigu.pojo"/>
  85. </typeAliases><typeAliases>
  86. <package name="com.atguigu.pojo"/>
  87. </typeAliases><typeAliases>
  88. <package name="com.atguigu.pojo"/>
  89. </typeAliases><typeAliases>
  90. <package name="com.atguigu.pojo"/>
  91. </typeAliases><typeAliases>
  92. <package name="com.atguigu.pojo"/>
  93. </typeAliases><typeAliases>
  94. <package name="com.atguigu.pojo"/>
  95. </typeAliases><typeAliases>
  96. <package name="com.atguigu.pojo"/>
  97. </typeAliases>SELECT<typeAliases>
  98. <package name="com.atguigu.pojo"/>
  99. </typeAliases>*<typeAliases>
  100. <package name="com.atguigu.pojo"/>
  101. </typeAliases>FROM<typeAliases>
  102. <package name="com.atguigu.pojo"/>
  103. </typeAliases>tb_brand<typeAliases>
  104. <package name="com.atguigu.pojo"/>
  105. </typeAliases><typeAliases>
  106. <package name="com.atguigu.pojo"/>
  107. </typeAliases><typeAliases>
  108. <package name="com.atguigu.pojo"/>
  109. </typeAliases><typeAliases>
  110. <package name="com.atguigu.pojo"/>
  111. </typeAliases>
复制代码
现在就能正常显示了

1.2查看详情


注意其中配置文件中的#{id}与方法中的id对应,为用作传递参数的参数占位符。
  1. //测试方法@Testpublic<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>void<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>testSelectById()<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>throws<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>IOException<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>{<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases><typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases><typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases><typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases>int<typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>id=1;//接收参数<typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases><typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases><typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases><typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases>String<typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases>resource<typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases>=<typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases>"mybatis-config.xml";<typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases><typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases><typeAliases>
  40. <package name="com.atguigu.pojo"/>
  41. </typeAliases><typeAliases>
  42. <package name="com.atguigu.pojo"/>
  43. </typeAliases>InputStream<typeAliases>
  44. <package name="com.atguigu.pojo"/>
  45. </typeAliases>inputStream<typeAliases>
  46. <package name="com.atguigu.pojo"/>
  47. </typeAliases>=<typeAliases>
  48. <package name="com.atguigu.pojo"/>
  49. </typeAliases>Resources.getResourceAsStream(resource);<typeAliases>
  50. <package name="com.atguigu.pojo"/>
  51. </typeAliases><typeAliases>
  52. <package name="com.atguigu.pojo"/>
  53. </typeAliases><typeAliases>
  54. <package name="com.atguigu.pojo"/>
  55. </typeAliases><typeAliases>
  56. <package name="com.atguigu.pojo"/>
  57. </typeAliases>SqlSessionFactory<typeAliases>
  58. <package name="com.atguigu.pojo"/>
  59. </typeAliases>sqlSessionFactory<typeAliases>
  60. <package name="com.atguigu.pojo"/>
  61. </typeAliases>=<typeAliases>
  62. <package name="com.atguigu.pojo"/>
  63. </typeAliases>new<typeAliases>
  64. <package name="com.atguigu.pojo"/>
  65. </typeAliases>SqlSessionFactoryBuilder().build(inputStream);<typeAliases>
  66. <package name="com.atguigu.pojo"/>
  67. </typeAliases><typeAliases>
  68. <package name="com.atguigu.pojo"/>
  69. </typeAliases><typeAliases>
  70. <package name="com.atguigu.pojo"/>
  71. </typeAliases><typeAliases>
  72. <package name="com.atguigu.pojo"/>
  73. </typeAliases>SqlSession<typeAliases>
  74. <package name="com.atguigu.pojo"/>
  75. </typeAliases>sqlSession<typeAliases>
  76. <package name="com.atguigu.pojo"/>
  77. </typeAliases>=<typeAliases>
  78. <package name="com.atguigu.pojo"/>
  79. </typeAliases>sqlSessionFactory.openSession();<typeAliases>
  80. <package name="com.atguigu.pojo"/>
  81. </typeAliases><typeAliases>
  82. <package name="com.atguigu.pojo"/>
  83. </typeAliases><typeAliases>
  84. <package name="com.atguigu.pojo"/>
  85. </typeAliases><typeAliases>
  86. <package name="com.atguigu.pojo"/>
  87. </typeAliases>BrandMapper<typeAliases>
  88. <package name="com.atguigu.pojo"/>
  89. </typeAliases>brandMapper<typeAliases>
  90. <package name="com.atguigu.pojo"/>
  91. </typeAliases>=<typeAliases>
  92. <package name="com.atguigu.pojo"/>
  93. </typeAliases>sqlSession.getMapper(BrandMapper.class);<typeAliases>
  94. <package name="com.atguigu.pojo"/>
  95. </typeAliases><typeAliases>
  96. <package name="com.atguigu.pojo"/>
  97. </typeAliases><typeAliases>
  98. <package name="com.atguigu.pojo"/>
  99. </typeAliases><typeAliases>
  100. <package name="com.atguigu.pojo"/>
  101. </typeAliases>Brand<typeAliases>
  102. <package name="com.atguigu.pojo"/>
  103. </typeAliases>brand<typeAliases>
  104. <package name="com.atguigu.pojo"/>
  105. </typeAliases>=<typeAliases>
  106. <package name="com.atguigu.pojo"/>
  107. </typeAliases>brandMapper.selectById(id);<typeAliases>
  108. <package name="com.atguigu.pojo"/>
  109. </typeAliases><typeAliases>
  110. <package name="com.atguigu.pojo"/>
  111. </typeAliases><typeAliases>
  112. <package name="com.atguigu.pojo"/>
  113. </typeAliases><typeAliases>
  114. <package name="com.atguigu.pojo"/>
  115. </typeAliases>System.out.println(brand);<typeAliases>
  116. <package name="com.atguigu.pojo"/>
  117. </typeAliases><typeAliases>
  118. <package name="com.atguigu.pojo"/>
  119. </typeAliases><typeAliases>
  120. <package name="com.atguigu.pojo"/>
  121. </typeAliases><typeAliases>
  122. <package name="com.atguigu.pojo"/>
  123. </typeAliases>sqlSession.close();}
复制代码

参数占位符:
注意特殊字符需要特地处理:

例如select<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>*<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>from<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>tb_brand<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>where<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>id</ol>1.3条件查询


条件查询中经常会出现传入多个参数的情况,此时就不能只用之前的传参方式了(因为不知道怎么匹配)。
处理方法是在接口中对应方法处指出对应关系。
方式如下,主要内容已经给出(不难,我就不粘贴完整代码了,自己完成)

SQL语句设置多个参数的三种方式
但是上面这样写SQL语句在实际使用中会出现Bug。因为当存在框中内容为空的情况下,sql语句对应位置的参数就为null,因而导致查询结果错误。因此需要用到动态SQL
动态SQL

官方教程:https://mybatis.org/mybatis-3/zh/dynamic-sql.html
SQL语句会随着用户的输入或外部条件的变化而变化,我们称为动态SQL
if

用于判断参数是否有值,使用test属性进行条件判断
使用动态<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>SQL<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>最常见情景是根据条件包含<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>where<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>子句的一部分。比如:
  1. <typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases><typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>SELECT<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>*<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>FROM<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>tb_brand<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases><typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases>WHERE<typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases>id<typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases>=<typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>1<typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases><typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases><typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases><typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases><typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases><typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases>AND<typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases>status<typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases>=<typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases>#{status}<typeAliases>
  40. <package name="com.atguigu.pojo"/>
  41. </typeAliases><typeAliases>
  42. <package name="com.atguigu.pojo"/>
  43. </typeAliases>
复制代码
对于之前的题目,就能利用if判断是否有值来执行动态的SQL语句。
但是对于存在多个搜索条件的情况下,则会出现一些问题。例如:
  1. #<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>第一个条件不需要逻辑运算符and,or等连接select<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>*<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>from<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>tb_brand<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>wherestatus<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases>=<typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases>#{status}and<typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases>company_name<typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases>like<typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>#{companyName}and<typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases>brand_name<typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases>like<typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases>#{brandName}
复制代码
对于上面的sql语句,转换为动态SQL,需要进行针对性的处理。对此有两种方法:
choose<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>(when,<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>otherwise)


choose有点像<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>Java<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>中的<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>switch<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>语句。
  1. select<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>*from<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>tb_brand<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>where<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases><typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases><typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases><typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases><typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases><typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases><typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases><typeAliases>
  22. <package name="com.atguigu.pojo"/>
  23. </typeAliases><typeAliases>
  24. <package name="com.atguigu.pojo"/>
  25. </typeAliases><typeAliases>
  26. <package name="com.atguigu.pojo"/>
  27. </typeAliases><typeAliases>
  28. <package name="com.atguigu.pojo"/>
  29. </typeAliases><typeAliases>
  30. <package name="com.atguigu.pojo"/>
  31. </typeAliases><typeAliases>
  32. <package name="com.atguigu.pojo"/>
  33. </typeAliases><typeAliases>
  34. <package name="com.atguigu.pojo"/>
  35. </typeAliases>status=<typeAliases>
  36. <package name="com.atguigu.pojo"/>
  37. </typeAliases>#{status}<typeAliases>
  38. <package name="com.atguigu.pojo"/>
  39. </typeAliases><typeAliases>
  40. <package name="com.atguigu.pojo"/>
  41. </typeAliases><typeAliases>
  42. <package name="com.atguigu.pojo"/>
  43. </typeAliases><typeAliases>
  44. <package name="com.atguigu.pojo"/>
  45. </typeAliases><typeAliases>
  46. <package name="com.atguigu.pojo"/>
  47. </typeAliases><typeAliases>
  48. <package name="com.atguigu.pojo"/>
  49. </typeAliases><typeAliases>
  50. <package name="com.atguigu.pojo"/>
  51. </typeAliases><typeAliases>
  52. <package name="com.atguigu.pojo"/>
  53. </typeAliases><typeAliases>
  54. <package name="com.atguigu.pojo"/>
  55. </typeAliases><typeAliases>
  56. <package name="com.atguigu.pojo"/>
  57. </typeAliases><typeAliases>
  58. <package name="com.atguigu.pojo"/>
  59. </typeAliases><typeAliases>
  60. <package name="com.atguigu.pojo"/>
  61. </typeAliases><typeAliases>
  62. <package name="com.atguigu.pojo"/>
  63. </typeAliases><typeAliases>
  64. <package name="com.atguigu.pojo"/>
  65. </typeAliases><typeAliases>
  66. <package name="com.atguigu.pojo"/>
  67. </typeAliases><typeAliases>
  68. <package name="com.atguigu.pojo"/>
  69. </typeAliases>company_name<typeAliases>
  70. <package name="com.atguigu.pojo"/>
  71. </typeAliases>like<typeAliases>
  72. <package name="com.atguigu.pojo"/>
  73. </typeAliases>#{companyName}<typeAliases>
  74. <package name="com.atguigu.pojo"/>
  75. </typeAliases><typeAliases>
  76. <package name="com.atguigu.pojo"/>
  77. </typeAliases><typeAliases>
  78. <package name="com.atguigu.pojo"/>
  79. </typeAliases><typeAliases>
  80. <package name="com.atguigu.pojo"/>
  81. </typeAliases><typeAliases>
  82. <package name="com.atguigu.pojo"/>
  83. </typeAliases><typeAliases>
  84. <package name="com.atguigu.pojo"/>
  85. </typeAliases><typeAliases>
  86. <package name="com.atguigu.pojo"/>
  87. </typeAliases><typeAliases>
  88. <package name="com.atguigu.pojo"/>
  89. </typeAliases><typeAliases>
  90. <package name="com.atguigu.pojo"/>
  91. </typeAliases><typeAliases>
  92. <package name="com.atguigu.pojo"/>
  93. </typeAliases><typeAliases>
  94. <package name="com.atguigu.pojo"/>
  95. </typeAliases><typeAliases>
  96. <package name="com.atguigu.pojo"/>
  97. </typeAliases><typeAliases>
  98. <package name="com.atguigu.pojo"/>
  99. </typeAliases><typeAliases>
  100. <package name="com.atguigu.pojo"/>
  101. </typeAliases><typeAliases>
  102. <package name="com.atguigu.pojo"/>
  103. </typeAliases><typeAliases>
  104. <package name="com.atguigu.pojo"/>
  105. </typeAliases>brand_name<typeAliases>
  106. <package name="com.atguigu.pojo"/>
  107. </typeAliases>like<typeAliases>
  108. <package name="com.atguigu.pojo"/>
  109. </typeAliases>#{brandName}<typeAliases>
  110. <package name="com.atguigu.pojo"/>
  111. </typeAliases><typeAliases>
  112. <package name="com.atguigu.pojo"/>
  113. </typeAliases><typeAliases>
  114. <package name="com.atguigu.pojo"/>
  115. </typeAliases><typeAliases>
  116. <package name="com.atguigu.pojo"/>
  117. </typeAliases><typeAliases>
  118. <package name="com.atguigu.pojo"/>
  119. </typeAliases><typeAliases>
  120. <package name="com.atguigu.pojo"/>
  121. </typeAliases><typeAliases>
  122. <package name="com.atguigu.pojo"/>
  123. </typeAliases><typeAliases>
  124. <package name="com.atguigu.pojo"/>
  125. </typeAliases><typeAliases>
  126. <package name="com.atguigu.pojo"/>
  127. </typeAliases><typeAliases>
  128. <package name="com.atguigu.pojo"/>
  129. </typeAliases><typeAliases>
  130. <package name="com.atguigu.pojo"/>
  131. </typeAliases><typeAliases>
  132. <package name="com.atguigu.pojo"/>
  133. </typeAliases><mappers>
  134. <typeAliases>
  135. <package name="com.atguigu.pojo"/>
  136. </typeAliases>
  137.         <package<typeAliases>
  138. <package name="com.atguigu.pojo"/>
  139. </typeAliases>name="com.atguigu.mapper"/>
  140. </mappers>1=1<typeAliases>
  141. <package name="com.atguigu.pojo"/>
  142. </typeAliases><typeAliases>
  143. <package name="com.atguigu.pojo"/>
  144. </typeAliases><typeAliases>
  145. <package name="com.atguigu.pojo"/>
  146. </typeAliases><typeAliases>
  147. <package name="com.atguigu.pojo"/>
  148. </typeAliases>
复制代码
2.添加

要点已给出,具体代码自行完成.(注意这里不用,使用)

有些人会出现程序运行成功,但数据库中没有数据的情况,是因为mybatis默认开启事务,只需在创建sqlSession时,传入参数true(设置是否自动提交)。或是执行后加上sqlSession.commit();实现手动提交
  1. SqlSession<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>sqlSession<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>=<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>sqlSessionFactory.openSession(true);
复制代码
添加-主键返回
经常会出现添加数据后需要获取数据对应的主键。
可以使用实体类封装参数(例如此处的Brand<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>brand),然后将获取的主键存放到对象中(然后再访问brand中存放的主键值)。

3.修改

3.1<typeAliases>
<package name="com.atguigu.pojo"/>
</typeAliases>修改全部字段



3.2修改动态字段

注意此处可以用标签代替set。(可以去掉末尾的逗号,如果中没有内容,则不会加上set)

4.删除

4.1删除一个


4.2批量删除


注意:mybatis默认会将数组参数封装为一个Map集合。
MyBatis参数传递

MyBatis接口方法中可以接收各种各样的参数,MyBatis底层对于这些参数进行不同的封装处理方式(MyBatis提供了ParamNameResolver类来进行参数封装)
如果想要加深理解可以去看源码或视频(源码部分笔记不好写):https://www.bilibili.com/video/BV1Qf4y1T7Hx/?p=59
单个参数:
多个参数:封装为Map集合(但不推荐使用默认的,因为可读性差。过段时间再看就不知道传的是什么东西了。建议∶将来都使用@Param注解来修改Map集合中默认的键名(arg)、并使用修改后的名称来获取值,这样可读性更高!
map.put("arg0",参数1)
map.put("arg1",参数2)
map.put("param1",参数1)
map.put("param2",参数2)
---------------------------------(@Param("username")参数1,参数2)
map.put("username",参数1)
map.put("arg1",参数2)
map.put("param1",参数1)
map.put("param2",参数2)
使用注解完成增删改查

使用注解开发会比配置文件开发更加方便(仅针对完成简单的功能)
  1. @Select("select<typeAliases>
  2. <package name="com.atguigu.pojo"/>
  3. </typeAliases>*<typeAliases>
  4. <package name="com.atguigu.pojo"/>
  5. </typeAliases>from<typeAliases>
  6. <package name="com.atguigu.pojo"/>
  7. </typeAliases>tb_user<typeAliases>
  8. <package name="com.atguigu.pojo"/>
  9. </typeAliases>where<typeAliases>
  10. <package name="com.atguigu.pojo"/>
  11. </typeAliases>id<typeAliases>
  12. <package name="com.atguigu.pojo"/>
  13. </typeAliases>=<typeAliases>
  14. <package name="com.atguigu.pojo"/>
  15. </typeAliases>#{id}")public<typeAliases>
  16. <package name="com.atguigu.pojo"/>
  17. </typeAliases>User<typeAliases>
  18. <package name="com.atguigu.pojo"/>
  19. </typeAliases>selectByld(int<typeAliases>
  20. <package name="com.atguigu.pojo"/>
  21. </typeAliases>id);
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




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