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

标题: Mybatis完整版详解 [打印本页]

作者: 前进之路    时间: 2022-9-16 17:14
标题: Mybatis完整版详解
一、简介

1.什么是MyBatis

(1)如何获得MyBatis

2.持久化

数据持久化
为什么需要持久化
3.持久层

Dao层,Service层,Controller层什么叫层
4.为什么需要Mybatis

二、第一个Mybatis程序

思路:搭建环境-->导入Mybatis-->编写代码-->测试1.搭建环境

搭建一个数据库
新建一个maven项目,并导入maven依赖,要注意导入mybatis时需要手动开启Tomcat的bin目录下startup.sh(只针对本机,Windows开启startup.bat)
  1. <dependencies>
  2. <mappers>
  3. <typeAliases>
  4. <mappers>
  5. <settings>
  6. <mappers>
  7. <mappers>
  8. <mappers>
  9.   <mapper ></mapper>
  10.   <mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><mapper ></mapper>
  13. </mappers><setting name="logImpl" value="LOG4J"/>
  14. </settings><mapper />
  15. </mappers><package name="com.tang.pojo"/>
  16. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  17.   </mappers><dependency>
  18. <mappers>
  19. <typeAliases>
  20. <mappers>
  21. <settings>
  22. <mappers>
  23. <mappers>
  24. <mappers>
  25.   <mapper ></mapper>
  26.   <mapper ></mapper>
  27. </mappers><mapper ></mapper>
  28. </mappers><mapper ></mapper>
  29. </mappers><setting name="logImpl" value="LOG4J"/>
  30. </settings><mapper />
  31. </mappers><package name="com.tang.pojo"/>
  32. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  33.   </mappers><typeAliases>
  34. <mappers>
  35. <settings>
  36. <mappers>
  37. <mappers>
  38. <mappers>
  39.   <mapper ></mapper>
  40.   <mapper ></mapper>
  41. </mappers><mapper ></mapper>
  42. </mappers><mapper ></mapper>
  43. </mappers><setting name="logImpl" value="LOG4J"/>
  44. </settings><mapper />
  45. </mappers><package name="com.tang.pojo"/>
  46. </typeAliases><properties resource="db.properties"/><groupId>mysql</groupId>
  47. <mappers>
  48. <typeAliases>
  49. <mappers>
  50. <settings>
  51. <mappers>
  52. <mappers>
  53. <mappers>
  54.   <mapper ></mapper>
  55.   <mapper ></mapper>
  56. </mappers><mapper ></mapper>
  57. </mappers><mapper ></mapper>
  58. </mappers><setting name="logImpl" value="LOG4J"/>
  59. </settings><mapper />
  60. </mappers><package name="com.tang.pojo"/>
  61. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  62.   </mappers><typeAliases>
  63. <mappers>
  64. <settings>
  65. <mappers>
  66. <mappers>
  67. <mappers>
  68.   <mapper ></mapper>
  69.   <mapper ></mapper>
  70. </mappers><mapper ></mapper>
  71. </mappers><mapper ></mapper>
  72. </mappers><setting name="logImpl" value="LOG4J"/>
  73. </settings><mapper />
  74. </mappers><package name="com.tang.pojo"/>
  75. </typeAliases><properties resource="db.properties"/><artifactId>mysql-connector-java</artifactId>
  76. <mappers>
  77. <typeAliases>
  78. <mappers>
  79. <settings>
  80. <mappers>
  81. <mappers>
  82. <mappers>
  83.   <mapper ></mapper>
  84.   <mapper ></mapper>
  85. </mappers><mapper ></mapper>
  86. </mappers><mapper ></mapper>
  87. </mappers><setting name="logImpl" value="LOG4J"/>
  88. </settings><mapper />
  89. </mappers><package name="com.tang.pojo"/>
  90. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  91.   </mappers><typeAliases>
  92. <mappers>
  93. <settings>
  94. <mappers>
  95. <mappers>
  96. <mappers>
  97.   <mapper ></mapper>
  98.   <mapper ></mapper>
  99. </mappers><mapper ></mapper>
  100. </mappers><mapper ></mapper>
  101. </mappers><setting name="logImpl" value="LOG4J"/>
  102. </settings><mapper />
  103. </mappers><package name="com.tang.pojo"/>
  104. </typeAliases><properties resource="db.properties"/><version>8.0.28</version>
  105. <mappers>
  106. <typeAliases>
  107. <mappers>
  108. <settings>
  109. <mappers>
  110. <mappers>
  111. <mappers>
  112.   <mapper ></mapper>
  113.   <mapper ></mapper>
  114. </mappers><mapper ></mapper>
  115. </mappers><mapper ></mapper>
  116. </mappers><setting name="logImpl" value="LOG4J"/>
  117. </settings><mapper />
  118. </mappers><package name="com.tang.pojo"/>
  119. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  120.   </mappers></dependency>
  121. <mappers>
  122. <typeAliases>
  123. <mappers>
  124. <settings>
  125. <mappers>
  126. <mappers>
  127. <mappers>
  128.   <mapper ></mapper>
  129.   <mapper ></mapper>
  130. </mappers><mapper ></mapper>
  131. </mappers><mapper ></mapper>
  132. </mappers><setting name="logImpl" value="LOG4J"/>
  133. </settings><mapper />
  134. </mappers><package name="com.tang.pojo"/>
  135. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  136.   </mappers><dependency>
  137. <mappers>
  138. <typeAliases>
  139. <mappers>
  140. <settings>
  141. <mappers>
  142. <mappers>
  143. <mappers>
  144.   <mapper ></mapper>
  145.   <mapper ></mapper>
  146. </mappers><mapper ></mapper>
  147. </mappers><mapper ></mapper>
  148. </mappers><setting name="logImpl" value="LOG4J"/>
  149. </settings><mapper />
  150. </mappers><package name="com.tang.pojo"/>
  151. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  152.   </mappers><typeAliases>
  153. <mappers>
  154. <settings>
  155. <mappers>
  156. <mappers>
  157. <mappers>
  158.   <mapper ></mapper>
  159.   <mapper ></mapper>
  160. </mappers><mapper ></mapper>
  161. </mappers><mapper ></mapper>
  162. </mappers><setting name="logImpl" value="LOG4J"/>
  163. </settings><mapper />
  164. </mappers><package name="com.tang.pojo"/>
  165. </typeAliases><properties resource="db.properties"/><groupId>org.mybatis</groupId>
  166. <mappers>
  167. <typeAliases>
  168. <mappers>
  169. <settings>
  170. <mappers>
  171. <mappers>
  172. <mappers>
  173.   <mapper ></mapper>
  174.   <mapper ></mapper>
  175. </mappers><mapper ></mapper>
  176. </mappers><mapper ></mapper>
  177. </mappers><setting name="logImpl" value="LOG4J"/>
  178. </settings><mapper />
  179. </mappers><package name="com.tang.pojo"/>
  180. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  181.   </mappers><typeAliases>
  182. <mappers>
  183. <settings>
  184. <mappers>
  185. <mappers>
  186. <mappers>
  187.   <mapper ></mapper>
  188.   <mapper ></mapper>
  189. </mappers><mapper ></mapper>
  190. </mappers><mapper ></mapper>
  191. </mappers><setting name="logImpl" value="LOG4J"/>
  192. </settings><mapper />
  193. </mappers><package name="com.tang.pojo"/>
  194. </typeAliases><properties resource="db.properties"/><artifactId>mybatis</artifactId>
  195. <mappers>
  196. <typeAliases>
  197. <mappers>
  198. <settings>
  199. <mappers>
  200. <mappers>
  201. <mappers>
  202.   <mapper ></mapper>
  203.   <mapper ></mapper>
  204. </mappers><mapper ></mapper>
  205. </mappers><mapper ></mapper>
  206. </mappers><setting name="logImpl" value="LOG4J"/>
  207. </settings><mapper />
  208. </mappers><package name="com.tang.pojo"/>
  209. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  210.   </mappers><typeAliases>
  211. <mappers>
  212. <settings>
  213. <mappers>
  214. <mappers>
  215. <mappers>
  216.   <mapper ></mapper>
  217.   <mapper ></mapper>
  218. </mappers><mapper ></mapper>
  219. </mappers><mapper ></mapper>
  220. </mappers><setting name="logImpl" value="LOG4J"/>
  221. </settings><mapper />
  222. </mappers><package name="com.tang.pojo"/>
  223. </typeAliases><properties resource="db.properties"/><version>3.5.6</version>
  224. <mappers>
  225. <typeAliases>
  226. <mappers>
  227. <settings>
  228. <mappers>
  229. <mappers>
  230. <mappers>
  231.   <mapper ></mapper>
  232.   <mapper ></mapper>
  233. </mappers><mapper ></mapper>
  234. </mappers><mapper ></mapper>
  235. </mappers><setting name="logImpl" value="LOG4J"/>
  236. </settings><mapper />
  237. </mappers><package name="com.tang.pojo"/>
  238. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  239.   </mappers></dependency>
  240. <mappers>
  241. <typeAliases>
  242. <mappers>
  243. <settings>
  244. <mappers>
  245. <mappers>
  246. <mappers>
  247.   <mapper ></mapper>
  248.   <mapper ></mapper>
  249. </mappers><mapper ></mapper>
  250. </mappers><mapper ></mapper>
  251. </mappers><setting name="logImpl" value="LOG4J"/>
  252. </settings><mapper />
  253. </mappers><package name="com.tang.pojo"/>
  254. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  255.   </mappers><dependency>
  256. <mappers>
  257. <typeAliases>
  258. <mappers>
  259. <settings>
  260. <mappers>
  261. <mappers>
  262. <mappers>
  263.   <mapper ></mapper>
  264.   <mapper ></mapper>
  265. </mappers><mapper ></mapper>
  266. </mappers><mapper ></mapper>
  267. </mappers><setting name="logImpl" value="LOG4J"/>
  268. </settings><mapper />
  269. </mappers><package name="com.tang.pojo"/>
  270. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  271.   </mappers><typeAliases>
  272. <mappers>
  273. <settings>
  274. <mappers>
  275. <mappers>
  276. <mappers>
  277.   <mapper ></mapper>
  278.   <mapper ></mapper>
  279. </mappers><mapper ></mapper>
  280. </mappers><mapper ></mapper>
  281. </mappers><setting name="logImpl" value="LOG4J"/>
  282. </settings><mapper />
  283. </mappers><package name="com.tang.pojo"/>
  284. </typeAliases><properties resource="db.properties"/><groupId>junit</groupId>
  285. <mappers>
  286. <typeAliases>
  287. <mappers>
  288. <settings>
  289. <mappers>
  290. <mappers>
  291. <mappers>
  292.   <mapper ></mapper>
  293.   <mapper ></mapper>
  294. </mappers><mapper ></mapper>
  295. </mappers><mapper ></mapper>
  296. </mappers><setting name="logImpl" value="LOG4J"/>
  297. </settings><mapper />
  298. </mappers><package name="com.tang.pojo"/>
  299. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  300.   </mappers><typeAliases>
  301. <mappers>
  302. <settings>
  303. <mappers>
  304. <mappers>
  305. <mappers>
  306.   <mapper ></mapper>
  307.   <mapper ></mapper>
  308. </mappers><mapper ></mapper>
  309. </mappers><mapper ></mapper>
  310. </mappers><setting name="logImpl" value="LOG4J"/>
  311. </settings><mapper />
  312. </mappers><package name="com.tang.pojo"/>
  313. </typeAliases><properties resource="db.properties"/><artifactId>junit</artifactId>
  314. <mappers>
  315. <typeAliases>
  316. <mappers>
  317. <settings>
  318. <mappers>
  319. <mappers>
  320. <mappers>
  321.   <mapper ></mapper>
  322.   <mapper ></mapper>
  323. </mappers><mapper ></mapper>
  324. </mappers><mapper ></mapper>
  325. </mappers><setting name="logImpl" value="LOG4J"/>
  326. </settings><mapper />
  327. </mappers><package name="com.tang.pojo"/>
  328. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  329.   </mappers><typeAliases>
  330. <mappers>
  331. <settings>
  332. <mappers>
  333. <mappers>
  334. <mappers>
  335.   <mapper ></mapper>
  336.   <mapper ></mapper>
  337. </mappers><mapper ></mapper>
  338. </mappers><mapper ></mapper>
  339. </mappers><setting name="logImpl" value="LOG4J"/>
  340. </settings><mapper />
  341. </mappers><package name="com.tang.pojo"/>
  342. </typeAliases><properties resource="db.properties"/><version>4.13.1</version>
  343. <mappers>
  344. <typeAliases>
  345. <mappers>
  346. <settings>
  347. <mappers>
  348. <mappers>
  349. <mappers>
  350.   <mapper ></mapper>
  351.   <mapper ></mapper>
  352. </mappers><mapper ></mapper>
  353. </mappers><mapper ></mapper>
  354. </mappers><setting name="logImpl" value="LOG4J"/>
  355. </settings><mapper />
  356. </mappers><package name="com.tang.pojo"/>
  357. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  358.   </mappers></dependency>
  359. <typeAliases>
  360. <mappers>
  361. <settings>
  362. <mappers>
  363. <mappers>
  364. <mappers>
  365.   <mapper ></mapper>
  366.   <mapper ></mapper>
  367. </mappers><mapper ></mapper>
  368. </mappers><mapper ></mapper>
  369. </mappers><setting name="logImpl" value="LOG4J"/>
  370. </settings><mapper />
  371. </mappers><package name="com.tang.pojo"/>
  372. </typeAliases><properties resource="db.properties"/></dependencies>
复制代码
2.创建一个模块

编写mybatis的核心配置文件

mybatis-config.xml文件代码
  1.   <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. <mappers>
  4. <typeAliases>
  5. <mappers>
  6. <settings>
  7. <mappers>
  8. <mappers>
  9. <mappers>
  10.   <mapper ></mapper>
  11.   <mapper ></mapper>
  12. </mappers><mapper ></mapper>
  13. </mappers><mapper ></mapper>
  14. </mappers><setting name="logImpl" value="LOG4J"/>
  15. </settings><mapper />
  16. </mappers><package name="com.tang.pojo"/>
  17. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  18.   </mappers>PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  19. <mappers>
  20. <typeAliases>
  21. <mappers>
  22. <settings>
  23. <mappers>
  24. <mappers>
  25. <mappers>
  26.   <mapper ></mapper>
  27.   <mapper ></mapper>
  28. </mappers><mapper ></mapper>
  29. </mappers><mapper ></mapper>
  30. </mappers><setting name="logImpl" value="LOG4J"/>
  31. </settings><mapper />
  32. </mappers><package name="com.tang.pojo"/>
  33. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  34.   </mappers>"http://mybatis.org/dtd/mybatis-3-config.dtd">
  35. <configuration>
  36. <typeAliases>
  37. <mappers>
  38. <settings>
  39. <mappers>
  40. <mappers>
  41. <mappers>
  42.   <mapper ></mapper>
  43.   <mapper ></mapper>
  44. </mappers><mapper ></mapper>
  45. </mappers><mapper ></mapper>
  46. </mappers><setting name="logImpl" value="LOG4J"/>
  47. </settings><mapper />
  48. </mappers><package name="com.tang.pojo"/>
  49. </typeAliases><properties resource="db.properties"/><environments default="development">
  50. <mappers>
  51. <typeAliases>
  52. <mappers>
  53. <settings>
  54. <mappers>
  55. <mappers>
  56. <mappers>
  57.   <mapper ></mapper>
  58.   <mapper ></mapper>
  59. </mappers><mapper ></mapper>
  60. </mappers><mapper ></mapper>
  61. </mappers><setting name="logImpl" value="LOG4J"/>
  62. </settings><mapper />
  63. </mappers><package name="com.tang.pojo"/>
  64. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  65.   </mappers><environment id="development">
  66. <mappers>
  67. <typeAliases>
  68. <mappers>
  69. <settings>
  70. <mappers>
  71. <mappers>
  72. <mappers>
  73.   <mapper ></mapper>
  74.   <mapper ></mapper>
  75. </mappers><mapper ></mapper>
  76. </mappers><mapper ></mapper>
  77. </mappers><setting name="logImpl" value="LOG4J"/>
  78. </settings><mapper />
  79. </mappers><package name="com.tang.pojo"/>
  80. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  81.   </mappers><typeAliases>
  82. <mappers>
  83. <settings>
  84. <mappers>
  85. <mappers>
  86. <mappers>
  87.   <mapper ></mapper>
  88.   <mapper ></mapper>
  89. </mappers><mapper ></mapper>
  90. </mappers><mapper ></mapper>
  91. </mappers><setting name="logImpl" value="LOG4J"/>
  92. </settings><mapper />
  93. </mappers><package name="com.tang.pojo"/>
  94. </typeAliases><properties resource="db.properties"/><transactionManager type="JDBC"/>
  95. <mappers>
  96. <typeAliases>
  97. <mappers>
  98. <settings>
  99. <mappers>
  100. <mappers>
  101. <mappers>
  102.   <mapper ></mapper>
  103.   <mapper ></mapper>
  104. </mappers><mapper ></mapper>
  105. </mappers><mapper ></mapper>
  106. </mappers><setting name="logImpl" value="LOG4J"/>
  107. </settings><mapper />
  108. </mappers><package name="com.tang.pojo"/>
  109. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  110.   </mappers><typeAliases>
  111. <mappers>
  112. <settings>
  113. <mappers>
  114. <mappers>
  115. <mappers>
  116.   <mapper ></mapper>
  117.   <mapper ></mapper>
  118. </mappers><mapper ></mapper>
  119. </mappers><mapper ></mapper>
  120. </mappers><setting name="logImpl" value="LOG4J"/>
  121. </settings><mapper />
  122. </mappers><package name="com.tang.pojo"/>
  123. </typeAliases><properties resource="db.properties"/><dataSource type="POOLED">
  124. <mappers>
  125. <typeAliases>
  126. <mappers>
  127. <settings>
  128. <mappers>
  129. <mappers>
  130. <mappers>
  131.   <mapper ></mapper>
  132.   <mapper ></mapper>
  133. </mappers><mapper ></mapper>
  134. </mappers><mapper ></mapper>
  135. </mappers><setting name="logImpl" value="LOG4J"/>
  136. </settings><mapper />
  137. </mappers><package name="com.tang.pojo"/>
  138. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  139.   </mappers><mappers>
  140. <typeAliases>
  141. <mappers>
  142. <settings>
  143. <mappers>
  144. <mappers>
  145. <mappers>
  146.   <mapper ></mapper>
  147.   <mapper ></mapper>
  148. </mappers><mapper ></mapper>
  149. </mappers><mapper ></mapper>
  150. </mappers><setting name="logImpl" value="LOG4J"/>
  151. </settings><mapper />
  152. </mappers><package name="com.tang.pojo"/>
  153. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  154.   </mappers><property name="driver" value="com.mysql.jdbc.Driver"/>
  155. <mappers>
  156. <typeAliases>
  157. <mappers>
  158. <settings>
  159. <mappers>
  160. <mappers>
  161. <mappers>
  162.   <mapper ></mapper>
  163.   <mapper ></mapper>
  164. </mappers><mapper ></mapper>
  165. </mappers><mapper ></mapper>
  166. </mappers><setting name="logImpl" value="LOG4J"/>
  167. </settings><mapper />
  168. </mappers><package name="com.tang.pojo"/>
  169. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  170.   </mappers><mappers>
  171. <typeAliases>
  172. <mappers>
  173. <settings>
  174. <mappers>
  175. <mappers>
  176. <mappers>
  177.   <mapper ></mapper>
  178.   <mapper ></mapper>
  179. </mappers><mapper ></mapper>
  180. </mappers><mapper ></mapper>
  181. </mappers><setting name="logImpl" value="LOG4J"/>
  182. </settings><mapper />
  183. </mappers><package name="com.tang.pojo"/>
  184. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  185.   </mappers><property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=utf8"/>
  186. <mappers>
  187. <typeAliases>
  188. <mappers>
  189. <settings>
  190. <mappers>
  191. <mappers>
  192. <mappers>
  193.   <mapper ></mapper>
  194.   <mapper ></mapper>
  195. </mappers><mapper ></mapper>
  196. </mappers><mapper ></mapper>
  197. </mappers><setting name="logImpl" value="LOG4J"/>
  198. </settings><mapper />
  199. </mappers><package name="com.tang.pojo"/>
  200. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  201.   </mappers><mappers>
  202. <typeAliases>
  203. <mappers>
  204. <settings>
  205. <mappers>
  206. <mappers>
  207. <mappers>
  208.   <mapper ></mapper>
  209.   <mapper ></mapper>
  210. </mappers><mapper ></mapper>
  211. </mappers><mapper ></mapper>
  212. </mappers><setting name="logImpl" value="LOG4J"/>
  213. </settings><mapper />
  214. </mappers><package name="com.tang.pojo"/>
  215. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  216.   </mappers><property name="username" value="root"/>
  217. <mappers>
  218. <typeAliases>
  219. <mappers>
  220. <settings>
  221. <mappers>
  222. <mappers>
  223. <mappers>
  224.   <mapper ></mapper>
  225.   <mapper ></mapper>
  226. </mappers><mapper ></mapper>
  227. </mappers><mapper ></mapper>
  228. </mappers><setting name="logImpl" value="LOG4J"/>
  229. </settings><mapper />
  230. </mappers><package name="com.tang.pojo"/>
  231. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  232.   </mappers><mappers>
  233. <typeAliases>
  234. <mappers>
  235. <settings>
  236. <mappers>
  237. <mappers>
  238. <mappers>
  239.   <mapper ></mapper>
  240.   <mapper ></mapper>
  241. </mappers><mapper ></mapper>
  242. </mappers><mapper ></mapper>
  243. </mappers><setting name="logImpl" value="LOG4J"/>
  244. </settings><mapper />
  245. </mappers><package name="com.tang.pojo"/>
  246. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  247.   </mappers><property name="password" value="root123456"/>
  248. <mappers>
  249. <typeAliases>
  250. <mappers>
  251. <settings>
  252. <mappers>
  253. <mappers>
  254. <mappers>
  255.   <mapper ></mapper>
  256.   <mapper ></mapper>
  257. </mappers><mapper ></mapper>
  258. </mappers><mapper ></mapper>
  259. </mappers><setting name="logImpl" value="LOG4J"/>
  260. </settings><mapper />
  261. </mappers><package name="com.tang.pojo"/>
  262. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  263.   </mappers><typeAliases>
  264. <mappers>
  265. <settings>
  266. <mappers>
  267. <mappers>
  268. <mappers>
  269.   <mapper ></mapper>
  270.   <mapper ></mapper>
  271. </mappers><mapper ></mapper>
  272. </mappers><mapper ></mapper>
  273. </mappers><setting name="logImpl" value="LOG4J"/>
  274. </settings><mapper />
  275. </mappers><package name="com.tang.pojo"/>
  276. </typeAliases><properties resource="db.properties"/></dataSource>
  277. <mappers>
  278. <typeAliases>
  279. <mappers>
  280. <settings>
  281. <mappers>
  282. <mappers>
  283. <mappers>
  284.   <mapper ></mapper>
  285.   <mapper ></mapper>
  286. </mappers><mapper ></mapper>
  287. </mappers><mapper ></mapper>
  288. </mappers><setting name="logImpl" value="LOG4J"/>
  289. </settings><mapper />
  290. </mappers><package name="com.tang.pojo"/>
  291. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  292.   </mappers></environment>
  293. <typeAliases>
  294. <mappers>
  295. <settings>
  296. <mappers>
  297. <mappers>
  298. <mappers>
  299.   <mapper ></mapper>
  300.   <mapper ></mapper>
  301. </mappers><mapper ></mapper>
  302. </mappers><mapper ></mapper>
  303. </mappers><setting name="logImpl" value="LOG4J"/>
  304. </settings><mapper />
  305. </mappers><package name="com.tang.pojo"/>
  306. </typeAliases><properties resource="db.properties"/></environments>
  307. <typeAliases>
  308. <mappers>
  309. <settings>
  310. <mappers>
  311. <mappers>
  312. <mappers>
  313.   <mapper ></mapper>
  314.   <mapper ></mapper>
  315. </mappers><mapper ></mapper>
  316. </mappers><mapper ></mapper>
  317. </mappers><setting name="logImpl" value="LOG4J"/>
  318. </settings><mapper />
  319. </mappers><package name="com.tang.pojo"/>
  320. </typeAliases><properties resource="db.properties"/><mappers>
  321. <mappers>
  322. <typeAliases>
  323. <mappers>
  324. <settings>
  325. <mappers>
  326. <mappers>
  327. <mappers>
  328.   <mapper ></mapper>
  329.   <mapper ></mapper>
  330. </mappers><mapper ></mapper>
  331. </mappers><mapper ></mapper>
  332. </mappers><setting name="logImpl" value="LOG4J"/>
  333. </settings><mapper />
  334. </mappers><package name="com.tang.pojo"/>
  335. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  336.   </mappers><mapper resource="com/tang/dao/UserMapper.xml"/>
  337. <typeAliases>
  338. <mappers>
  339. <settings>
  340. <mappers>
  341. <mappers>
  342. <mappers>
  343.   <mapper ></mapper>
  344.   <mapper ></mapper>
  345. </mappers><mapper ></mapper>
  346. </mappers><mapper ></mapper>
  347. </mappers><setting name="logImpl" value="LOG4J"/>
  348. </settings><mapper />
  349. </mappers><package name="com.tang.pojo"/>
  350. </typeAliases><properties resource="db.properties"/></mappers>
  351. </configuration>
复制代码
注意:这里如果没写加载驱动的话会报以下错误
org.apache.ibatis.exceptions.PersistenceException:
Error querying database.  Cause: java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null

但是写了又会说会自动加载,加载多余,不过这并不是错误,因此还是写上安全
编写mybatis工具类
  1. //sqlSessionFactory-->sqlSession
  2. public class MybatisUtils {
  3. <typeAliases>
  4. <mappers>
  5. <settings>
  6. <mappers>
  7. <mappers>
  8. <mappers>
  9.   <mapper ></mapper>
  10.   <mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><mapper ></mapper>
  13. </mappers><setting name="logImpl" value="LOG4J"/>
  14. </settings><mapper />
  15. </mappers><package name="com.tang.pojo"/>
  16. </typeAliases><properties resource="db.properties"/>private static SqlSessionFactory sqlSessionFactory;
  17. <typeAliases>
  18. <mappers>
  19. <settings>
  20. <mappers>
  21. <mappers>
  22. <mappers>
  23.   <mapper ></mapper>
  24.   <mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><mapper ></mapper>
  27. </mappers><setting name="logImpl" value="LOG4J"/>
  28. </settings><mapper />
  29. </mappers><package name="com.tang.pojo"/>
  30. </typeAliases><properties resource="db.properties"/>static{
  31. <mappers>
  32. <typeAliases>
  33. <mappers>
  34. <settings>
  35. <mappers>
  36. <mappers>
  37. <mappers>
  38.   <mapper ></mapper>
  39.   <mapper ></mapper>
  40. </mappers><mapper ></mapper>
  41. </mappers><mapper ></mapper>
  42. </mappers><setting name="logImpl" value="LOG4J"/>
  43. </settings><mapper />
  44. </mappers><package name="com.tang.pojo"/>
  45. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  46.   </mappers>try {
  47. <mappers>
  48. <typeAliases>
  49. <mappers>
  50. <settings>
  51. <mappers>
  52. <mappers>
  53. <mappers>
  54.   <mapper ></mapper>
  55.   <mapper ></mapper>
  56. </mappers><mapper ></mapper>
  57. </mappers><mapper ></mapper>
  58. </mappers><setting name="logImpl" value="LOG4J"/>
  59. </settings><mapper />
  60. </mappers><package name="com.tang.pojo"/>
  61. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  62.   </mappers><typeAliases>
  63. <mappers>
  64. <settings>
  65. <mappers>
  66. <mappers>
  67. <mappers>
  68.   <mapper ></mapper>
  69.   <mapper ></mapper>
  70. </mappers><mapper ></mapper>
  71. </mappers><mapper ></mapper>
  72. </mappers><setting name="logImpl" value="LOG4J"/>
  73. </settings><mapper />
  74. </mappers><package name="com.tang.pojo"/>
  75. </typeAliases><properties resource="db.properties"/>//使用Mybatis第一步,获取sqlSessionFactory对象
  76. <mappers>
  77. <typeAliases>
  78. <mappers>
  79. <settings>
  80. <mappers>
  81. <mappers>
  82. <mappers>
  83.   <mapper ></mapper>
  84.   <mapper ></mapper>
  85. </mappers><mapper ></mapper>
  86. </mappers><mapper ></mapper>
  87. </mappers><setting name="logImpl" value="LOG4J"/>
  88. </settings><mapper />
  89. </mappers><package name="com.tang.pojo"/>
  90. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  91.   </mappers><typeAliases>
  92. <mappers>
  93. <settings>
  94. <mappers>
  95. <mappers>
  96. <mappers>
  97.   <mapper ></mapper>
  98.   <mapper ></mapper>
  99. </mappers><mapper ></mapper>
  100. </mappers><mapper ></mapper>
  101. </mappers><setting name="logImpl" value="LOG4J"/>
  102. </settings><mapper />
  103. </mappers><package name="com.tang.pojo"/>
  104. </typeAliases><properties resource="db.properties"/>//这三行代码是从mybatis中文文档中获取到的,规定这么写的
  105. <mappers>
  106. <typeAliases>
  107. <mappers>
  108. <settings>
  109. <mappers>
  110. <mappers>
  111. <mappers>
  112.   <mapper ></mapper>
  113.   <mapper ></mapper>
  114. </mappers><mapper ></mapper>
  115. </mappers><mapper ></mapper>
  116. </mappers><setting name="logImpl" value="LOG4J"/>
  117. </settings><mapper />
  118. </mappers><package name="com.tang.pojo"/>
  119. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  120.   </mappers><typeAliases>
  121. <mappers>
  122. <settings>
  123. <mappers>
  124. <mappers>
  125. <mappers>
  126.   <mapper ></mapper>
  127.   <mapper ></mapper>
  128. </mappers><mapper ></mapper>
  129. </mappers><mapper ></mapper>
  130. </mappers><setting name="logImpl" value="LOG4J"/>
  131. </settings><mapper />
  132. </mappers><package name="com.tang.pojo"/>
  133. </typeAliases><properties resource="db.properties"/>String resource = "mybatis-config.xml";//这里写上自己的mybatis配置文件的文件名即可
  134. <mappers>
  135. <typeAliases>
  136. <mappers>
  137. <settings>
  138. <mappers>
  139. <mappers>
  140. <mappers>
  141.   <mapper ></mapper>
  142.   <mapper ></mapper>
  143. </mappers><mapper ></mapper>
  144. </mappers><mapper ></mapper>
  145. </mappers><setting name="logImpl" value="LOG4J"/>
  146. </settings><mapper />
  147. </mappers><package name="com.tang.pojo"/>
  148. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  149.   </mappers><typeAliases>
  150. <mappers>
  151. <settings>
  152. <mappers>
  153. <mappers>
  154. <mappers>
  155.   <mapper ></mapper>
  156.   <mapper ></mapper>
  157. </mappers><mapper ></mapper>
  158. </mappers><mapper ></mapper>
  159. </mappers><setting name="logImpl" value="LOG4J"/>
  160. </settings><mapper />
  161. </mappers><package name="com.tang.pojo"/>
  162. </typeAliases><properties resource="db.properties"/>InputStream inputStream = Resources.getResourceAsStream(resource);
  163. <mappers>
  164. <typeAliases>
  165. <mappers>
  166. <settings>
  167. <mappers>
  168. <mappers>
  169. <mappers>
  170.   <mapper ></mapper>
  171.   <mapper ></mapper>
  172. </mappers><mapper ></mapper>
  173. </mappers><mapper ></mapper>
  174. </mappers><setting name="logImpl" value="LOG4J"/>
  175. </settings><mapper />
  176. </mappers><package name="com.tang.pojo"/>
  177. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  178.   </mappers><typeAliases>
  179. <mappers>
  180. <settings>
  181. <mappers>
  182. <mappers>
  183. <mappers>
  184.   <mapper ></mapper>
  185.   <mapper ></mapper>
  186. </mappers><mapper ></mapper>
  187. </mappers><mapper ></mapper>
  188. </mappers><setting name="logImpl" value="LOG4J"/>
  189. </settings><mapper />
  190. </mappers><package name="com.tang.pojo"/>
  191. </typeAliases><properties resource="db.properties"/>sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  192. <mappers>
  193. <typeAliases>
  194. <mappers>
  195. <settings>
  196. <mappers>
  197. <mappers>
  198. <mappers>
  199.   <mapper ></mapper>
  200.   <mapper ></mapper>
  201. </mappers><mapper ></mapper>
  202. </mappers><mapper ></mapper>
  203. </mappers><setting name="logImpl" value="LOG4J"/>
  204. </settings><mapper />
  205. </mappers><package name="com.tang.pojo"/>
  206. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  207.   </mappers>} catch (IOException e) {
  208. <mappers>
  209. <typeAliases>
  210. <mappers>
  211. <settings>
  212. <mappers>
  213. <mappers>
  214. <mappers>
  215.   <mapper ></mapper>
  216.   <mapper ></mapper>
  217. </mappers><mapper ></mapper>
  218. </mappers><mapper ></mapper>
  219. </mappers><setting name="logImpl" value="LOG4J"/>
  220. </settings><mapper />
  221. </mappers><package name="com.tang.pojo"/>
  222. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  223.   </mappers><typeAliases>
  224. <mappers>
  225. <settings>
  226. <mappers>
  227. <mappers>
  228. <mappers>
  229.   <mapper ></mapper>
  230.   <mapper ></mapper>
  231. </mappers><mapper ></mapper>
  232. </mappers><mapper ></mapper>
  233. </mappers><setting name="logImpl" value="LOG4J"/>
  234. </settings><mapper />
  235. </mappers><package name="com.tang.pojo"/>
  236. </typeAliases><properties resource="db.properties"/>e.printStackTrace();
  237. <mappers>
  238. <typeAliases>
  239. <mappers>
  240. <settings>
  241. <mappers>
  242. <mappers>
  243. <mappers>
  244.   <mapper ></mapper>
  245.   <mapper ></mapper>
  246. </mappers><mapper ></mapper>
  247. </mappers><mapper ></mapper>
  248. </mappers><setting name="logImpl" value="LOG4J"/>
  249. </settings><mapper />
  250. </mappers><package name="com.tang.pojo"/>
  251. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  252.   </mappers>}
  253. <typeAliases>
  254. <mappers>
  255. <settings>
  256. <mappers>
  257. <mappers>
  258. <mappers>
  259.   <mapper ></mapper>
  260.   <mapper ></mapper>
  261. </mappers><mapper ></mapper>
  262. </mappers><mapper ></mapper>
  263. </mappers><setting name="logImpl" value="LOG4J"/>
  264. </settings><mapper />
  265. </mappers><package name="com.tang.pojo"/>
  266. </typeAliases><properties resource="db.properties"/>}
  267. <typeAliases>
  268. <mappers>
  269. <settings>
  270. <mappers>
  271. <mappers>
  272. <mappers>
  273.   <mapper ></mapper>
  274.   <mapper ></mapper>
  275. </mappers><mapper ></mapper>
  276. </mappers><mapper ></mapper>
  277. </mappers><setting name="logImpl" value="LOG4J"/>
  278. </settings><mapper />
  279. </mappers><package name="com.tang.pojo"/>
  280. </typeAliases><properties resource="db.properties"/>//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
  281. <typeAliases>
  282. <mappers>
  283. <settings>
  284. <mappers>
  285. <mappers>
  286. <mappers>
  287.   <mapper ></mapper>
  288.   <mapper ></mapper>
  289. </mappers><mapper ></mapper>
  290. </mappers><mapper ></mapper>
  291. </mappers><setting name="logImpl" value="LOG4J"/>
  292. </settings><mapper />
  293. </mappers><package name="com.tang.pojo"/>
  294. </typeAliases><properties resource="db.properties"/>// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
  295. <typeAliases>
  296. <mappers>
  297. <settings>
  298. <mappers>
  299. <mappers>
  300. <mappers>
  301.   <mapper ></mapper>
  302.   <mapper ></mapper>
  303. </mappers><mapper ></mapper>
  304. </mappers><mapper ></mapper>
  305. </mappers><setting name="logImpl" value="LOG4J"/>
  306. </settings><mapper />
  307. </mappers><package name="com.tang.pojo"/>
  308. </typeAliases><properties resource="db.properties"/>public static SqlSession getSqlSession(){
  309. <mappers>
  310. <typeAliases>
  311. <mappers>
  312. <settings>
  313. <mappers>
  314. <mappers>
  315. <mappers>
  316.   <mapper ></mapper>
  317.   <mapper ></mapper>
  318. </mappers><mapper ></mapper>
  319. </mappers><mapper ></mapper>
  320. </mappers><setting name="logImpl" value="LOG4J"/>
  321. </settings><mapper />
  322. </mappers><package name="com.tang.pojo"/>
  323. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  324.   </mappers>SqlSession sqlSession = sqlSessionFactory.openSession();
  325. <mappers>
  326. <typeAliases>
  327. <mappers>
  328. <settings>
  329. <mappers>
  330. <mappers>
  331. <mappers>
  332.   <mapper ></mapper>
  333.   <mapper ></mapper>
  334. </mappers><mapper ></mapper>
  335. </mappers><mapper ></mapper>
  336. </mappers><setting name="logImpl" value="LOG4J"/>
  337. </settings><mapper />
  338. </mappers><package name="com.tang.pojo"/>
  339. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  340.   </mappers>return sqlSession;
  341. <typeAliases>
  342. <mappers>
  343. <settings>
  344. <mappers>
  345. <mappers>
  346. <mappers>
  347.   <mapper ></mapper>
  348.   <mapper ></mapper>
  349. </mappers><mapper ></mapper>
  350. </mappers><mapper ></mapper>
  351. </mappers><setting name="logImpl" value="LOG4J"/>
  352. </settings><mapper />
  353. </mappers><package name="com.tang.pojo"/>
  354. </typeAliases><properties resource="db.properties"/>}
  355. }
复制代码
3.编写代码

实体类

字段名和数据里的字段一一对应
  1. public class User {
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>private int id;
  16. <typeAliases>
  17. <mappers>
  18. <settings>
  19. <mappers>
  20. <mappers>
  21. <mappers>
  22.   <mapper ></mapper>
  23.   <mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><setting name="logImpl" value="LOG4J"/>
  27. </settings><mapper />
  28. </mappers><package name="com.tang.pojo"/>
  29. </typeAliases><properties resource="db.properties"/>private String name;
  30. <typeAliases>
  31. <mappers>
  32. <settings>
  33. <mappers>
  34. <mappers>
  35. <mappers>
  36.   <mapper ></mapper>
  37.   <mapper ></mapper>
  38. </mappers><mapper ></mapper>
  39. </mappers><mapper ></mapper>
  40. </mappers><setting name="logImpl" value="LOG4J"/>
  41. </settings><mapper />
  42. </mappers><package name="com.tang.pojo"/>
  43. </typeAliases><properties resource="db.properties"/>private String pwd;
  44. <typeAliases>
  45. <mappers>
  46. <settings>
  47. <mappers>
  48. <mappers>
  49. <mappers>
  50.   <mapper ></mapper>
  51.   <mapper ></mapper>
  52. </mappers><mapper ></mapper>
  53. </mappers><mapper ></mapper>
  54. </mappers><setting name="logImpl" value="LOG4J"/>
  55. </settings><mapper />
  56. </mappers><package name="com.tang.pojo"/>
  57. </typeAliases><properties resource="db.properties"/>public User() {
  58. <typeAliases>
  59. <mappers>
  60. <settings>
  61. <mappers>
  62. <mappers>
  63. <mappers>
  64.   <mapper ></mapper>
  65.   <mapper ></mapper>
  66. </mappers><mapper ></mapper>
  67. </mappers><mapper ></mapper>
  68. </mappers><setting name="logImpl" value="LOG4J"/>
  69. </settings><mapper />
  70. </mappers><package name="com.tang.pojo"/>
  71. </typeAliases><properties resource="db.properties"/>}
  72. <typeAliases>
  73. <mappers>
  74. <settings>
  75. <mappers>
  76. <mappers>
  77. <mappers>
  78.   <mapper ></mapper>
  79.   <mapper ></mapper>
  80. </mappers><mapper ></mapper>
  81. </mappers><mapper ></mapper>
  82. </mappers><setting name="logImpl" value="LOG4J"/>
  83. </settings><mapper />
  84. </mappers><package name="com.tang.pojo"/>
  85. </typeAliases><properties resource="db.properties"/>public User(int id, String name, String pwd) {
  86. <mappers>
  87. <typeAliases>
  88. <mappers>
  89. <settings>
  90. <mappers>
  91. <mappers>
  92. <mappers>
  93.   <mapper ></mapper>
  94.   <mapper ></mapper>
  95. </mappers><mapper ></mapper>
  96. </mappers><mapper ></mapper>
  97. </mappers><setting name="logImpl" value="LOG4J"/>
  98. </settings><mapper />
  99. </mappers><package name="com.tang.pojo"/>
  100. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  101.   </mappers>this.id = id;
  102. <mappers>
  103. <typeAliases>
  104. <mappers>
  105. <settings>
  106. <mappers>
  107. <mappers>
  108. <mappers>
  109.   <mapper ></mapper>
  110.   <mapper ></mapper>
  111. </mappers><mapper ></mapper>
  112. </mappers><mapper ></mapper>
  113. </mappers><setting name="logImpl" value="LOG4J"/>
  114. </settings><mapper />
  115. </mappers><package name="com.tang.pojo"/>
  116. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  117.   </mappers>this.name = name;
  118. <mappers>
  119. <typeAliases>
  120. <mappers>
  121. <settings>
  122. <mappers>
  123. <mappers>
  124. <mappers>
  125.   <mapper ></mapper>
  126.   <mapper ></mapper>
  127. </mappers><mapper ></mapper>
  128. </mappers><mapper ></mapper>
  129. </mappers><setting name="logImpl" value="LOG4J"/>
  130. </settings><mapper />
  131. </mappers><package name="com.tang.pojo"/>
  132. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  133.   </mappers>this.pwd = pwd;
  134. <typeAliases>
  135. <mappers>
  136. <settings>
  137. <mappers>
  138. <mappers>
  139. <mappers>
  140.   <mapper ></mapper>
  141.   <mapper ></mapper>
  142. </mappers><mapper ></mapper>
  143. </mappers><mapper ></mapper>
  144. </mappers><setting name="logImpl" value="LOG4J"/>
  145. </settings><mapper />
  146. </mappers><package name="com.tang.pojo"/>
  147. </typeAliases><properties resource="db.properties"/>}
  148. <typeAliases>
  149. <mappers>
  150. <settings>
  151. <mappers>
  152. <mappers>
  153. <mappers>
  154.   <mapper ></mapper>
  155.   <mapper ></mapper>
  156. </mappers><mapper ></mapper>
  157. </mappers><mapper ></mapper>
  158. </mappers><setting name="logImpl" value="LOG4J"/>
  159. </settings><mapper />
  160. </mappers><package name="com.tang.pojo"/>
  161. </typeAliases><properties resource="db.properties"/>public int getId() {
  162. <mappers>
  163. <typeAliases>
  164. <mappers>
  165. <settings>
  166. <mappers>
  167. <mappers>
  168. <mappers>
  169.   <mapper ></mapper>
  170.   <mapper ></mapper>
  171. </mappers><mapper ></mapper>
  172. </mappers><mapper ></mapper>
  173. </mappers><setting name="logImpl" value="LOG4J"/>
  174. </settings><mapper />
  175. </mappers><package name="com.tang.pojo"/>
  176. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  177.   </mappers>return id;
  178. <typeAliases>
  179. <mappers>
  180. <settings>
  181. <mappers>
  182. <mappers>
  183. <mappers>
  184.   <mapper ></mapper>
  185.   <mapper ></mapper>
  186. </mappers><mapper ></mapper>
  187. </mappers><mapper ></mapper>
  188. </mappers><setting name="logImpl" value="LOG4J"/>
  189. </settings><mapper />
  190. </mappers><package name="com.tang.pojo"/>
  191. </typeAliases><properties resource="db.properties"/>}
  192. <typeAliases>
  193. <mappers>
  194. <settings>
  195. <mappers>
  196. <mappers>
  197. <mappers>
  198.   <mapper ></mapper>
  199.   <mapper ></mapper>
  200. </mappers><mapper ></mapper>
  201. </mappers><mapper ></mapper>
  202. </mappers><setting name="logImpl" value="LOG4J"/>
  203. </settings><mapper />
  204. </mappers><package name="com.tang.pojo"/>
  205. </typeAliases><properties resource="db.properties"/>public void setId(int id) {
  206. <mappers>
  207. <typeAliases>
  208. <mappers>
  209. <settings>
  210. <mappers>
  211. <mappers>
  212. <mappers>
  213.   <mapper ></mapper>
  214.   <mapper ></mapper>
  215. </mappers><mapper ></mapper>
  216. </mappers><mapper ></mapper>
  217. </mappers><setting name="logImpl" value="LOG4J"/>
  218. </settings><mapper />
  219. </mappers><package name="com.tang.pojo"/>
  220. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  221.   </mappers>this.id = id;
  222. <typeAliases>
  223. <mappers>
  224. <settings>
  225. <mappers>
  226. <mappers>
  227. <mappers>
  228.   <mapper ></mapper>
  229.   <mapper ></mapper>
  230. </mappers><mapper ></mapper>
  231. </mappers><mapper ></mapper>
  232. </mappers><setting name="logImpl" value="LOG4J"/>
  233. </settings><mapper />
  234. </mappers><package name="com.tang.pojo"/>
  235. </typeAliases><properties resource="db.properties"/>}
  236. <typeAliases>
  237. <mappers>
  238. <settings>
  239. <mappers>
  240. <mappers>
  241. <mappers>
  242.   <mapper ></mapper>
  243.   <mapper ></mapper>
  244. </mappers><mapper ></mapper>
  245. </mappers><mapper ></mapper>
  246. </mappers><setting name="logImpl" value="LOG4J"/>
  247. </settings><mapper />
  248. </mappers><package name="com.tang.pojo"/>
  249. </typeAliases><properties resource="db.properties"/>public String getName() {
  250. <mappers>
  251. <typeAliases>
  252. <mappers>
  253. <settings>
  254. <mappers>
  255. <mappers>
  256. <mappers>
  257.   <mapper ></mapper>
  258.   <mapper ></mapper>
  259. </mappers><mapper ></mapper>
  260. </mappers><mapper ></mapper>
  261. </mappers><setting name="logImpl" value="LOG4J"/>
  262. </settings><mapper />
  263. </mappers><package name="com.tang.pojo"/>
  264. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  265.   </mappers>return name;
  266. <typeAliases>
  267. <mappers>
  268. <settings>
  269. <mappers>
  270. <mappers>
  271. <mappers>
  272.   <mapper ></mapper>
  273.   <mapper ></mapper>
  274. </mappers><mapper ></mapper>
  275. </mappers><mapper ></mapper>
  276. </mappers><setting name="logImpl" value="LOG4J"/>
  277. </settings><mapper />
  278. </mappers><package name="com.tang.pojo"/>
  279. </typeAliases><properties resource="db.properties"/>}
  280. <typeAliases>
  281. <mappers>
  282. <settings>
  283. <mappers>
  284. <mappers>
  285. <mappers>
  286.   <mapper ></mapper>
  287.   <mapper ></mapper>
  288. </mappers><mapper ></mapper>
  289. </mappers><mapper ></mapper>
  290. </mappers><setting name="logImpl" value="LOG4J"/>
  291. </settings><mapper />
  292. </mappers><package name="com.tang.pojo"/>
  293. </typeAliases><properties resource="db.properties"/>public void setName(String name) {
  294. <mappers>
  295. <typeAliases>
  296. <mappers>
  297. <settings>
  298. <mappers>
  299. <mappers>
  300. <mappers>
  301.   <mapper ></mapper>
  302.   <mapper ></mapper>
  303. </mappers><mapper ></mapper>
  304. </mappers><mapper ></mapper>
  305. </mappers><setting name="logImpl" value="LOG4J"/>
  306. </settings><mapper />
  307. </mappers><package name="com.tang.pojo"/>
  308. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  309.   </mappers>this.name = name;
  310. <typeAliases>
  311. <mappers>
  312. <settings>
  313. <mappers>
  314. <mappers>
  315. <mappers>
  316.   <mapper ></mapper>
  317.   <mapper ></mapper>
  318. </mappers><mapper ></mapper>
  319. </mappers><mapper ></mapper>
  320. </mappers><setting name="logImpl" value="LOG4J"/>
  321. </settings><mapper />
  322. </mappers><package name="com.tang.pojo"/>
  323. </typeAliases><properties resource="db.properties"/>}
  324. <typeAliases>
  325. <mappers>
  326. <settings>
  327. <mappers>
  328. <mappers>
  329. <mappers>
  330.   <mapper ></mapper>
  331.   <mapper ></mapper>
  332. </mappers><mapper ></mapper>
  333. </mappers><mapper ></mapper>
  334. </mappers><setting name="logImpl" value="LOG4J"/>
  335. </settings><mapper />
  336. </mappers><package name="com.tang.pojo"/>
  337. </typeAliases><properties resource="db.properties"/>public String getPwd() {
  338. <mappers>
  339. <typeAliases>
  340. <mappers>
  341. <settings>
  342. <mappers>
  343. <mappers>
  344. <mappers>
  345.   <mapper ></mapper>
  346.   <mapper ></mapper>
  347. </mappers><mapper ></mapper>
  348. </mappers><mapper ></mapper>
  349. </mappers><setting name="logImpl" value="LOG4J"/>
  350. </settings><mapper />
  351. </mappers><package name="com.tang.pojo"/>
  352. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  353.   </mappers>return pwd;
  354. <typeAliases>
  355. <mappers>
  356. <settings>
  357. <mappers>
  358. <mappers>
  359. <mappers>
  360.   <mapper ></mapper>
  361.   <mapper ></mapper>
  362. </mappers><mapper ></mapper>
  363. </mappers><mapper ></mapper>
  364. </mappers><setting name="logImpl" value="LOG4J"/>
  365. </settings><mapper />
  366. </mappers><package name="com.tang.pojo"/>
  367. </typeAliases><properties resource="db.properties"/>}
  368. <typeAliases>
  369. <mappers>
  370. <settings>
  371. <mappers>
  372. <mappers>
  373. <mappers>
  374.   <mapper ></mapper>
  375.   <mapper ></mapper>
  376. </mappers><mapper ></mapper>
  377. </mappers><mapper ></mapper>
  378. </mappers><setting name="logImpl" value="LOG4J"/>
  379. </settings><mapper />
  380. </mappers><package name="com.tang.pojo"/>
  381. </typeAliases><properties resource="db.properties"/>public void setPwd(String pwd) {
  382. <mappers>
  383. <typeAliases>
  384. <mappers>
  385. <settings>
  386. <mappers>
  387. <mappers>
  388. <mappers>
  389.   <mapper ></mapper>
  390.   <mapper ></mapper>
  391. </mappers><mapper ></mapper>
  392. </mappers><mapper ></mapper>
  393. </mappers><setting name="logImpl" value="LOG4J"/>
  394. </settings><mapper />
  395. </mappers><package name="com.tang.pojo"/>
  396. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  397.   </mappers>this.pwd = pwd;
  398. <typeAliases>
  399. <mappers>
  400. <settings>
  401. <mappers>
  402. <mappers>
  403. <mappers>
  404.   <mapper ></mapper>
  405.   <mapper ></mapper>
  406. </mappers><mapper ></mapper>
  407. </mappers><mapper ></mapper>
  408. </mappers><setting name="logImpl" value="LOG4J"/>
  409. </settings><mapper />
  410. </mappers><package name="com.tang.pojo"/>
  411. </typeAliases><properties resource="db.properties"/>}
  412. <typeAliases>
  413. <mappers>
  414. <settings>
  415. <mappers>
  416. <mappers>
  417. <mappers>
  418.   <mapper ></mapper>
  419.   <mapper ></mapper>
  420. </mappers><mapper ></mapper>
  421. </mappers><mapper ></mapper>
  422. </mappers><setting name="logImpl" value="LOG4J"/>
  423. </settings><mapper />
  424. </mappers><package name="com.tang.pojo"/>
  425. </typeAliases><properties resource="db.properties"/>@Override
  426. <typeAliases>
  427. <mappers>
  428. <settings>
  429. <mappers>
  430. <mappers>
  431. <mappers>
  432.   <mapper ></mapper>
  433.   <mapper ></mapper>
  434. </mappers><mapper ></mapper>
  435. </mappers><mapper ></mapper>
  436. </mappers><setting name="logImpl" value="LOG4J"/>
  437. </settings><mapper />
  438. </mappers><package name="com.tang.pojo"/>
  439. </typeAliases><properties resource="db.properties"/>public String toString() {
  440. <mappers>
  441. <typeAliases>
  442. <mappers>
  443. <settings>
  444. <mappers>
  445. <mappers>
  446. <mappers>
  447.   <mapper ></mapper>
  448.   <mapper ></mapper>
  449. </mappers><mapper ></mapper>
  450. </mappers><mapper ></mapper>
  451. </mappers><setting name="logImpl" value="LOG4J"/>
  452. </settings><mapper />
  453. </mappers><package name="com.tang.pojo"/>
  454. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  455.   </mappers>return "User{" +
  456. <mappers>
  457. <typeAliases>
  458. <mappers>
  459. <settings>
  460. <mappers>
  461. <mappers>
  462. <mappers>
  463.   <mapper ></mapper>
  464.   <mapper ></mapper>
  465. </mappers><mapper ></mapper>
  466. </mappers><mapper ></mapper>
  467. </mappers><setting name="logImpl" value="LOG4J"/>
  468. </settings><mapper />
  469. </mappers><package name="com.tang.pojo"/>
  470. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  471.   </mappers><mappers>
  472. <typeAliases>
  473. <mappers>
  474. <settings>
  475. <mappers>
  476. <mappers>
  477. <mappers>
  478.   <mapper ></mapper>
  479.   <mapper ></mapper>
  480. </mappers><mapper ></mapper>
  481. </mappers><mapper ></mapper>
  482. </mappers><setting name="logImpl" value="LOG4J"/>
  483. </settings><mapper />
  484. </mappers><package name="com.tang.pojo"/>
  485. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  486.   </mappers>"id=" + id +
  487. <mappers>
  488. <typeAliases>
  489. <mappers>
  490. <settings>
  491. <mappers>
  492. <mappers>
  493. <mappers>
  494.   <mapper ></mapper>
  495.   <mapper ></mapper>
  496. </mappers><mapper ></mapper>
  497. </mappers><mapper ></mapper>
  498. </mappers><setting name="logImpl" value="LOG4J"/>
  499. </settings><mapper />
  500. </mappers><package name="com.tang.pojo"/>
  501. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  502.   </mappers><mappers>
  503. <typeAliases>
  504. <mappers>
  505. <settings>
  506. <mappers>
  507. <mappers>
  508. <mappers>
  509.   <mapper ></mapper>
  510.   <mapper ></mapper>
  511. </mappers><mapper ></mapper>
  512. </mappers><mapper ></mapper>
  513. </mappers><setting name="logImpl" value="LOG4J"/>
  514. </settings><mapper />
  515. </mappers><package name="com.tang.pojo"/>
  516. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  517.   </mappers>", name='" + name + '\'' +
  518. <mappers>
  519. <typeAliases>
  520. <mappers>
  521. <settings>
  522. <mappers>
  523. <mappers>
  524. <mappers>
  525.   <mapper ></mapper>
  526.   <mapper ></mapper>
  527. </mappers><mapper ></mapper>
  528. </mappers><mapper ></mapper>
  529. </mappers><setting name="logImpl" value="LOG4J"/>
  530. </settings><mapper />
  531. </mappers><package name="com.tang.pojo"/>
  532. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  533.   </mappers><mappers>
  534. <typeAliases>
  535. <mappers>
  536. <settings>
  537. <mappers>
  538. <mappers>
  539. <mappers>
  540.   <mapper ></mapper>
  541.   <mapper ></mapper>
  542. </mappers><mapper ></mapper>
  543. </mappers><mapper ></mapper>
  544. </mappers><setting name="logImpl" value="LOG4J"/>
  545. </settings><mapper />
  546. </mappers><package name="com.tang.pojo"/>
  547. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  548.   </mappers>", pwd='" + pwd + '\'' +
  549. <mappers>
  550. <typeAliases>
  551. <mappers>
  552. <settings>
  553. <mappers>
  554. <mappers>
  555. <mappers>
  556.   <mapper ></mapper>
  557.   <mapper ></mapper>
  558. </mappers><mapper ></mapper>
  559. </mappers><mapper ></mapper>
  560. </mappers><setting name="logImpl" value="LOG4J"/>
  561. </settings><mapper />
  562. </mappers><package name="com.tang.pojo"/>
  563. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  564.   </mappers><mappers>
  565. <typeAliases>
  566. <mappers>
  567. <settings>
  568. <mappers>
  569. <mappers>
  570. <mappers>
  571.   <mapper ></mapper>
  572.   <mapper ></mapper>
  573. </mappers><mapper ></mapper>
  574. </mappers><mapper ></mapper>
  575. </mappers><setting name="logImpl" value="LOG4J"/>
  576. </settings><mapper />
  577. </mappers><package name="com.tang.pojo"/>
  578. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  579.   </mappers>'}';
  580. <typeAliases>
  581. <mappers>
  582. <settings>
  583. <mappers>
  584. <mappers>
  585. <mappers>
  586.   <mapper ></mapper>
  587.   <mapper ></mapper>
  588. </mappers><mapper ></mapper>
  589. </mappers><mapper ></mapper>
  590. </mappers><setting name="logImpl" value="LOG4J"/>
  591. </settings><mapper />
  592. </mappers><package name="com.tang.pojo"/>
  593. </typeAliases><properties resource="db.properties"/>}
  594. }
复制代码
Dao接口
  1. public interface UserDao {
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>List<User> getUserList();
  16. }
复制代码
接口实现类由Impl转为一个Mapper配置文件
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. <mappers>
  4. <typeAliases>
  5. <mappers>
  6. <settings>
  7. <mappers>
  8. <mappers>
  9. <mappers>
  10.   <mapper ></mapper>
  11.   <mapper ></mapper>
  12. </mappers><mapper ></mapper>
  13. </mappers><mapper ></mapper>
  14. </mappers><setting name="logImpl" value="LOG4J"/>
  15. </settings><mapper />
  16. </mappers><package name="com.tang.pojo"/>
  17. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  18.   </mappers>PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  19. <mappers>
  20. <typeAliases>
  21. <mappers>
  22. <settings>
  23. <mappers>
  24. <mappers>
  25. <mappers>
  26.   <mapper ></mapper>
  27.   <mapper ></mapper>
  28. </mappers><mapper ></mapper>
  29. </mappers><mapper ></mapper>
  30. </mappers><setting name="logImpl" value="LOG4J"/>
  31. </settings><mapper />
  32. </mappers><package name="com.tang.pojo"/>
  33. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  34.   </mappers>"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  35. <mapper namespace="com.tang.dao.UserDao">
  36. <typeAliases>
  37. <mappers>
  38. <settings>
  39. <mappers>
  40. <mappers>
  41. <mappers>
  42.   <mapper ></mapper>
  43.   <mapper ></mapper>
  44. </mappers><mapper ></mapper>
  45. </mappers><mapper ></mapper>
  46. </mappers><setting name="logImpl" value="LOG4J"/>
  47. </settings><mapper />
  48. </mappers><package name="com.tang.pojo"/>
  49. </typeAliases><properties resource="db.properties"/>
  50. <typeAliases>
  51. <mappers>
  52. <settings>
  53. <mappers>
  54. <mappers>
  55. <mappers>
  56.   <mapper ></mapper>
  57.   <mapper ></mapper>
  58. </mappers><mapper ></mapper>
  59. </mappers><mapper ></mapper>
  60. </mappers><setting name="logImpl" value="LOG4J"/>
  61. </settings><mapper />
  62. </mappers><package name="com.tang.pojo"/>
  63. </typeAliases><properties resource="db.properties"/>
  64. <typeAliases>
  65. <mappers>
  66. <settings>
  67. <mappers>
  68. <mappers>
  69. <mappers>
  70.   <mapper ></mapper>
  71.   <mapper ></mapper>
  72. </mappers><mapper ></mapper>
  73. </mappers><mapper ></mapper>
  74. </mappers><setting name="logImpl" value="LOG4J"/>
  75. </settings><mapper />
  76. </mappers><package name="com.tang.pojo"/>
  77. </typeAliases><properties resource="db.properties"/><select id="getUserList" resultType="com.tang.pojo.User">
  78. <mappers>
  79. <typeAliases>
  80. <mappers>
  81. <settings>
  82. <mappers>
  83. <mappers>
  84. <mappers>
  85.   <mapper ></mapper>
  86.   <mapper ></mapper>
  87. </mappers><mapper ></mapper>
  88. </mappers><mapper ></mapper>
  89. </mappers><setting name="logImpl" value="LOG4J"/>
  90. </settings><mapper />
  91. </mappers><package name="com.tang.pojo"/>
  92. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  93.   </mappers>select * from mybatis.user
  94. <typeAliases>
  95. <mappers>
  96. <settings>
  97. <mappers>
  98. <mappers>
  99. <mappers>
  100.   <mapper ></mapper>
  101.   <mapper ></mapper>
  102. </mappers><mapper ></mapper>
  103. </mappers><mapper ></mapper>
  104. </mappers><setting name="logImpl" value="LOG4J"/>
  105. </settings><mapper />
  106. </mappers><package name="com.tang.pojo"/>
  107. </typeAliases><properties resource="db.properties"/></select>
  108. </mapper>
复制代码
4.测试

注意点:
运行结果图

三、CRUD(增删改查)

1.Select

选择,查询语句
编写接口
  1. //查询指定id的用户
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>User getUserById(int id);
复制代码
编写对应Dao中的sql语句
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers>select * from mybatis.user where id= #{id}<typeAliases>
  17. <mappers>
  18. <settings>
  19. <mappers>
  20. <mappers>
  21. <mappers>
  22.   <mapper ></mapper>
  23.   <mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><setting name="logImpl" value="LOG4J"/>
  27. </settings><mapper />
  28. </mappers><package name="com.tang.pojo"/>
  29. </typeAliases><properties resource="db.properties"/>
复制代码
测试
  1. //查询指定用户<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>@Test<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>public void getUserByID(){<mappers>
  28. <typeAliases>
  29. <mappers>
  30. <settings>
  31. <mappers>
  32. <mappers>
  33. <mappers>
  34.   <mapper ></mapper>
  35.   <mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><mapper ></mapper>
  38. </mappers><setting name="logImpl" value="LOG4J"/>
  39. </settings><mapper />
  40. </mappers><package name="com.tang.pojo"/>
  41. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  42.   </mappers>SqlSession sqlSession = MybatisUtils.getSqlSession();<mappers>
  43. <typeAliases>
  44. <mappers>
  45. <settings>
  46. <mappers>
  47. <mappers>
  48. <mappers>
  49.   <mapper ></mapper>
  50.   <mapper ></mapper>
  51. </mappers><mapper ></mapper>
  52. </mappers><mapper ></mapper>
  53. </mappers><setting name="logImpl" value="LOG4J"/>
  54. </settings><mapper />
  55. </mappers><package name="com.tang.pojo"/>
  56. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  57.   </mappers>UserDao mapper = sqlSession.getMapper(UserDao.class);<mappers>
  58. <typeAliases>
  59. <mappers>
  60. <settings>
  61. <mappers>
  62. <mappers>
  63. <mappers>
  64.   <mapper ></mapper>
  65.   <mapper ></mapper>
  66. </mappers><mapper ></mapper>
  67. </mappers><mapper ></mapper>
  68. </mappers><setting name="logImpl" value="LOG4J"/>
  69. </settings><mapper />
  70. </mappers><package name="com.tang.pojo"/>
  71. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  72.   </mappers>User user = mapper.getUserById(1);<mappers>
  73. <typeAliases>
  74. <mappers>
  75. <settings>
  76. <mappers>
  77. <mappers>
  78. <mappers>
  79.   <mapper ></mapper>
  80.   <mapper ></mapper>
  81. </mappers><mapper ></mapper>
  82. </mappers><mapper ></mapper>
  83. </mappers><setting name="logImpl" value="LOG4J"/>
  84. </settings><mapper />
  85. </mappers><package name="com.tang.pojo"/>
  86. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  87.   </mappers>System.out.println(user);<mappers>
  88. <typeAliases>
  89. <mappers>
  90. <settings>
  91. <mappers>
  92. <mappers>
  93. <mappers>
  94.   <mapper ></mapper>
  95.   <mapper ></mapper>
  96. </mappers><mapper ></mapper>
  97. </mappers><mapper ></mapper>
  98. </mappers><setting name="logImpl" value="LOG4J"/>
  99. </settings><mapper />
  100. </mappers><package name="com.tang.pojo"/>
  101. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  102.   </mappers>sqlSession.close();<typeAliases>
  103. <mappers>
  104. <settings>
  105. <mappers>
  106. <mappers>
  107. <mappers>
  108.   <mapper ></mapper>
  109.   <mapper ></mapper>
  110. </mappers><mapper ></mapper>
  111. </mappers><mapper ></mapper>
  112. </mappers><setting name="logImpl" value="LOG4J"/>
  113. </settings><mapper />
  114. </mappers><package name="com.tang.pojo"/>
  115. </typeAliases><properties resource="db.properties"/>}
复制代码
2.Insert

编写接口
  1. //添加一个用户
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>int addUser(User user);
复制代码
编写对应Dao中的sql语句
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers> insert into mybatis.user(id,name,pwd) values(#{id},#{name},#{pwd})<typeAliases>
  17. <mappers>
  18. <settings>
  19. <mappers>
  20. <mappers>
  21. <mappers>
  22.   <mapper ></mapper>
  23.   <mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><setting name="logImpl" value="LOG4J"/>
  27. </settings><mapper />
  28. </mappers><package name="com.tang.pojo"/>
  29. </typeAliases><properties resource="db.properties"/>
复制代码
测试
  1. //添加用户<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>@Test<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>public void addUserTest(){<mappers>
  28. <typeAliases>
  29. <mappers>
  30. <settings>
  31. <mappers>
  32. <mappers>
  33. <mappers>
  34.   <mapper ></mapper>
  35.   <mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><mapper ></mapper>
  38. </mappers><setting name="logImpl" value="LOG4J"/>
  39. </settings><mapper />
  40. </mappers><package name="com.tang.pojo"/>
  41. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  42.   </mappers>SqlSession sqlSession = MybatisUtils.getSqlSession();<mappers>
  43. <typeAliases>
  44. <mappers>
  45. <settings>
  46. <mappers>
  47. <mappers>
  48. <mappers>
  49.   <mapper ></mapper>
  50.   <mapper ></mapper>
  51. </mappers><mapper ></mapper>
  52. </mappers><mapper ></mapper>
  53. </mappers><setting name="logImpl" value="LOG4J"/>
  54. </settings><mapper />
  55. </mappers><package name="com.tang.pojo"/>
  56. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  57.   </mappers>UserDao mapper = sqlSession.getMapper(UserDao.class);<mappers>
  58. <typeAliases>
  59. <mappers>
  60. <settings>
  61. <mappers>
  62. <mappers>
  63. <mappers>
  64.   <mapper ></mapper>
  65.   <mapper ></mapper>
  66. </mappers><mapper ></mapper>
  67. </mappers><mapper ></mapper>
  68. </mappers><setting name="logImpl" value="LOG4J"/>
  69. </settings><mapper />
  70. </mappers><package name="com.tang.pojo"/>
  71. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  72.   </mappers>mapper.addUser(new User(4,"twq","1233"));<mappers>
  73. <typeAliases>
  74. <mappers>
  75. <settings>
  76. <mappers>
  77. <mappers>
  78. <mappers>
  79.   <mapper ></mapper>
  80.   <mapper ></mapper>
  81. </mappers><mapper ></mapper>
  82. </mappers><mapper ></mapper>
  83. </mappers><setting name="logImpl" value="LOG4J"/>
  84. </settings><mapper />
  85. </mappers><package name="com.tang.pojo"/>
  86. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  87.   </mappers>sqlSession.commit();//增删改必须要提交事务,否则在数据库中就无法查看增删改后的结果<mappers>
  88. <typeAliases>
  89. <mappers>
  90. <settings>
  91. <mappers>
  92. <mappers>
  93. <mappers>
  94.   <mapper ></mapper>
  95.   <mapper ></mapper>
  96. </mappers><mapper ></mapper>
  97. </mappers><mapper ></mapper>
  98. </mappers><setting name="logImpl" value="LOG4J"/>
  99. </settings><mapper />
  100. </mappers><package name="com.tang.pojo"/>
  101. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  102.   </mappers>sqlSession.close();<typeAliases>
  103. <mappers>
  104. <settings>
  105. <mappers>
  106. <mappers>
  107. <mappers>
  108.   <mapper ></mapper>
  109.   <mapper ></mapper>
  110. </mappers><mapper ></mapper>
  111. </mappers><mapper ></mapper>
  112. </mappers><setting name="logImpl" value="LOG4J"/>
  113. </settings><mapper />
  114. </mappers><package name="com.tang.pojo"/>
  115. </typeAliases><properties resource="db.properties"/>}
复制代码
3.update

编写接口
  1. //修改一个用户
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>int updateUser(User user);
复制代码
编写对应Dao中的sql语句
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers> update mybatis.user set name=#{name},pwd=#{pwd}  where id=#{id};<typeAliases>
  17. <mappers>
  18. <settings>
  19. <mappers>
  20. <mappers>
  21. <mappers>
  22.   <mapper ></mapper>
  23.   <mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><setting name="logImpl" value="LOG4J"/>
  27. </settings><mapper />
  28. </mappers><package name="com.tang.pojo"/>
  29. </typeAliases><properties resource="db.properties"/>
复制代码
测试
  1. //修改用户<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>@Test<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>public void updateUserTest(){<mappers>
  28. <typeAliases>
  29. <mappers>
  30. <settings>
  31. <mappers>
  32. <mappers>
  33. <mappers>
  34.   <mapper ></mapper>
  35.   <mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><mapper ></mapper>
  38. </mappers><setting name="logImpl" value="LOG4J"/>
  39. </settings><mapper />
  40. </mappers><package name="com.tang.pojo"/>
  41. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  42.   </mappers>SqlSession sqlSession = MybatisUtils.getSqlSession();<mappers>
  43. <typeAliases>
  44. <mappers>
  45. <settings>
  46. <mappers>
  47. <mappers>
  48. <mappers>
  49.   <mapper ></mapper>
  50.   <mapper ></mapper>
  51. </mappers><mapper ></mapper>
  52. </mappers><mapper ></mapper>
  53. </mappers><setting name="logImpl" value="LOG4J"/>
  54. </settings><mapper />
  55. </mappers><package name="com.tang.pojo"/>
  56. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  57.   </mappers>UserDao mapper = sqlSession.getMapper(UserDao.class);<mappers>
  58. <typeAliases>
  59. <mappers>
  60. <settings>
  61. <mappers>
  62. <mappers>
  63. <mappers>
  64.   <mapper ></mapper>
  65.   <mapper ></mapper>
  66. </mappers><mapper ></mapper>
  67. </mappers><mapper ></mapper>
  68. </mappers><setting name="logImpl" value="LOG4J"/>
  69. </settings><mapper />
  70. </mappers><package name="com.tang.pojo"/>
  71. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  72.   </mappers>mapper.updateUser(new User(1,"唐","1234"));<mappers>
  73. <typeAliases>
  74. <mappers>
  75. <settings>
  76. <mappers>
  77. <mappers>
  78. <mappers>
  79.   <mapper ></mapper>
  80.   <mapper ></mapper>
  81. </mappers><mapper ></mapper>
  82. </mappers><mapper ></mapper>
  83. </mappers><setting name="logImpl" value="LOG4J"/>
  84. </settings><mapper />
  85. </mappers><package name="com.tang.pojo"/>
  86. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  87.   </mappers>sqlSession.commit();<mappers>
  88. <typeAliases>
  89. <mappers>
  90. <settings>
  91. <mappers>
  92. <mappers>
  93. <mappers>
  94.   <mapper ></mapper>
  95.   <mapper ></mapper>
  96. </mappers><mapper ></mapper>
  97. </mappers><mapper ></mapper>
  98. </mappers><setting name="logImpl" value="LOG4J"/>
  99. </settings><mapper />
  100. </mappers><package name="com.tang.pojo"/>
  101. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  102.   </mappers>sqlSession.close();<typeAliases>
  103. <mappers>
  104. <settings>
  105. <mappers>
  106. <mappers>
  107. <mappers>
  108.   <mapper ></mapper>
  109.   <mapper ></mapper>
  110. </mappers><mapper ></mapper>
  111. </mappers><mapper ></mapper>
  112. </mappers><setting name="logImpl" value="LOG4J"/>
  113. </settings><mapper />
  114. </mappers><package name="com.tang.pojo"/>
  115. </typeAliases><properties resource="db.properties"/>}
复制代码
4.delete

编写接口
  1. //删除一个用户
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>int deleteUser(int id);
复制代码
编写对应Dao中的sql语句
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers>delete from mybatis.user where id=#{id};<typeAliases>
  17. <mappers>
  18. <settings>
  19. <mappers>
  20. <mappers>
  21. <mappers>
  22.   <mapper ></mapper>
  23.   <mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><setting name="logImpl" value="LOG4J"/>
  27. </settings><mapper />
  28. </mappers><package name="com.tang.pojo"/>
  29. </typeAliases><properties resource="db.properties"/>
复制代码
测试
  1. @Test<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>public  void deleteUserTest(){<mappers>
  15. <typeAliases>
  16. <mappers>
  17. <settings>
  18. <mappers>
  19. <mappers>
  20. <mappers>
  21.   <mapper ></mapper>
  22.   <mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><setting name="logImpl" value="LOG4J"/>
  26. </settings><mapper />
  27. </mappers><package name="com.tang.pojo"/>
  28. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  29.   </mappers>SqlSession sqlSession = MybatisUtils.getSqlSession();<mappers>
  30. <typeAliases>
  31. <mappers>
  32. <settings>
  33. <mappers>
  34. <mappers>
  35. <mappers>
  36.   <mapper ></mapper>
  37.   <mapper ></mapper>
  38. </mappers><mapper ></mapper>
  39. </mappers><mapper ></mapper>
  40. </mappers><setting name="logImpl" value="LOG4J"/>
  41. </settings><mapper />
  42. </mappers><package name="com.tang.pojo"/>
  43. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  44.   </mappers>UserDao mapper = sqlSession.getMapper(UserDao.class);<mappers>
  45. <typeAliases>
  46. <mappers>
  47. <settings>
  48. <mappers>
  49. <mappers>
  50. <mappers>
  51.   <mapper ></mapper>
  52.   <mapper ></mapper>
  53. </mappers><mapper ></mapper>
  54. </mappers><mapper ></mapper>
  55. </mappers><setting name="logImpl" value="LOG4J"/>
  56. </settings><mapper />
  57. </mappers><package name="com.tang.pojo"/>
  58. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  59.   </mappers>mapper.deleteUser(2);<mappers>
  60. <typeAliases>
  61. <mappers>
  62. <settings>
  63. <mappers>
  64. <mappers>
  65. <mappers>
  66.   <mapper ></mapper>
  67.   <mapper ></mapper>
  68. </mappers><mapper ></mapper>
  69. </mappers><mapper ></mapper>
  70. </mappers><setting name="logImpl" value="LOG4J"/>
  71. </settings><mapper />
  72. </mappers><package name="com.tang.pojo"/>
  73. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  74.   </mappers>sqlSession.commit();<mappers>
  75. <typeAliases>
  76. <mappers>
  77. <settings>
  78. <mappers>
  79. <mappers>
  80. <mappers>
  81.   <mapper ></mapper>
  82.   <mapper ></mapper>
  83. </mappers><mapper ></mapper>
  84. </mappers><mapper ></mapper>
  85. </mappers><setting name="logImpl" value="LOG4J"/>
  86. </settings><mapper />
  87. </mappers><package name="com.tang.pojo"/>
  88. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  89.   </mappers>sqlSession.close();<typeAliases>
  90. <mappers>
  91. <settings>
  92. <mappers>
  93. <mappers>
  94. <mappers>
  95.   <mapper ></mapper>
  96.   <mapper ></mapper>
  97. </mappers><mapper ></mapper>
  98. </mappers><mapper ></mapper>
  99. </mappers><setting name="logImpl" value="LOG4J"/>
  100. </settings><mapper />
  101. </mappers><package name="com.tang.pojo"/>
  102. </typeAliases><properties resource="db.properties"/>}
复制代码
运行前user中表的数据

运行增删改查之后结果图

5.万能的map

目的:将user表中id=1的name改为“唐三唐昊”接口代码
  1. //万能的map
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>int updateUser2(Map<String,Object> map);
复制代码
对应Dao中sql代码
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>--<mappers>
  15. <typeAliases>
  16. <mappers>
  17. <settings>
  18. <mappers>
  19. <mappers>
  20. <mappers>
  21.   <mapper ></mapper>
  22.   <mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><setting name="logImpl" value="LOG4J"/>
  26. </settings><mapper />
  27. </mappers><package name="com.tang.pojo"/>
  28. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  29.   </mappers> 这里就没有必要在把user中的所有字段都写进来,用到哪个就可以写哪个字段,且传进去的字段名可以任意写<mappers>
  30. <typeAliases>
  31. <mappers>
  32. <settings>
  33. <mappers>
  34. <mappers>
  35. <mappers>
  36.   <mapper ></mapper>
  37.   <mapper ></mapper>
  38. </mappers><mapper ></mapper>
  39. </mappers><mapper ></mapper>
  40. </mappers><setting name="logImpl" value="LOG4J"/>
  41. </settings><mapper />
  42. </mappers><package name="com.tang.pojo"/>
  43. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  44.   </mappers>update mybatis.user set name=#{username}  where id=#{userid};<typeAliases>
  45. <mappers>
  46. <settings>
  47. <mappers>
  48. <mappers>
  49. <mappers>
  50.   <mapper ></mapper>
  51.   <mapper ></mapper>
  52. </mappers><mapper ></mapper>
  53. </mappers><mapper ></mapper>
  54. </mappers><setting name="logImpl" value="LOG4J"/>
  55. </settings><mapper />
  56. </mappers><package name="com.tang.pojo"/>
  57. </typeAliases><properties resource="db.properties"/>
复制代码
测试代码
  1. //map实现用户修改<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>@Test<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>public void updateUser2Test(){<mappers>
  28. <typeAliases>
  29. <mappers>
  30. <settings>
  31. <mappers>
  32. <mappers>
  33. <mappers>
  34.   <mapper ></mapper>
  35.   <mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><mapper ></mapper>
  38. </mappers><setting name="logImpl" value="LOG4J"/>
  39. </settings><mapper />
  40. </mappers><package name="com.tang.pojo"/>
  41. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  42.   </mappers>SqlSession sqlSession = MybatisUtils.getSqlSession();<mappers>
  43. <typeAliases>
  44. <mappers>
  45. <settings>
  46. <mappers>
  47. <mappers>
  48. <mappers>
  49.   <mapper ></mapper>
  50.   <mapper ></mapper>
  51. </mappers><mapper ></mapper>
  52. </mappers><mapper ></mapper>
  53. </mappers><setting name="logImpl" value="LOG4J"/>
  54. </settings><mapper />
  55. </mappers><package name="com.tang.pojo"/>
  56. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  57.   </mappers>UserDao mapper = sqlSession.getMapper(UserDao.class);<mappers>
  58. <typeAliases>
  59. <mappers>
  60. <settings>
  61. <mappers>
  62. <mappers>
  63. <mappers>
  64.   <mapper ></mapper>
  65.   <mapper ></mapper>
  66. </mappers><mapper ></mapper>
  67. </mappers><mapper ></mapper>
  68. </mappers><setting name="logImpl" value="LOG4J"/>
  69. </settings><mapper />
  70. </mappers><package name="com.tang.pojo"/>
  71. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  72.   </mappers>HashMap map = new HashMap();<mappers>
  73. <typeAliases>
  74. <mappers>
  75. <settings>
  76. <mappers>
  77. <mappers>
  78. <mappers>
  79.   <mapper ></mapper>
  80.   <mapper ></mapper>
  81. </mappers><mapper ></mapper>
  82. </mappers><mapper ></mapper>
  83. </mappers><setting name="logImpl" value="LOG4J"/>
  84. </settings><mapper />
  85. </mappers><package name="com.tang.pojo"/>
  86. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  87.   </mappers>map.put("userid",1);<mappers>
  88. <typeAliases>
  89. <mappers>
  90. <settings>
  91. <mappers>
  92. <mappers>
  93. <mappers>
  94.   <mapper ></mapper>
  95.   <mapper ></mapper>
  96. </mappers><mapper ></mapper>
  97. </mappers><mapper ></mapper>
  98. </mappers><setting name="logImpl" value="LOG4J"/>
  99. </settings><mapper />
  100. </mappers><package name="com.tang.pojo"/>
  101. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  102.   </mappers>map.put("username","唐三唐昊");<mappers>
  103. <typeAliases>
  104. <mappers>
  105. <settings>
  106. <mappers>
  107. <mappers>
  108. <mappers>
  109.   <mapper ></mapper>
  110.   <mapper ></mapper>
  111. </mappers><mapper ></mapper>
  112. </mappers><mapper ></mapper>
  113. </mappers><setting name="logImpl" value="LOG4J"/>
  114. </settings><mapper />
  115. </mappers><package name="com.tang.pojo"/>
  116. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  117.   </mappers>mapper.updateUser2(map);<mappers>
  118. <typeAliases>
  119. <mappers>
  120. <settings>
  121. <mappers>
  122. <mappers>
  123. <mappers>
  124.   <mapper ></mapper>
  125.   <mapper ></mapper>
  126. </mappers><mapper ></mapper>
  127. </mappers><mapper ></mapper>
  128. </mappers><setting name="logImpl" value="LOG4J"/>
  129. </settings><mapper />
  130. </mappers><package name="com.tang.pojo"/>
  131. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  132.   </mappers>sqlSession.commit();//增删改必须要提交事务,否则在数据库中就无法查看增删改后的结果<mappers>
  133. <typeAliases>
  134. <mappers>
  135. <settings>
  136. <mappers>
  137. <mappers>
  138. <mappers>
  139.   <mapper ></mapper>
  140.   <mapper ></mapper>
  141. </mappers><mapper ></mapper>
  142. </mappers><mapper ></mapper>
  143. </mappers><setting name="logImpl" value="LOG4J"/>
  144. </settings><mapper />
  145. </mappers><package name="com.tang.pojo"/>
  146. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  147.   </mappers>sqlSession.close();<typeAliases>
  148. <mappers>
  149. <settings>
  150. <mappers>
  151. <mappers>
  152. <mappers>
  153.   <mapper ></mapper>
  154.   <mapper ></mapper>
  155. </mappers><mapper ></mapper>
  156. </mappers><mapper ></mapper>
  157. </mappers><setting name="logImpl" value="LOG4J"/>
  158. </settings><mapper />
  159. </mappers><package name="com.tang.pojo"/>
  160. </typeAliases><properties resource="db.properties"/>}
复制代码
运行结果图

Map传递参数,直接在sql中取出key即可
对象传递参数,直接在sql中取对象的属性即可
只有一个基本类型参数的情况下,可以直接在sql中取到
6.模糊查询

目的:利用模糊查询   查询所有姓唐的人接口
  1. List<User> getUserLike(String value);
复制代码
sql代码
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers> select *from mybatis.user where name like #{value}<typeAliases>
  17. <mappers>
  18. <settings>
  19. <mappers>
  20. <mappers>
  21. <mappers>
  22.   <mapper ></mapper>
  23.   <mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><setting name="logImpl" value="LOG4J"/>
  27. </settings><mapper />
  28. </mappers><package name="com.tang.pojo"/>
  29. </typeAliases><properties resource="db.properties"/>
复制代码
测试代码
在Java代码执行的时候,传递通配符% %,不会存在sql注入的问题
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>//模糊查询<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>@Test<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>public void getUserLikeTest(){<mappers>
  41. <typeAliases>
  42. <mappers>
  43. <settings>
  44. <mappers>
  45. <mappers>
  46. <mappers>
  47.   <mapper ></mapper>
  48.   <mapper ></mapper>
  49. </mappers><mapper ></mapper>
  50. </mappers><mapper ></mapper>
  51. </mappers><setting name="logImpl" value="LOG4J"/>
  52. </settings><mapper />
  53. </mappers><package name="com.tang.pojo"/>
  54. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  55.   </mappers>SqlSession sqlSession = MybatisUtils.getSqlSession();<mappers>
  56. <typeAliases>
  57. <mappers>
  58. <settings>
  59. <mappers>
  60. <mappers>
  61. <mappers>
  62.   <mapper ></mapper>
  63.   <mapper ></mapper>
  64. </mappers><mapper ></mapper>
  65. </mappers><mapper ></mapper>
  66. </mappers><setting name="logImpl" value="LOG4J"/>
  67. </settings><mapper />
  68. </mappers><package name="com.tang.pojo"/>
  69. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  70.   </mappers>UserDao mapper = sqlSession.getMapper(UserDao.class);<mappers>
  71. <typeAliases>
  72. <mappers>
  73. <settings>
  74. <mappers>
  75. <mappers>
  76. <mappers>
  77.   <mapper ></mapper>
  78.   <mapper ></mapper>
  79. </mappers><mapper ></mapper>
  80. </mappers><mapper ></mapper>
  81. </mappers><setting name="logImpl" value="LOG4J"/>
  82. </settings><mapper />
  83. </mappers><package name="com.tang.pojo"/>
  84. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  85.   </mappers>List userLike = mapper.getUserLike("%唐%");<mappers>
  86. <typeAliases>
  87. <mappers>
  88. <settings>
  89. <mappers>
  90. <mappers>
  91. <mappers>
  92.   <mapper ></mapper>
  93.   <mapper ></mapper>
  94. </mappers><mapper ></mapper>
  95. </mappers><mapper ></mapper>
  96. </mappers><setting name="logImpl" value="LOG4J"/>
  97. </settings><mapper />
  98. </mappers><package name="com.tang.pojo"/>
  99. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  100.   </mappers>for(User user: userLike){<mappers>
  101. <typeAliases>
  102. <mappers>
  103. <settings>
  104. <mappers>
  105. <mappers>
  106. <mappers>
  107.   <mapper ></mapper>
  108.   <mapper ></mapper>
  109. </mappers><mapper ></mapper>
  110. </mappers><mapper ></mapper>
  111. </mappers><setting name="logImpl" value="LOG4J"/>
  112. </settings><mapper />
  113. </mappers><package name="com.tang.pojo"/>
  114. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  115.   </mappers><typeAliases>
  116. <mappers>
  117. <settings>
  118. <mappers>
  119. <mappers>
  120. <mappers>
  121.   <mapper ></mapper>
  122.   <mapper ></mapper>
  123. </mappers><mapper ></mapper>
  124. </mappers><mapper ></mapper>
  125. </mappers><setting name="logImpl" value="LOG4J"/>
  126. </settings><mapper />
  127. </mappers><package name="com.tang.pojo"/>
  128. </typeAliases><properties resource="db.properties"/>System.out.println(user);<mappers>
  129. <typeAliases>
  130. <mappers>
  131. <settings>
  132. <mappers>
  133. <mappers>
  134. <mappers>
  135.   <mapper ></mapper>
  136.   <mapper ></mapper>
  137. </mappers><mapper ></mapper>
  138. </mappers><mapper ></mapper>
  139. </mappers><setting name="logImpl" value="LOG4J"/>
  140. </settings><mapper />
  141. </mappers><package name="com.tang.pojo"/>
  142. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  143.   </mappers>}<mappers>
  144. <typeAliases>
  145. <mappers>
  146. <settings>
  147. <mappers>
  148. <mappers>
  149. <mappers>
  150.   <mapper ></mapper>
  151.   <mapper ></mapper>
  152. </mappers><mapper ></mapper>
  153. </mappers><mapper ></mapper>
  154. </mappers><setting name="logImpl" value="LOG4J"/>
  155. </settings><mapper />
  156. </mappers><package name="com.tang.pojo"/>
  157. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  158.   </mappers>sqlSession.close();<typeAliases>
  159. <mappers>
  160. <settings>
  161. <mappers>
  162. <mappers>
  163. <mappers>
  164.   <mapper ></mapper>
  165.   <mapper ></mapper>
  166. </mappers><mapper ></mapper>
  167. </mappers><mapper ></mapper>
  168. </mappers><setting name="logImpl" value="LOG4J"/>
  169. </settings><mapper />
  170. </mappers><package name="com.tang.pojo"/>
  171. </typeAliases><properties resource="db.properties"/>}
复制代码
在sql拼接中使用通配符,存在sql注入问题
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers>select *from mybatis.user where name like "%"#{value}"%"<typeAliases>
  17. <mappers>
  18. <settings>
  19. <mappers>
  20. <mappers>
  21. <mappers>
  22.   <mapper ></mapper>
  23.   <mapper ></mapper>
  24. </mappers><mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><setting name="logImpl" value="LOG4J"/>
  27. </settings><mapper />
  28. </mappers><package name="com.tang.pojo"/>
  29. </typeAliases><properties resource="db.properties"/>
复制代码
  1. List<User> userLike = mapper.getUserLike("唐");
复制代码
两种情况的运行结果

四、配置解析

1.核心配置文件

2.环境配置(environments)

MyBatis 可以配置成适应多种环境
不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。

学会使用配置多套运行环境,比如如下这种方式就可以选择id为test的配置环境,虽然有多套配置环境,但是最终运行的只会是其中一种
  1.   <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. <mappers>
  4. <typeAliases>
  5. <mappers>
  6. <settings>
  7. <mappers>
  8. <mappers>
  9. <mappers>
  10.   <mapper ></mapper>
  11.   <mapper ></mapper>
  12. </mappers><mapper ></mapper>
  13. </mappers><mapper ></mapper>
  14. </mappers><setting name="logImpl" value="LOG4J"/>
  15. </settings><mapper />
  16. </mappers><package name="com.tang.pojo"/>
  17. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  18.   </mappers>PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  19. <mappers>
  20. <typeAliases>
  21. <mappers>
  22. <settings>
  23. <mappers>
  24. <mappers>
  25. <mappers>
  26.   <mapper ></mapper>
  27.   <mapper ></mapper>
  28. </mappers><mapper ></mapper>
  29. </mappers><mapper ></mapper>
  30. </mappers><setting name="logImpl" value="LOG4J"/>
  31. </settings><mapper />
  32. </mappers><package name="com.tang.pojo"/>
  33. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  34.   </mappers>"http://mybatis.org/dtd/mybatis-3-config.dtd">
  35. <configuration>
  36. <typeAliases>
  37. <mappers>
  38. <settings>
  39. <mappers>
  40. <mappers>
  41. <mappers>
  42.   <mapper ></mapper>
  43.   <mapper ></mapper>
  44. </mappers><mapper ></mapper>
  45. </mappers><mapper ></mapper>
  46. </mappers><setting name="logImpl" value="LOG4J"/>
  47. </settings><mapper />
  48. </mappers><package name="com.tang.pojo"/>
  49. </typeAliases><properties resource="db.properties"/><environments default="development">
  50. <mappers>
  51. <typeAliases>
  52. <mappers>
  53. <settings>
  54. <mappers>
  55. <mappers>
  56. <mappers>
  57.   <mapper ></mapper>
  58.   <mapper ></mapper>
  59. </mappers><mapper ></mapper>
  60. </mappers><mapper ></mapper>
  61. </mappers><setting name="logImpl" value="LOG4J"/>
  62. </settings><mapper />
  63. </mappers><package name="com.tang.pojo"/>
  64. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  65.   </mappers><environment id="development">
  66. <mappers>
  67. <typeAliases>
  68. <mappers>
  69. <settings>
  70. <mappers>
  71. <mappers>
  72. <mappers>
  73.   <mapper ></mapper>
  74.   <mapper ></mapper>
  75. </mappers><mapper ></mapper>
  76. </mappers><mapper ></mapper>
  77. </mappers><setting name="logImpl" value="LOG4J"/>
  78. </settings><mapper />
  79. </mappers><package name="com.tang.pojo"/>
  80. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  81.   </mappers><typeAliases>
  82. <mappers>
  83. <settings>
  84. <mappers>
  85. <mappers>
  86. <mappers>
  87.   <mapper ></mapper>
  88.   <mapper ></mapper>
  89. </mappers><mapper ></mapper>
  90. </mappers><mapper ></mapper>
  91. </mappers><setting name="logImpl" value="LOG4J"/>
  92. </settings><mapper />
  93. </mappers><package name="com.tang.pojo"/>
  94. </typeAliases><properties resource="db.properties"/><transactionManager type="JDBC"/>
  95. <mappers>
  96. <typeAliases>
  97. <mappers>
  98. <settings>
  99. <mappers>
  100. <mappers>
  101. <mappers>
  102.   <mapper ></mapper>
  103.   <mapper ></mapper>
  104. </mappers><mapper ></mapper>
  105. </mappers><mapper ></mapper>
  106. </mappers><setting name="logImpl" value="LOG4J"/>
  107. </settings><mapper />
  108. </mappers><package name="com.tang.pojo"/>
  109. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  110.   </mappers><typeAliases>
  111. <mappers>
  112. <settings>
  113. <mappers>
  114. <mappers>
  115. <mappers>
  116.   <mapper ></mapper>
  117.   <mapper ></mapper>
  118. </mappers><mapper ></mapper>
  119. </mappers><mapper ></mapper>
  120. </mappers><setting name="logImpl" value="LOG4J"/>
  121. </settings><mapper />
  122. </mappers><package name="com.tang.pojo"/>
  123. </typeAliases><properties resource="db.properties"/><dataSource type="POOLED">
  124. <mappers>
  125. <typeAliases>
  126. <mappers>
  127. <settings>
  128. <mappers>
  129. <mappers>
  130. <mappers>
  131.   <mapper ></mapper>
  132.   <mapper ></mapper>
  133. </mappers><mapper ></mapper>
  134. </mappers><mapper ></mapper>
  135. </mappers><setting name="logImpl" value="LOG4J"/>
  136. </settings><mapper />
  137. </mappers><package name="com.tang.pojo"/>
  138. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  139.   </mappers><mappers>
  140. <typeAliases>
  141. <mappers>
  142. <settings>
  143. <mappers>
  144. <mappers>
  145. <mappers>
  146.   <mapper ></mapper>
  147.   <mapper ></mapper>
  148. </mappers><mapper ></mapper>
  149. </mappers><mapper ></mapper>
  150. </mappers><setting name="logImpl" value="LOG4J"/>
  151. </settings><mapper />
  152. </mappers><package name="com.tang.pojo"/>
  153. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  154.   </mappers><property name="driver" value="com.mysql.jdbc.Driver"/>
  155. <mappers>
  156. <typeAliases>
  157. <mappers>
  158. <settings>
  159. <mappers>
  160. <mappers>
  161. <mappers>
  162.   <mapper ></mapper>
  163.   <mapper ></mapper>
  164. </mappers><mapper ></mapper>
  165. </mappers><mapper ></mapper>
  166. </mappers><setting name="logImpl" value="LOG4J"/>
  167. </settings><mapper />
  168. </mappers><package name="com.tang.pojo"/>
  169. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  170.   </mappers><mappers>
  171. <typeAliases>
  172. <mappers>
  173. <settings>
  174. <mappers>
  175. <mappers>
  176. <mappers>
  177.   <mapper ></mapper>
  178.   <mapper ></mapper>
  179. </mappers><mapper ></mapper>
  180. </mappers><mapper ></mapper>
  181. </mappers><setting name="logImpl" value="LOG4J"/>
  182. </settings><mapper />
  183. </mappers><package name="com.tang.pojo"/>
  184. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  185.   </mappers><property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=utf8"/>
  186. <mappers>
  187. <typeAliases>
  188. <mappers>
  189. <settings>
  190. <mappers>
  191. <mappers>
  192. <mappers>
  193.   <mapper ></mapper>
  194.   <mapper ></mapper>
  195. </mappers><mapper ></mapper>
  196. </mappers><mapper ></mapper>
  197. </mappers><setting name="logImpl" value="LOG4J"/>
  198. </settings><mapper />
  199. </mappers><package name="com.tang.pojo"/>
  200. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  201.   </mappers><mappers>
  202. <typeAliases>
  203. <mappers>
  204. <settings>
  205. <mappers>
  206. <mappers>
  207. <mappers>
  208.   <mapper ></mapper>
  209.   <mapper ></mapper>
  210. </mappers><mapper ></mapper>
  211. </mappers><mapper ></mapper>
  212. </mappers><setting name="logImpl" value="LOG4J"/>
  213. </settings><mapper />
  214. </mappers><package name="com.tang.pojo"/>
  215. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  216.   </mappers><property name="username" value="root"/>
  217. <mappers>
  218. <typeAliases>
  219. <mappers>
  220. <settings>
  221. <mappers>
  222. <mappers>
  223. <mappers>
  224.   <mapper ></mapper>
  225.   <mapper ></mapper>
  226. </mappers><mapper ></mapper>
  227. </mappers><mapper ></mapper>
  228. </mappers><setting name="logImpl" value="LOG4J"/>
  229. </settings><mapper />
  230. </mappers><package name="com.tang.pojo"/>
  231. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  232.   </mappers><mappers>
  233. <typeAliases>
  234. <mappers>
  235. <settings>
  236. <mappers>
  237. <mappers>
  238. <mappers>
  239.   <mapper ></mapper>
  240.   <mapper ></mapper>
  241. </mappers><mapper ></mapper>
  242. </mappers><mapper ></mapper>
  243. </mappers><setting name="logImpl" value="LOG4J"/>
  244. </settings><mapper />
  245. </mappers><package name="com.tang.pojo"/>
  246. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  247.   </mappers><property name="password" value="root123456"/>
  248. <mappers>
  249. <typeAliases>
  250. <mappers>
  251. <settings>
  252. <mappers>
  253. <mappers>
  254. <mappers>
  255.   <mapper ></mapper>
  256.   <mapper ></mapper>
  257. </mappers><mapper ></mapper>
  258. </mappers><mapper ></mapper>
  259. </mappers><setting name="logImpl" value="LOG4J"/>
  260. </settings><mapper />
  261. </mappers><package name="com.tang.pojo"/>
  262. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  263.   </mappers><typeAliases>
  264. <mappers>
  265. <settings>
  266. <mappers>
  267. <mappers>
  268. <mappers>
  269.   <mapper ></mapper>
  270.   <mapper ></mapper>
  271. </mappers><mapper ></mapper>
  272. </mappers><mapper ></mapper>
  273. </mappers><setting name="logImpl" value="LOG4J"/>
  274. </settings><mapper />
  275. </mappers><package name="com.tang.pojo"/>
  276. </typeAliases><properties resource="db.properties"/></dataSource>
  277. <mappers>
  278. <typeAliases>
  279. <mappers>
  280. <settings>
  281. <mappers>
  282. <mappers>
  283. <mappers>
  284.   <mapper ></mapper>
  285.   <mapper ></mapper>
  286. </mappers><mapper ></mapper>
  287. </mappers><mapper ></mapper>
  288. </mappers><setting name="logImpl" value="LOG4J"/>
  289. </settings><mapper />
  290. </mappers><package name="com.tang.pojo"/>
  291. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  292.   </mappers></environment>
  293. <typeAliases>
  294. <mappers>
  295. <settings>
  296. <mappers>
  297. <mappers>
  298. <mappers>
  299.   <mapper ></mapper>
  300.   <mapper ></mapper>
  301. </mappers><mapper ></mapper>
  302. </mappers><mapper ></mapper>
  303. </mappers><setting name="logImpl" value="LOG4J"/>
  304. </settings><mapper />
  305. </mappers><package name="com.tang.pojo"/>
  306. </typeAliases><properties resource="db.properties"/></environments>
  307. <typeAliases>
  308. <mappers>
  309. <settings>
  310. <mappers>
  311. <mappers>
  312. <mappers>
  313.   <mapper ></mapper>
  314.   <mapper ></mapper>
  315. </mappers><mapper ></mapper>
  316. </mappers><mapper ></mapper>
  317. </mappers><setting name="logImpl" value="LOG4J"/>
  318. </settings><mapper />
  319. </mappers><package name="com.tang.pojo"/>
  320. </typeAliases><properties resource="db.properties"/><mappers>
  321. <mappers>
  322. <typeAliases>
  323. <mappers>
  324. <settings>
  325. <mappers>
  326. <mappers>
  327. <mappers>
  328.   <mapper ></mapper>
  329.   <mapper ></mapper>
  330. </mappers><mapper ></mapper>
  331. </mappers><mapper ></mapper>
  332. </mappers><setting name="logImpl" value="LOG4J"/>
  333. </settings><mapper />
  334. </mappers><package name="com.tang.pojo"/>
  335. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  336.   </mappers><mapper resource="com/tang/dao/UserMapper.xml"/>
  337. <typeAliases>
  338. <mappers>
  339. <settings>
  340. <mappers>
  341. <mappers>
  342. <mappers>
  343.   <mapper ></mapper>
  344.   <mapper ></mapper>
  345. </mappers><mapper ></mapper>
  346. </mappers><mapper ></mapper>
  347. </mappers><setting name="logImpl" value="LOG4J"/>
  348. </settings><mapper />
  349. </mappers><package name="com.tang.pojo"/>
  350. </typeAliases><properties resource="db.properties"/></mappers>
  351. </configuration><mappers>
  352. <typeAliases>
  353. <mappers>
  354. <settings>
  355. <mappers>
  356. <mappers>
  357. <mappers>
  358.   <mapper ></mapper>
  359.   <mapper ></mapper>
  360. </mappers><mapper ></mapper>
  361. </mappers><mapper ></mapper>
  362. </mappers><setting name="logImpl" value="LOG4J"/>
  363. </settings><mapper />
  364. </mappers><package name="com.tang.pojo"/>
  365. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  366.   </mappers><mappers>
  367. <typeAliases>
  368. <mappers>
  369. <settings>
  370. <mappers>
  371. <mappers>
  372. <mappers>
  373.   <mapper ></mapper>
  374.   <mapper ></mapper>
  375. </mappers><mapper ></mapper>
  376. </mappers><mapper ></mapper>
  377. </mappers><setting name="logImpl" value="LOG4J"/>
  378. </settings><mapper />
  379. </mappers><package name="com.tang.pojo"/>
  380. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  381.   </mappers><mappers>
  382. <typeAliases>
  383. <mappers>
  384. <settings>
  385. <mappers>
  386. <mappers>
  387. <mappers>
  388.   <mapper ></mapper>
  389.   <mapper ></mapper>
  390. </mappers><mapper ></mapper>
  391. </mappers><mapper ></mapper>
  392. </mappers><setting name="logImpl" value="LOG4J"/>
  393. </settings><mapper />
  394. </mappers><package name="com.tang.pojo"/>
  395. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  396.   </mappers><mappers>
  397. <typeAliases>
  398. <mappers>
  399. <settings>
  400. <mappers>
  401. <mappers>
  402. <mappers>
  403.   <mapper ></mapper>
  404.   <mapper ></mapper>
  405. </mappers><mapper ></mapper>
  406. </mappers><mapper ></mapper>
  407. </mappers><setting name="logImpl" value="LOG4J"/>
  408. </settings><mapper />
  409. </mappers><package name="com.tang.pojo"/>
  410. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  411.   </mappers><mappers>
  412. <typeAliases>
  413. <mappers>
  414. <settings>
  415. <mappers>
  416. <mappers>
  417. <mappers>
  418.   <mapper ></mapper>
  419.   <mapper ></mapper>
  420. </mappers><mapper ></mapper>
  421. </mappers><mapper ></mapper>
  422. </mappers><setting name="logImpl" value="LOG4J"/>
  423. </settings><mapper />
  424. </mappers><package name="com.tang.pojo"/>
  425. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  426.   </mappers><mappers>
  427. <typeAliases>
  428. <mappers>
  429. <settings>
  430. <mappers>
  431. <mappers>
  432. <mappers>
  433.   <mapper ></mapper>
  434.   <mapper ></mapper>
  435. </mappers><mapper ></mapper>
  436. </mappers><mapper ></mapper>
  437. </mappers><setting name="logImpl" value="LOG4J"/>
  438. </settings><mapper />
  439. </mappers><package name="com.tang.pojo"/>
  440. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  441.   </mappers><mappers>
  442. <typeAliases>
  443. <mappers>
  444. <settings>
  445. <mappers>
  446. <mappers>
  447. <mappers>
  448.   <mapper ></mapper>
  449.   <mapper ></mapper>
  450. </mappers><mapper ></mapper>
  451. </mappers><mapper ></mapper>
  452. </mappers><setting name="logImpl" value="LOG4J"/>
  453. </settings><mapper />
  454. </mappers><package name="com.tang.pojo"/>
  455. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  456.   </mappers><mappers>
  457. <typeAliases>
  458. <mappers>
  459. <settings>
  460. <mappers>
  461. <mappers>
  462. <mappers>
  463.   <mapper ></mapper>
  464.   <mapper ></mapper>
  465. </mappers><mapper ></mapper>
  466. </mappers><mapper ></mapper>
  467. </mappers><setting name="logImpl" value="LOG4J"/>
  468. </settings><mapper />
  469. </mappers><package name="com.tang.pojo"/>
  470. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  471.   </mappers><mappers>
  472. <typeAliases>
  473. <mappers>
  474. <settings>
  475. <mappers>
  476. <mappers>
  477. <mappers>
  478.   <mapper ></mapper>
  479.   <mapper ></mapper>
  480. </mappers><mapper ></mapper>
  481. </mappers><mapper ></mapper>
  482. </mappers><setting name="logImpl" value="LOG4J"/>
  483. </settings><mapper />
  484. </mappers><package name="com.tang.pojo"/>
  485. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  486.   </mappers><mappers>
  487. <typeAliases>
  488. <mappers>
  489. <settings>
  490. <mappers>
  491. <mappers>
  492. <mappers>
  493.   <mapper ></mapper>
  494.   <mapper ></mapper>
  495. </mappers><mapper ></mapper>
  496. </mappers><mapper ></mapper>
  497. </mappers><setting name="logImpl" value="LOG4J"/>
  498. </settings><mapper />
  499. </mappers><package name="com.tang.pojo"/>
  500. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  501.   </mappers><mappers>
  502. <typeAliases>
  503. <mappers>
  504. <settings>
  505. <mappers>
  506. <mappers>
  507. <mappers>
  508.   <mapper ></mapper>
  509.   <mapper ></mapper>
  510. </mappers><mapper ></mapper>
  511. </mappers><mapper ></mapper>
  512. </mappers><setting name="logImpl" value="LOG4J"/>
  513. </settings><mapper />
  514. </mappers><package name="com.tang.pojo"/>
  515. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  516.   </mappers><mappers>
  517. <typeAliases>
  518. <mappers>
  519. <settings>
  520. <mappers>
  521. <mappers>
  522. <mappers>
  523.   <mapper ></mapper>
  524.   <mapper ></mapper>
  525. </mappers><mapper ></mapper>
  526. </mappers><mapper ></mapper>
  527. </mappers><setting name="logImpl" value="LOG4J"/>
  528. </settings><mapper />
  529. </mappers><package name="com.tang.pojo"/>
  530. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  531.   </mappers><mappers>
  532. <typeAliases>
  533. <mappers>
  534. <settings>
  535. <mappers>
  536. <mappers>
  537. <mappers>
  538.   <mapper ></mapper>
  539.   <mapper ></mapper>
  540. </mappers><mapper ></mapper>
  541. </mappers><mapper ></mapper>
  542. </mappers><setting name="logImpl" value="LOG4J"/>
  543. </settings><mapper />
  544. </mappers><package name="com.tang.pojo"/>
  545. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  546.   </mappers><mappers>
  547. <typeAliases>
  548. <mappers>
  549. <settings>
  550. <mappers>
  551. <mappers>
  552. <mappers>
  553.   <mapper ></mapper>
  554.   <mapper ></mapper>
  555. </mappers><mapper ></mapper>
  556. </mappers><mapper ></mapper>
  557. </mappers><setting name="logImpl" value="LOG4J"/>
  558. </settings><mapper />
  559. </mappers><package name="com.tang.pojo"/>
  560. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  561.   </mappers><mappers>
  562. <typeAliases>
  563. <mappers>
  564. <settings>
  565. <mappers>
  566. <mappers>
  567. <mappers>
  568.   <mapper ></mapper>
  569.   <mapper ></mapper>
  570. </mappers><mapper ></mapper>
  571. </mappers><mapper ></mapper>
  572. </mappers><setting name="logImpl" value="LOG4J"/>
  573. </settings><mapper />
  574. </mappers><package name="com.tang.pojo"/>
  575. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  576.   </mappers><mappers>
  577. <typeAliases>
  578. <mappers>
  579. <settings>
  580. <mappers>
  581. <mappers>
  582. <mappers>
  583.   <mapper ></mapper>
  584.   <mapper ></mapper>
  585. </mappers><mapper ></mapper>
  586. </mappers><mapper ></mapper>
  587. </mappers><setting name="logImpl" value="LOG4J"/>
  588. </settings><mapper />
  589. </mappers><package name="com.tang.pojo"/>
  590. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  591.   </mappers>  
复制代码
Mybatis默认的事务管理器就是JDBC,连接池为POOLED
3.属性(properties)

我们可以通过properties属性来实现引用配置文件这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,也可通过properties元素的子元素来传递【db.properties】

编写一个配置文件
db.properties
  1. driver=com.mysql.jdbc.Driver
  2. url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8"
  3. username=root
  4. password=root123456
复制代码
在核心配置文件中引入
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>
复制代码
然后就可以通过如下的方式去读取db.properties文件里的值
  1. [/code]
  2. [list]
  3. [*]可以直接引入外部文件
  4. [*]可以在其中增加一些属性配置
  5. [*]如果两个文件有同一个字段,优先使用外部配置文件中的
  6. [/list][size=4]4.类型别名(typeAliases)[/size]
  7. 作用
  8. [list]
  9. [*]类型别名可为 Java 类型设置一个缩写名字。
  10. [*]它仅用于 XML 配置,意在降低冗余的全限定类名书写
  11. [/list][code]<mappers>
  12. <typeAliases>
  13. <mappers>
  14. <settings>
  15. <mappers>
  16. <mappers>
  17. <mappers>
  18.   <mapper ></mapper>
  19.   <mapper ></mapper>
  20. </mappers><mapper ></mapper>
  21. </mappers><mapper ></mapper>
  22. </mappers><setting name="logImpl" value="LOG4J"/>
  23. </settings><mapper />
  24. </mappers><package name="com.tang.pojo"/>
  25. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  26.   </mappers><mappers>
  27. <typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  41.   </mappers>
复制代码
也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:
扫描实体类的包,它的默认别名就为这个类的 类名,首字母小写,大写也行!
如下代码在调用到pojo包下面的类的时候可以直接使用类名的小写字母完成
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>
复制代码
在实体类比较少的时候使用第一种方式
如果实体类比较多,建议使用第二种
第一种可以DIY起别名,第二种则不行,如果非要改,需要在实体类上增加注解
在实体类上加注解给类名起别名
  1. @Alias("user")
  2. public class User {
复制代码
5.设置(settings)

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为


6.映射器(mappers)

MapperRegistry:注册绑定我们的Mapper文件;
方式一:【推荐使用】
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers><mappers>
  17. <typeAliases>
  18. <mappers>
  19. <settings>
  20. <mappers>
  21. <mappers>
  22. <mappers>
  23.   <mapper ></mapper>
  24.   <mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><mapper ></mapper>
  27. </mappers><setting name="logImpl" value="LOG4J"/>
  28. </settings><mapper />
  29. </mappers><package name="com.tang.pojo"/>
  30. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  31.   </mappers>
复制代码
方式二:使用class文件绑定注册
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>
复制代码
注意点
7.作用域(Scope)和生命周期

不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题
SqlSessionFactoryBuilder

这里面的每一个Mapper,就代表一个具体的业务
五、解决属性名和字段名不一致的问题

1.问题

数据库中的字段

新建一个项目,拷贝之前的,情况测试实体类字段不一致的情况
  1. public class User {<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>private int id;<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>private String name;<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>private String password;
复制代码
测试出现问题
  1. select * from mybatis.user where id= #{id}
  2. //类处理器,以上等价于
  3. select id,name,pwd from mybatis.user where id = #{id}
  4. //所以并未查找到pwd字段所以测试结果password为空
复制代码
解决方法:
2.resultMap

结果集映射
  1. 数据库中的字段为 id<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>name<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>pwdUser实体类字段为 id<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>name<typeAliases>
  41. <mappers>
  42. <settings>
  43. <mappers>
  44. <mappers>
  45. <mappers>
  46.   <mapper ></mapper>
  47.   <mapper ></mapper>
  48. </mappers><mapper ></mapper>
  49. </mappers><mapper ></mapper>
  50. </mappers><setting name="logImpl" value="LOG4J"/>
  51. </settings><mapper />
  52. </mappers><package name="com.tang.pojo"/>
  53. </typeAliases><properties resource="db.properties"/>password
复制代码
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers><mappers>
  17. <typeAliases>
  18. <mappers>
  19. <settings>
  20. <mappers>
  21. <mappers>
  22. <mappers>
  23.   <mapper ></mapper>
  24.   <mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><mapper ></mapper>
  27. </mappers><setting name="logImpl" value="LOG4J"/>
  28. </settings><mapper />
  29. </mappers><package name="com.tang.pojo"/>
  30. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  31.   </mappers><mappers>
  32. <typeAliases>
  33. <mappers>
  34. <settings>
  35. <mappers>
  36. <mappers>
  37. <mappers>
  38.   <mapper ></mapper>
  39.   <mapper ></mapper>
  40. </mappers><mapper ></mapper>
  41. </mappers><mapper ></mapper>
  42. </mappers><setting name="logImpl" value="LOG4J"/>
  43. </settings><mapper />
  44. </mappers><package name="com.tang.pojo"/>
  45. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  46.   </mappers>select * from mybatis.user where id= #{id}
复制代码
六、日志

1.日志工厂

如果一个数据库操作出现了异常,我们需要排错,日志就是最好的助手
曾经出现异常通常使用:sout、debug来找到异常
现在:使用日志工厂来实现

STDOUT_LOGGING标准日志输出
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers>
复制代码
2.Log4j

什么是log4j?

先导入Log4j的包
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>log4j<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>log4j<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>1.2.17
复制代码
log4j.properties
  1. #将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
  2. log4j.rootLogger=DEBUG,console,file
  3. #控制台输出的相关设置
  4. log4j.appender.console = org.apache.log4j.ConsoleAppender
  5. log4j.appender.console.Target = System.out
  6. log4j.appender.console.Threshold=DEBUG
  7. log4j.appender.console.layout = org.apache.log4j.PatternLayout
  8. log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
  9. #文件输出的相关设置
  10. log4j.appender.file = org.apache.log4j.RollingFileAppender
  11. log4j.appender.file.File=./log/tang.log
  12. log4j.appender.file.MaxFileSize=10mb
  13. log4j.appender.file.Threshold=DEBUG
  14. log4j.appender.file.layout=org.apache.log4j.PatternLayout
  15. log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
  16. #日志输出级别
  17. log4j.logger.org.mybatis=DEBUG
  18. log4j.logger.java.sql=DEBUG
  19. log4j.logger.java.sql.Statement=DEBUG
  20. log4j.logger.java.sql.ResultSet=DEBUG
  21. log4j.logger.java.sql.PreparedStatement=DEBUG
复制代码
配置log4j日志的实现
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>
复制代码
log4j的使用,直接测试


简单使用
日志级别
  1. @Test   public void testLog4j(){<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>  logger.info("info:进入了testLog4j");<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>  logger.debug("debug:进入了testLog4j");<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>  logger.error("erro:进入了testLog4j");   }
复制代码
运行结果

七、分页

1.使用Limit实现分页

接口
  1. //分页
  2. List<User> getUserByLimit(Map<String,Integer> map);
复制代码
接口的xml文件
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>select * from mybatis.user limit #{startIndex},#{pageSize}
复制代码
测试
  1. @Testpublic void getUserByLimit(){  SqlSession sqlSession = MybatisUtils.getSqlSession();  UserMapper mapper = sqlSession.getMapper(UserMapper.class);  HashMap map = new HashMap();  map.put("startIndex",0);  map.put("pageSize",2);  List userList = mapper.getUserByLimit(map); for(User user : userList){<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>System.out.println(user); }}
复制代码
运行结果图

八、使用注解开发

1.面向接口编程

2.注解的使用

注解在接口上实现
  1. public interface UserMapper {
  2.    @Select("select * from user")
  3.    List<User> getUsers();
  4. }
复制代码
在核心配置文件中绑定接口
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>
复制代码
本质:反射机制实现
3.Mybatis详细执行流程


4.注解实现CRUD

我们可以再工具类创建的时候实现自动提交事务
  1. public static SqlSession getSqlSession(){<mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers>//这里写上true之后在进行增删改之后就会自动提交事务<mappers>
  17. <typeAliases>
  18. <mappers>
  19. <settings>
  20. <mappers>
  21. <mappers>
  22. <mappers>
  23.   <mapper ></mapper>
  24.   <mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><mapper ></mapper>
  27. </mappers><setting name="logImpl" value="LOG4J"/>
  28. </settings><mapper />
  29. </mappers><package name="com.tang.pojo"/>
  30. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  31.   </mappers>SqlSession sqlSession = sqlSessionFactory.openSession(true);<mappers>
  32. <typeAliases>
  33. <mappers>
  34. <settings>
  35. <mappers>
  36. <mappers>
  37. <mappers>
  38.   <mapper ></mapper>
  39.   <mapper ></mapper>
  40. </mappers><mapper ></mapper>
  41. </mappers><mapper ></mapper>
  42. </mappers><setting name="logImpl" value="LOG4J"/>
  43. </settings><mapper />
  44. </mappers><package name="com.tang.pojo"/>
  45. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  46.   </mappers>return sqlSession;<typeAliases>
  47. <mappers>
  48. <settings>
  49. <mappers>
  50. <mappers>
  51. <mappers>
  52.   <mapper ></mapper>
  53.   <mapper ></mapper>
  54. </mappers><mapper ></mapper>
  55. </mappers><mapper ></mapper>
  56. </mappers><setting name="logImpl" value="LOG4J"/>
  57. </settings><mapper />
  58. </mappers><package name="com.tang.pojo"/>
  59. </typeAliases><properties resource="db.properties"/>}
复制代码
配置文件中对接口进行注册
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>
复制代码
接口代码
  1. //查询所有用户<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>@Select("select * from user")<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>List getUserList();<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>//方法存在多个参数,所有的参数前面必须加上@Param注解<typeAliases>
  41. <mappers>
  42. <settings>
  43. <mappers>
  44. <mappers>
  45. <mappers>
  46.   <mapper ></mapper>
  47.   <mapper ></mapper>
  48. </mappers><mapper ></mapper>
  49. </mappers><mapper ></mapper>
  50. </mappers><setting name="logImpl" value="LOG4J"/>
  51. </settings><mapper />
  52. </mappers><package name="com.tang.pojo"/>
  53. </typeAliases><properties resource="db.properties"/>//查询指定id的用户<typeAliases>
  54. <mappers>
  55. <settings>
  56. <mappers>
  57. <mappers>
  58. <mappers>
  59.   <mapper ></mapper>
  60.   <mapper ></mapper>
  61. </mappers><mapper ></mapper>
  62. </mappers><mapper ></mapper>
  63. </mappers><setting name="logImpl" value="LOG4J"/>
  64. </settings><mapper />
  65. </mappers><package name="com.tang.pojo"/>
  66. </typeAliases><properties resource="db.properties"/>@Select("select * from user where id=#{id}")<typeAliases>
  67. <mappers>
  68. <settings>
  69. <mappers>
  70. <mappers>
  71. <mappers>
  72.   <mapper ></mapper>
  73.   <mapper ></mapper>
  74. </mappers><mapper ></mapper>
  75. </mappers><mapper ></mapper>
  76. </mappers><setting name="logImpl" value="LOG4J"/>
  77. </settings><mapper />
  78. </mappers><package name="com.tang.pojo"/>
  79. </typeAliases><properties resource="db.properties"/>User getUserById(@Param("id") int id);<mappers>
  80. <typeAliases>
  81. <mappers>
  82. <settings>
  83. <mappers>
  84. <mappers>
  85. <mappers>
  86.   <mapper ></mapper>
  87.   <mapper ></mapper>
  88. </mappers><mapper ></mapper>
  89. </mappers><mapper ></mapper>
  90. </mappers><setting name="logImpl" value="LOG4J"/>
  91. </settings><mapper />
  92. </mappers><package name="com.tang.pojo"/>
  93. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  94.   </mappers>//增加用户<typeAliases>
  95. <mappers>
  96. <settings>
  97. <mappers>
  98. <mappers>
  99. <mappers>
  100.   <mapper ></mapper>
  101.   <mapper ></mapper>
  102. </mappers><mapper ></mapper>
  103. </mappers><mapper ></mapper>
  104. </mappers><setting name="logImpl" value="LOG4J"/>
  105. </settings><mapper />
  106. </mappers><package name="com.tang.pojo"/>
  107. </typeAliases><properties resource="db.properties"/>@Insert("insert into user(id,name,pwd) values(#{id},#{name},#{password})")<typeAliases>
  108. <mappers>
  109. <settings>
  110. <mappers>
  111. <mappers>
  112. <mappers>
  113.   <mapper ></mapper>
  114.   <mapper ></mapper>
  115. </mappers><mapper ></mapper>
  116. </mappers><mapper ></mapper>
  117. </mappers><setting name="logImpl" value="LOG4J"/>
  118. </settings><mapper />
  119. </mappers><package name="com.tang.pojo"/>
  120. </typeAliases><properties resource="db.properties"/>int addUser(User user);<mappers>
  121. <typeAliases>
  122. <mappers>
  123. <settings>
  124. <mappers>
  125. <mappers>
  126. <mappers>
  127.   <mapper ></mapper>
  128.   <mapper ></mapper>
  129. </mappers><mapper ></mapper>
  130. </mappers><mapper ></mapper>
  131. </mappers><setting name="logImpl" value="LOG4J"/>
  132. </settings><mapper />
  133. </mappers><package name="com.tang.pojo"/>
  134. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  135.   </mappers>//修改用户<typeAliases>
  136. <mappers>
  137. <settings>
  138. <mappers>
  139. <mappers>
  140. <mappers>
  141.   <mapper ></mapper>
  142.   <mapper ></mapper>
  143. </mappers><mapper ></mapper>
  144. </mappers><mapper ></mapper>
  145. </mappers><setting name="logImpl" value="LOG4J"/>
  146. </settings><mapper />
  147. </mappers><package name="com.tang.pojo"/>
  148. </typeAliases><properties resource="db.properties"/>@Update("update user set name =#{name},pwd=#{password} where id=#{id}")<typeAliases>
  149. <mappers>
  150. <settings>
  151. <mappers>
  152. <mappers>
  153. <mappers>
  154.   <mapper ></mapper>
  155.   <mapper ></mapper>
  156. </mappers><mapper ></mapper>
  157. </mappers><mapper ></mapper>
  158. </mappers><setting name="logImpl" value="LOG4J"/>
  159. </settings><mapper />
  160. </mappers><package name="com.tang.pojo"/>
  161. </typeAliases><properties resource="db.properties"/>int updateUser(User user);<typeAliases>
  162. <mappers>
  163. <settings>
  164. <mappers>
  165. <mappers>
  166. <mappers>
  167.   <mapper ></mapper>
  168.   <mapper ></mapper>
  169. </mappers><mapper ></mapper>
  170. </mappers><mapper ></mapper>
  171. </mappers><setting name="logImpl" value="LOG4J"/>
  172. </settings><mapper />
  173. </mappers><package name="com.tang.pojo"/>
  174. </typeAliases><properties resource="db.properties"/>//删除用户<typeAliases>
  175. <mappers>
  176. <settings>
  177. <mappers>
  178. <mappers>
  179. <mappers>
  180.   <mapper ></mapper>
  181.   <mapper ></mapper>
  182. </mappers><mapper ></mapper>
  183. </mappers><mapper ></mapper>
  184. </mappers><setting name="logImpl" value="LOG4J"/>
  185. </settings><mapper />
  186. </mappers><package name="com.tang.pojo"/>
  187. </typeAliases><properties resource="db.properties"/>@Delete("delete from user where id=#{uid}")<typeAliases>
  188. <mappers>
  189. <settings>
  190. <mappers>
  191. <mappers>
  192. <mappers>
  193.   <mapper ></mapper>
  194.   <mapper ></mapper>
  195. </mappers><mapper ></mapper>
  196. </mappers><mapper ></mapper>
  197. </mappers><setting name="logImpl" value="LOG4J"/>
  198. </settings><mapper />
  199. </mappers><package name="com.tang.pojo"/>
  200. </typeAliases><properties resource="db.properties"/>int deleteUser(@Param("uid")int id);
复制代码
增删改查的测试类
  1. @Test   public void getUserListTest(){<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>  SqlSession sqlSession = MybatisUtils.getSqlSession();<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>  UserMapper mapper = sqlSession.getMapper(UserMapper.class);<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>  List userList = mapper.getUserList();<typeAliases>
  41. <mappers>
  42. <settings>
  43. <mappers>
  44. <mappers>
  45. <mappers>
  46.   <mapper ></mapper>
  47.   <mapper ></mapper>
  48. </mappers><mapper ></mapper>
  49. </mappers><mapper ></mapper>
  50. </mappers><setting name="logImpl" value="LOG4J"/>
  51. </settings><mapper />
  52. </mappers><package name="com.tang.pojo"/>
  53. </typeAliases><properties resource="db.properties"/>  for (User user : userList) {<mappers>
  54. <typeAliases>
  55. <mappers>
  56. <settings>
  57. <mappers>
  58. <mappers>
  59. <mappers>
  60.   <mapper ></mapper>
  61.   <mapper ></mapper>
  62. </mappers><mapper ></mapper>
  63. </mappers><mapper ></mapper>
  64. </mappers><setting name="logImpl" value="LOG4J"/>
  65. </settings><mapper />
  66. </mappers><package name="com.tang.pojo"/>
  67. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  68.   </mappers> System.out.println(user);<typeAliases>
  69. <mappers>
  70. <settings>
  71. <mappers>
  72. <mappers>
  73. <mappers>
  74.   <mapper ></mapper>
  75.   <mapper ></mapper>
  76. </mappers><mapper ></mapper>
  77. </mappers><mapper ></mapper>
  78. </mappers><setting name="logImpl" value="LOG4J"/>
  79. </settings><mapper />
  80. </mappers><package name="com.tang.pojo"/>
  81. </typeAliases><properties resource="db.properties"/>  }   }   @Test<typeAliases>
  82. <mappers>
  83. <settings>
  84. <mappers>
  85. <mappers>
  86. <mappers>
  87.   <mapper ></mapper>
  88.   <mapper ></mapper>
  89. </mappers><mapper ></mapper>
  90. </mappers><mapper ></mapper>
  91. </mappers><setting name="logImpl" value="LOG4J"/>
  92. </settings><mapper />
  93. </mappers><package name="com.tang.pojo"/>
  94. </typeAliases><properties resource="db.properties"/>public void getUserBID(){<typeAliases>
  95. <mappers>
  96. <settings>
  97. <mappers>
  98. <mappers>
  99. <mappers>
  100.   <mapper ></mapper>
  101.   <mapper ></mapper>
  102. </mappers><mapper ></mapper>
  103. </mappers><mapper ></mapper>
  104. </mappers><setting name="logImpl" value="LOG4J"/>
  105. </settings><mapper />
  106. </mappers><package name="com.tang.pojo"/>
  107. </typeAliases><properties resource="db.properties"/>   SqlSession sqlSession = MybatisUtils.getSqlSession();<typeAliases>
  108. <mappers>
  109. <settings>
  110. <mappers>
  111. <mappers>
  112. <mappers>
  113.   <mapper ></mapper>
  114.   <mapper ></mapper>
  115. </mappers><mapper ></mapper>
  116. </mappers><mapper ></mapper>
  117. </mappers><setting name="logImpl" value="LOG4J"/>
  118. </settings><mapper />
  119. </mappers><package name="com.tang.pojo"/>
  120. </typeAliases><properties resource="db.properties"/>   UserMapper mapper = sqlSession.getMapper(UserMapper.class);<typeAliases>
  121. <mappers>
  122. <settings>
  123. <mappers>
  124. <mappers>
  125. <mappers>
  126.   <mapper ></mapper>
  127.   <mapper ></mapper>
  128. </mappers><mapper ></mapper>
  129. </mappers><mapper ></mapper>
  130. </mappers><setting name="logImpl" value="LOG4J"/>
  131. </settings><mapper />
  132. </mappers><package name="com.tang.pojo"/>
  133. </typeAliases><properties resource="db.properties"/>   User userById = mapper.getUserById(1);<typeAliases>
  134. <mappers>
  135. <settings>
  136. <mappers>
  137. <mappers>
  138. <mappers>
  139.   <mapper ></mapper>
  140.   <mapper ></mapper>
  141. </mappers><mapper ></mapper>
  142. </mappers><mapper ></mapper>
  143. </mappers><setting name="logImpl" value="LOG4J"/>
  144. </settings><mapper />
  145. </mappers><package name="com.tang.pojo"/>
  146. </typeAliases><properties resource="db.properties"/>   System.out.println(userById);<typeAliases>
  147. <mappers>
  148. <settings>
  149. <mappers>
  150. <mappers>
  151. <mappers>
  152.   <mapper ></mapper>
  153.   <mapper ></mapper>
  154. </mappers><mapper ></mapper>
  155. </mappers><mapper ></mapper>
  156. </mappers><setting name="logImpl" value="LOG4J"/>
  157. </settings><mapper />
  158. </mappers><package name="com.tang.pojo"/>
  159. </typeAliases><properties resource="db.properties"/>   sqlSession.close();   }   @Test   public void addUserTest(){<typeAliases>
  160. <mappers>
  161. <settings>
  162. <mappers>
  163. <mappers>
  164. <mappers>
  165.   <mapper ></mapper>
  166.   <mapper ></mapper>
  167. </mappers><mapper ></mapper>
  168. </mappers><mapper ></mapper>
  169. </mappers><setting name="logImpl" value="LOG4J"/>
  170. </settings><mapper />
  171. </mappers><package name="com.tang.pojo"/>
  172. </typeAliases><properties resource="db.properties"/>  SqlSession sqlSession = MybatisUtils.getSqlSession();<typeAliases>
  173. <mappers>
  174. <settings>
  175. <mappers>
  176. <mappers>
  177. <mappers>
  178.   <mapper ></mapper>
  179.   <mapper ></mapper>
  180. </mappers><mapper ></mapper>
  181. </mappers><mapper ></mapper>
  182. </mappers><setting name="logImpl" value="LOG4J"/>
  183. </settings><mapper />
  184. </mappers><package name="com.tang.pojo"/>
  185. </typeAliases><properties resource="db.properties"/>  UserMapper mapper = sqlSession.getMapper(UserMapper.class);<typeAliases>
  186. <mappers>
  187. <settings>
  188. <mappers>
  189. <mappers>
  190. <mappers>
  191.   <mapper ></mapper>
  192.   <mapper ></mapper>
  193. </mappers><mapper ></mapper>
  194. </mappers><mapper ></mapper>
  195. </mappers><setting name="logImpl" value="LOG4J"/>
  196. </settings><mapper />
  197. </mappers><package name="com.tang.pojo"/>
  198. </typeAliases><properties resource="db.properties"/>  mapper.addUser(new User(6,"唐银","123"));<typeAliases>
  199. <mappers>
  200. <settings>
  201. <mappers>
  202. <mappers>
  203. <mappers>
  204.   <mapper ></mapper>
  205.   <mapper ></mapper>
  206. </mappers><mapper ></mapper>
  207. </mappers><mapper ></mapper>
  208. </mappers><setting name="logImpl" value="LOG4J"/>
  209. </settings><mapper />
  210. </mappers><package name="com.tang.pojo"/>
  211. </typeAliases><properties resource="db.properties"/>  sqlSession.close();   }   @Test   public void updateUserTest(){<typeAliases>
  212. <mappers>
  213. <settings>
  214. <mappers>
  215. <mappers>
  216. <mappers>
  217.   <mapper ></mapper>
  218.   <mapper ></mapper>
  219. </mappers><mapper ></mapper>
  220. </mappers><mapper ></mapper>
  221. </mappers><setting name="logImpl" value="LOG4J"/>
  222. </settings><mapper />
  223. </mappers><package name="com.tang.pojo"/>
  224. </typeAliases><properties resource="db.properties"/>  SqlSession sqlSession = MybatisUtils.getSqlSession();<typeAliases>
  225. <mappers>
  226. <settings>
  227. <mappers>
  228. <mappers>
  229. <mappers>
  230.   <mapper ></mapper>
  231.   <mapper ></mapper>
  232. </mappers><mapper ></mapper>
  233. </mappers><mapper ></mapper>
  234. </mappers><setting name="logImpl" value="LOG4J"/>
  235. </settings><mapper />
  236. </mappers><package name="com.tang.pojo"/>
  237. </typeAliases><properties resource="db.properties"/>  UserMapper mapper = sqlSession.getMapper(UserMapper.class);<typeAliases>
  238. <mappers>
  239. <settings>
  240. <mappers>
  241. <mappers>
  242. <mappers>
  243.   <mapper ></mapper>
  244.   <mapper ></mapper>
  245. </mappers><mapper ></mapper>
  246. </mappers><mapper ></mapper>
  247. </mappers><setting name="logImpl" value="LOG4J"/>
  248. </settings><mapper />
  249. </mappers><package name="com.tang.pojo"/>
  250. </typeAliases><properties resource="db.properties"/>  mapper.updateUser(new User(1,"汤昊","678"));<typeAliases>
  251. <mappers>
  252. <settings>
  253. <mappers>
  254. <mappers>
  255. <mappers>
  256.   <mapper ></mapper>
  257.   <mapper ></mapper>
  258. </mappers><mapper ></mapper>
  259. </mappers><mapper ></mapper>
  260. </mappers><setting name="logImpl" value="LOG4J"/>
  261. </settings><mapper />
  262. </mappers><package name="com.tang.pojo"/>
  263. </typeAliases><properties resource="db.properties"/>  sqlSession.close();   }   @Test   public void deleteUserTest(){<typeAliases>
  264. <mappers>
  265. <settings>
  266. <mappers>
  267. <mappers>
  268. <mappers>
  269.   <mapper ></mapper>
  270.   <mapper ></mapper>
  271. </mappers><mapper ></mapper>
  272. </mappers><mapper ></mapper>
  273. </mappers><setting name="logImpl" value="LOG4J"/>
  274. </settings><mapper />
  275. </mappers><package name="com.tang.pojo"/>
  276. </typeAliases><properties resource="db.properties"/>  SqlSession sqlSession = MybatisUtils.getSqlSession();<typeAliases>
  277. <mappers>
  278. <settings>
  279. <mappers>
  280. <mappers>
  281. <mappers>
  282.   <mapper ></mapper>
  283.   <mapper ></mapper>
  284. </mappers><mapper ></mapper>
  285. </mappers><mapper ></mapper>
  286. </mappers><setting name="logImpl" value="LOG4J"/>
  287. </settings><mapper />
  288. </mappers><package name="com.tang.pojo"/>
  289. </typeAliases><properties resource="db.properties"/>  UserMapper mapper = sqlSession.getMapper(UserMapper.class);<typeAliases>
  290. <mappers>
  291. <settings>
  292. <mappers>
  293. <mappers>
  294. <mappers>
  295.   <mapper ></mapper>
  296.   <mapper ></mapper>
  297. </mappers><mapper ></mapper>
  298. </mappers><mapper ></mapper>
  299. </mappers><setting name="logImpl" value="LOG4J"/>
  300. </settings><mapper />
  301. </mappers><package name="com.tang.pojo"/>
  302. </typeAliases><properties resource="db.properties"/>  mapper.deleteUser(3);<typeAliases>
  303. <mappers>
  304. <settings>
  305. <mappers>
  306. <mappers>
  307. <mappers>
  308.   <mapper ></mapper>
  309.   <mapper ></mapper>
  310. </mappers><mapper ></mapper>
  311. </mappers><mapper ></mapper>
  312. </mappers><setting name="logImpl" value="LOG4J"/>
  313. </settings><mapper />
  314. </mappers><package name="com.tang.pojo"/>
  315. </typeAliases><properties resource="db.properties"/>  sqlSession.close();   }
复制代码
对user表操作之后的结果图

【关于@Param()注解】
九、Lombok

1.使用步骤

  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>org.projectlombok<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>lombok<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>1.18.24
复制代码
十、多对一处理

如学生和老师之间的关系
1.测试环境搭建

最终的包结构图
步骤
运行结果图

2.按照查询嵌套处理

目的:查询每个学生及对应老师的信息
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers>--<mappers>
  17. <typeAliases>
  18. <mappers>
  19. <settings>
  20. <mappers>
  21. <mappers>
  22. <mappers>
  23.   <mapper ></mapper>
  24.   <mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><mapper ></mapper>
  27. </mappers><setting name="logImpl" value="LOG4J"/>
  28. </settings><mapper />
  29. </mappers><package name="com.tang.pojo"/>
  30. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  31.   </mappers> select s.id,s.name,t.name from student s,teacher t where s.tid = t.id;<mappers>
  32. <typeAliases>
  33. <mappers>
  34. <settings>
  35. <mappers>
  36. <mappers>
  37. <mappers>
  38.   <mapper ></mapper>
  39.   <mapper ></mapper>
  40. </mappers><mapper ></mapper>
  41. </mappers><mapper ></mapper>
  42. </mappers><setting name="logImpl" value="LOG4J"/>
  43. </settings><mapper />
  44. </mappers><package name="com.tang.pojo"/>
  45. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  46.   </mappers>select * from student<mappers>
  47. <typeAliases>
  48. <mappers>
  49. <settings>
  50. <mappers>
  51. <mappers>
  52. <mappers>
  53.   <mapper ></mapper>
  54.   <mapper ></mapper>
  55. </mappers><mapper ></mapper>
  56. </mappers><mapper ></mapper>
  57. </mappers><setting name="logImpl" value="LOG4J"/>
  58. </settings><mapper />
  59. </mappers><package name="com.tang.pojo"/>
  60. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  61.   </mappers><mappers>
  62. <typeAliases>
  63. <mappers>
  64. <settings>
  65. <mappers>
  66. <mappers>
  67. <mappers>
  68.   <mapper ></mapper>
  69.   <mapper ></mapper>
  70. </mappers><mapper ></mapper>
  71. </mappers><mapper ></mapper>
  72. </mappers><setting name="logImpl" value="LOG4J"/>
  73. </settings><mapper />
  74. </mappers><package name="com.tang.pojo"/>
  75. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  76.   </mappers><mappers>
  77. <typeAliases>
  78. <mappers>
  79. <settings>
  80. <mappers>
  81. <mappers>
  82. <mappers>
  83.   <mapper ></mapper>
  84.   <mapper ></mapper>
  85. </mappers><mapper ></mapper>
  86. </mappers><mapper ></mapper>
  87. </mappers><setting name="logImpl" value="LOG4J"/>
  88. </settings><mapper />
  89. </mappers><package name="com.tang.pojo"/>
  90. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  91.   </mappers><mappers>
  92. <typeAliases>
  93. <mappers>
  94. <settings>
  95. <mappers>
  96. <mappers>
  97. <mappers>
  98.   <mapper ></mapper>
  99.   <mapper ></mapper>
  100. </mappers><mapper ></mapper>
  101. </mappers><mapper ></mapper>
  102. </mappers><setting name="logImpl" value="LOG4J"/>
  103. </settings><mapper />
  104. </mappers><package name="com.tang.pojo"/>
  105. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  106.   </mappers><mappers>
  107. <typeAliases>
  108. <mappers>
  109. <settings>
  110. <mappers>
  111. <mappers>
  112. <mappers>
  113.   <mapper ></mapper>
  114.   <mapper ></mapper>
  115. </mappers><mapper ></mapper>
  116. </mappers><mapper ></mapper>
  117. </mappers><setting name="logImpl" value="LOG4J"/>
  118. </settings><mapper />
  119. </mappers><package name="com.tang.pojo"/>
  120. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  121.   </mappers><mappers>
  122. <typeAliases>
  123. <mappers>
  124. <settings>
  125. <mappers>
  126. <mappers>
  127. <mappers>
  128.   <mapper ></mapper>
  129.   <mapper ></mapper>
  130. </mappers><mapper ></mapper>
  131. </mappers><mapper ></mapper>
  132. </mappers><setting name="logImpl" value="LOG4J"/>
  133. </settings><mapper />
  134. </mappers><package name="com.tang.pojo"/>
  135. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  136.   </mappers>select * from teacher where id=#{id}<typeAliases>
  137. <mappers>
  138. <settings>
  139. <mappers>
  140. <mappers>
  141. <mappers>
  142.   <mapper ></mapper>
  143.   <mapper ></mapper>
  144. </mappers><mapper ></mapper>
  145. </mappers><mapper ></mapper>
  146. </mappers><setting name="logImpl" value="LOG4J"/>
  147. </settings><mapper />
  148. </mappers><package name="com.tang.pojo"/>
  149. </typeAliases><properties resource="db.properties"/>
复制代码
运行结果图

3.按照结果嵌套处理

目的:查询每个学生及对应老师的信息
  1. <typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>select s.id sid,s.name snmae,t.id tid,t.name tname<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>from student s,teacher t<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>where s.tid = t.id;<mappers>
  41. <typeAliases>
  42. <mappers>
  43. <settings>
  44. <mappers>
  45. <mappers>
  46. <mappers>
  47.   <mapper ></mapper>
  48.   <mapper ></mapper>
  49. </mappers><mapper ></mapper>
  50. </mappers><mapper ></mapper>
  51. </mappers><setting name="logImpl" value="LOG4J"/>
  52. </settings><mapper />
  53. </mappers><package name="com.tang.pojo"/>
  54. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  55.   </mappers><mappers>
  56. <typeAliases>
  57. <mappers>
  58. <settings>
  59. <mappers>
  60. <mappers>
  61. <mappers>
  62.   <mapper ></mapper>
  63.   <mapper ></mapper>
  64. </mappers><mapper ></mapper>
  65. </mappers><mapper ></mapper>
  66. </mappers><setting name="logImpl" value="LOG4J"/>
  67. </settings><mapper />
  68. </mappers><package name="com.tang.pojo"/>
  69. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  70.   </mappers><mappers>
  71. <typeAliases>
  72. <mappers>
  73. <settings>
  74. <mappers>
  75. <mappers>
  76. <mappers>
  77.   <mapper ></mapper>
  78.   <mapper ></mapper>
  79. </mappers><mapper ></mapper>
  80. </mappers><mapper ></mapper>
  81. </mappers><setting name="logImpl" value="LOG4J"/>
  82. </settings><mapper />
  83. </mappers><package name="com.tang.pojo"/>
  84. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  85.   </mappers><mappers>
  86. <typeAliases>
  87. <mappers>
  88. <settings>
  89. <mappers>
  90. <mappers>
  91. <mappers>
  92.   <mapper ></mapper>
  93.   <mapper ></mapper>
  94. </mappers><mapper ></mapper>
  95. </mappers><mapper ></mapper>
  96. </mappers><setting name="logImpl" value="LOG4J"/>
  97. </settings><mapper />
  98. </mappers><package name="com.tang.pojo"/>
  99. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  100.   </mappers>
复制代码
十一、一对多处理

比如:一个老师拥有多个学生对于老师而言,就是一对多的关系1.环境搭建

与之前环境搭建差不多这里实体类变为
  1. import lombok.Data;@Datapublic class Student {<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>private int id;<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>private String name;<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>private int tid;}
复制代码
  1. import lombok.Data;import java.util.List;@Datapublic class Teacher {<typeAliases>
  2. <mappers>
  3. <settings>
  4. <mappers>
  5. <mappers>
  6. <mappers>
  7.   <mapper ></mapper>
  8.   <mapper ></mapper>
  9. </mappers><mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><setting name="logImpl" value="LOG4J"/>
  12. </settings><mapper />
  13. </mappers><package name="com.tang.pojo"/>
  14. </typeAliases><properties resource="db.properties"/>private int id;<typeAliases>
  15. <mappers>
  16. <settings>
  17. <mappers>
  18. <mappers>
  19. <mappers>
  20.   <mapper ></mapper>
  21.   <mapper ></mapper>
  22. </mappers><mapper ></mapper>
  23. </mappers><mapper ></mapper>
  24. </mappers><setting name="logImpl" value="LOG4J"/>
  25. </settings><mapper />
  26. </mappers><package name="com.tang.pojo"/>
  27. </typeAliases><properties resource="db.properties"/>private String name;<typeAliases>
  28. <mappers>
  29. <settings>
  30. <mappers>
  31. <mappers>
  32. <mappers>
  33.   <mapper ></mapper>
  34.   <mapper ></mapper>
  35. </mappers><mapper ></mapper>
  36. </mappers><mapper ></mapper>
  37. </mappers><setting name="logImpl" value="LOG4J"/>
  38. </settings><mapper />
  39. </mappers><package name="com.tang.pojo"/>
  40. </typeAliases><properties resource="db.properties"/>//一个老师对应多个学生<typeAliases>
  41. <mappers>
  42. <settings>
  43. <mappers>
  44. <mappers>
  45. <mappers>
  46.   <mapper ></mapper>
  47.   <mapper ></mapper>
  48. </mappers><mapper ></mapper>
  49. </mappers><mapper ></mapper>
  50. </mappers><setting name="logImpl" value="LOG4J"/>
  51. </settings><mapper />
  52. </mappers><package name="com.tang.pojo"/>
  53. </typeAliases><properties resource="db.properties"/>private List students;}
复制代码
2.按照结果查询

目的:查询每个老师及对应学生的信息
  1. <mappers>
  2. <typeAliases>
  3. <mappers>
  4. <settings>
  5. <mappers>
  6. <mappers>
  7. <mappers>
  8.   <mapper ></mapper>
  9.   <mapper ></mapper>
  10. </mappers><mapper ></mapper>
  11. </mappers><mapper ></mapper>
  12. </mappers><setting name="logImpl" value="LOG4J"/>
  13. </settings><mapper />
  14. </mappers><package name="com.tang.pojo"/>
  15. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  16.   </mappers><mappers>
  17. <typeAliases>
  18. <mappers>
  19. <settings>
  20. <mappers>
  21. <mappers>
  22. <mappers>
  23.   <mapper ></mapper>
  24.   <mapper ></mapper>
  25. </mappers><mapper ></mapper>
  26. </mappers><mapper ></mapper>
  27. </mappers><setting name="logImpl" value="LOG4J"/>
  28. </settings><mapper />
  29. </mappers><package name="com.tang.pojo"/>
  30. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  31.   </mappers>select s.id sid,s.name snmae,t.id tid,t.name tname<mappers>
  32. <typeAliases>
  33. <mappers>
  34. <settings>
  35. <mappers>
  36. <mappers>
  37. <mappers>
  38.   <mapper ></mapper>
  39.   <mapper ></mapper>
  40. </mappers><mapper ></mapper>
  41. </mappers><mapper ></mapper>
  42. </mappers><setting name="logImpl" value="LOG4J"/>
  43. </settings><mapper />
  44. </mappers><package name="com.tang.pojo"/>
  45. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  46.   </mappers>from student s,teacher t<mappers>
  47. <typeAliases>
  48. <mappers>
  49. <settings>
  50. <mappers>
  51. <mappers>
  52. <mappers>
  53.   <mapper ></mapper>
  54.   <mapper ></mapper>
  55. </mappers><mapper ></mapper>
  56. </mappers><mapper ></mapper>
  57. </mappers><setting name="logImpl" value="LOG4J"/>
  58. </settings><mapper />
  59. </mappers><package name="com.tang.pojo"/>
  60. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  61.   </mappers>where s.tid = t.id and t.id=#{tid}<mappers>
  62. <typeAliases>
  63. <mappers>
  64. <settings>
  65. <mappers>
  66. <mappers>
  67. <mappers>
  68.   <mapper ></mapper>
  69.   <mapper ></mapper>
  70. </mappers><mapper ></mapper>
  71. </mappers><mapper ></mapper>
  72. </mappers><setting name="logImpl" value="LOG4J"/>
  73. </settings><mapper />
  74. </mappers><package name="com.tang.pojo"/>
  75. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  76.   </mappers><mappers>
  77. <typeAliases>
  78. <mappers>
  79. <settings>
  80. <mappers>
  81. <mappers>
  82. <mappers>
  83.   <mapper ></mapper>
  84.   <mapper ></mapper>
  85. </mappers><mapper ></mapper>
  86. </mappers><mapper ></mapper>
  87. </mappers><setting name="logImpl" value="LOG4J"/>
  88. </settings><mapper />
  89. </mappers><package name="com.tang.pojo"/>
  90. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  91.   </mappers><mappers>
  92. <typeAliases>
  93. <mappers>
  94. <settings>
  95. <mappers>
  96. <mappers>
  97. <mappers>
  98.   <mapper ></mapper>
  99.   <mapper ></mapper>
  100. </mappers><mapper ></mapper>
  101. </mappers><mapper ></mapper>
  102. </mappers><setting name="logImpl" value="LOG4J"/>
  103. </settings><mapper />
  104. </mappers><package name="com.tang.pojo"/>
  105. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  106.   </mappers><mappers>
  107. <typeAliases>
  108. <mappers>
  109. <settings>
  110. <mappers>
  111. <mappers>
  112. <mappers>
  113.   <mapper ></mapper>
  114.   <mapper ></mapper>
  115. </mappers><mapper ></mapper>
  116. </mappers><mapper ></mapper>
  117. </mappers><setting name="logImpl" value="LOG4J"/>
  118. </settings><mapper />
  119. </mappers><package name="com.tang.pojo"/>
  120. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  121.   </mappers><mappers>
  122. <typeAliases>
  123. <mappers>
  124. <settings>
  125. <mappers>
  126. <mappers>
  127. <mappers>
  128.   <mapper ></mapper>
  129.   <mapper ></mapper>
  130. </mappers><mapper ></mapper>
  131. </mappers><mapper ></mapper>
  132. </mappers><setting name="logImpl" value="LOG4J"/>
  133. </settings><mapper />
  134. </mappers><package name="com.tang.pojo"/>
  135. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  136.   </mappers><mappers>
  137. <typeAliases>
  138. <mappers>
  139. <settings>
  140. <mappers>
  141. <mappers>
  142. <mappers>
  143.   <mapper ></mapper>
  144.   <mapper ></mapper>
  145. </mappers><mapper ></mapper>
  146. </mappers><mapper ></mapper>
  147. </mappers><setting name="logImpl" value="LOG4J"/>
  148. </settings><mapper />
  149. </mappers><package name="com.tang.pojo"/>
  150. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  151.   </mappers><mappers>
  152. <typeAliases>
  153. <mappers>
  154. <settings>
  155. <mappers>
  156. <mappers>
  157. <mappers>
  158.   <mapper ></mapper>
  159.   <mapper ></mapper>
  160. </mappers><mapper ></mapper>
  161. </mappers><mapper ></mapper>
  162. </mappers><setting name="logImpl" value="LOG4J"/>
  163. </settings><mapper />
  164. </mappers><package name="com.tang.pojo"/>
  165. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  166.   </mappers><mappers>
  167. <typeAliases>
  168. <mappers>
  169. <settings>
  170. <mappers>
  171. <mappers>
  172. <mappers>
  173.   <mapper ></mapper>
  174.   <mapper ></mapper>
  175. </mappers><mapper ></mapper>
  176. </mappers><mapper ></mapper>
  177. </mappers><setting name="logImpl" value="LOG4J"/>
  178. </settings><mapper />
  179. </mappers><package name="com.tang.pojo"/>
  180. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  181.   </mappers><mappers>
  182. <typeAliases>
  183. <mappers>
  184. <settings>
  185. <mappers>
  186. <mappers>
  187. <mappers>
  188.   <mapper ></mapper>
  189.   <mapper ></mapper>
  190. </mappers><mapper ></mapper>
  191. </mappers><mapper ></mapper>
  192. </mappers><setting name="logImpl" value="LOG4J"/>
  193. </settings><mapper />
  194. </mappers><package name="com.tang.pojo"/>
  195. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  196.   </mappers><mappers>
  197. <typeAliases>
  198. <mappers>
  199. <settings>
  200. <mappers>
  201. <mappers>
  202. <mappers>
  203.   <mapper ></mapper>
  204.   <mapper ></mapper>
  205. </mappers><mapper ></mapper>
  206. </mappers><mapper ></mapper>
  207. </mappers><setting name="logImpl" value="LOG4J"/>
  208. </settings><mapper />
  209. </mappers><package name="com.tang.pojo"/>
  210. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  211.   </mappers><mappers>
  212. <typeAliases>
  213. <mappers>
  214. <settings>
  215. <mappers>
  216. <mappers>
  217. <mappers>
  218.   <mapper ></mapper>
  219.   <mapper ></mapper>
  220. </mappers><mapper ></mapper>
  221. </mappers><mapper ></mapper>
  222. </mappers><setting name="logImpl" value="LOG4J"/>
  223. </settings><mapper />
  224. </mappers><package name="com.tang.pojo"/>
  225. </typeAliases><properties resource="db.properties"/>  <mapper resource="com/tang/dao/UserMapper.xml"/>
  226.   </mappers>
复制代码
3.小结

注意点:
【面试高频】
<ul>Mysql引擎
问题描述:一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?(区分两种数据库引擎)
(1)如果表的类型是MyISAM,那么是18。
因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。
(2)如果表的类型是InnoDB,那么是15。
InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。
InnoDB底层原理
innoDB 是聚集索引方式,因此数据和索引都存储在同一个文件里。首  先 InnoDB 会根据主键 ID 作为 KEY 建立索引 B+树,如左下图所示,而 B+树的叶子节点存储的是主键 ID 对应的数据,比如在执行 select * from user_info where id=15 这个语句时,InnoDB 就会查询这颗主键 ID 索引 B+树,找到对应的 user_name='Bob'。
这是建表的时候 InnoDB 就会自动建立好主键 ID 索引树,这也是为什么 Mysql 在建表时要求必须指定主键的原因。当我们为表里某个字段加索引时 InnoDB 会怎么建立索引树呢?比如我们要给 user_name 这个字段加索引,那么 InnoDB 就会建立 user_name 索引 B+树,节点里存的是 user_name 这个 KEY,叶子节点存储的数据的是主键 KEY。注意,叶子存储的是主键 KEY!拿到主键 KEY 后,InnoDB 才会去主键索引树里根据刚在 user_name 索引树找到的主键 KEY 查找到对应的数据。
索引
问题描述:简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响。
(1)索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
(2)普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。
(3)普通索引允许被索引的数据列包含重复的值,如果能确定某个数据列只包含彼此各不相同的值,在为这个数据索引创建索引的时候就应该用关键字UNIQE把它定义为一个唯一所以,唯一索引可以保证数据记录的唯一性。
(4)主键,一种特殊的唯一索引,在一张表中只能定义一个主键索引,逐渐用于唯一标识一条记录,是用关键字PRIMARY KEY来创建。
(5)索引可以覆盖多个数据列,如像INDEX索引,这就是联合索引。
(6)索引可以极大的提高数据的查询速度,但是会降低插入删除更新表的速度,因为在执行这些写操作时,还要操作索引文件。

索引优化
1.创建索引
对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引。
2.复合索引
比如有一条语句是这样的:select * from users where area=’beijing’ and age=22;
如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。如果我们创建了(area, age, salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。
3.索引不会包含有NULL值的列
只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。
4.使用短索引
对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的 列,如果在前10 个或20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。
5.排序的索引问题
mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
6.like语句操作
一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。
7.不要在列上进行运算
select * from users where YEAR(adddate)




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