Ibatis框架学习.docx
《Ibatis框架学习.docx》由会员分享,可在线阅读,更多相关《Ibatis框架学习.docx(17页珍藏版)》请在冰点文库上搜索。
Ibatis框架学习
根据传智播客ibatis视频教程编写的入门例子收藏
IUserDAOImpl.java
1.package com.elifefly;
2./*
3. * 说明:
程序是根据传智播客ibatis视频教程编写的入门例子。
4. * 目的在于熟悉ibatis的基本原理和基本使用方法。
5. * 因而程序并没有过多的开发成一个系统,ibatis视频教程也没有做成系统的,也没有给任何源代码。
6. *
7. * 开发环境:
MyEclipse 6.0
8. * 数据库:
MySQL5.0
9. *
10. * 要添加的jar包:
mysql-connector-java-3.1.10-bin.jar
11. * 和ibatis-2.3.3.720压缩包下的lib文件夹下的ibatis-2.3.3.720.jar
12. *
13. * 测试使用,选中IUserDAOImpl.java文件,选择run as Java Application
14. */
15.
16.
17.
18.
19.import java.io.IOException;
20.import java.io.Reader;
21.import java.sql.SQLException;
22.import java.util.List;
23.
24.import com.ibatis.sqlmap.client.SqlMapClient;
25.
26.public class IUserDAOImpl implements IUserDAO
27.{
28.
29. private static SqlMapClient sqlMapClient = null;
30.
31. static
32. {
33. try
34. {
35. Reader reader = mon.resources.Resources.getResourceAsReader("com/elifefly/SqlMapConfig.xml");
36. sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
37. reader.close();
38.
39. } catch (IOException e)
40. {
41. // TODO Auto-generated catch block
42. e.printStackTrace();
43. }
44.
45. }
46.
47.//添加用户
48. public void addUser(User user)
49. {
50. try
51. {
52. sqlMapClient.insert("insertUser",user);
53. } catch (SQLException e)
54. {
55. // TODO Auto-generated catch block
56. e.printStackTrace();
57. }
58.
59. }
60.
61.//添加用户,获取自动增长的序列号,处理添加相同的userId情况
62. public void addUserBySequence(User user)
63. {
64. try
65. {
66. sqlMapClient.insert("insertUserBySequence",user);
67. } catch (SQLException e)
68. {
69. // TODO Auto-generated catch block
70. e.printStackTrace();
71. }
72.
73. }
74.
75.//删除用户
76. public void deleteUserById(int id)
77. {
78. try
79. {
80. System.out.println(sqlMapClient.delete("deleteUserById",102));
81. //如果打印出来的值大于0,说明删除成功
82. System.out.println("如果打印出来的值大于0,说明删除成功");
83.
84. } catch (SQLException e)
85. {
86. // TODO Auto-generated catch block
87. e.printStackTrace();
88. }
89.
90. }
91.
92.//查找所有用户
93. public List queryAllUser()
94. {
95. List userList = null;
96.
97. try
98. {
99. userList = sqlMapClient.queryForList("selectAllUser");
100. } catch (SQLException e)
101. {
102. // TODO Auto-generated catch block
103. e.printStackTrace();
104. }
105.
106. return userList;
107. }
108.
109.//通过id查找用户
110. public User queryUserById(int id)
111. {
112. User user = null;
113. try
114. {
115. user = (User)sqlMapClient.queryForObject("selectUserById",id);
116. } catch (SQLException e)
117. {
118. // TODO Auto-generated catch block
119. e.printStackTrace();
120. }
121.
122. return user;
123. }
124.
125.//模糊查询,通过用户名查找用户
126. public List queryUserByName(String name)
127. {
128. List userList = null;
129. try
130. {
131. userList = sqlMapClient.queryForList("selectUserByName",name);
132.
133. } catch (SQLException e)
134. {
135. // TODO Auto-generated catch block
136. e.printStackTrace();
137. }
138. return userList;
139. }
140.
141.//修改用户
142. public void updateUser(User user2)
143. {
144. try
145. {
146. System.out.println(sqlMapClient.update("updateUserById",user2));
147. //如果打印出来的值大于0,说明更新成功
148. System.out.println("如果打印出来的值大于0,说明更新成功");
149. } catch (SQLException e)
150. {
151. // TODO Auto-generated catch block
152. e.printStackTrace();
153. }
154. }
155.
156.
157.
158.
159.
160. public static void main(String[] args)
161. {
162. // TODO Auto-generated method stub
163. IUserDAOImpl iUserDAOImpl = new IUserDAOImpl();
164.
165. //1.测试queryAllUser()
166. System.out.println("1.测试queryAllUser()");
167. for(User user:
iUserDAOImpl.queryAllUser())
168. {
169. System.out.println(user);
170.
171. }
172.
173. //2.测试queryUserById(int id)]
174. System.out.println("\n2.测试queryUserById(int id)");
175. System.out.println(iUserDAOImpl.queryUserById
(1));
176.
177. //3.测试addUser(User user)
178. System.out.println("\n3.测试addUser(User user)");
179. User user = new User();
180. user.setUserId(102);
181. user.setUserName("elifefly");
182. user.setUserPassword("123456");
183. user.setUserFlag("超级管理员");
184.
185. iUserDAOImpl.addUser(user);
186.
187. System.out.println(iUserDAOImpl.queryUserById(102));
188.
189.
190. //4.测试deleteUserById(int id)
191. System.out.println("\n4.测试deleteUserById(int id)");
192. iUserDAOImpl.deleteUserById(102);
193.
194.
195.
196. //5.测试updateUser(User user)
197. System.out.println("\n5.测试updateUser(User user)");
198. User user2 = new User();
199. user2.setUserId(101);
200. user2.setUserName("myelifefly");
201. user2.setUserPassword("12345678");
202. user2.setUserFlag("超级");
203.
204. iUserDAOImpl.updateUser(user2);
205. System.out.println(iUserDAOImpl.queryUserById(101));
206.
207.
208. //6.测试List queryUserByName(String name)
209. System.out.println("6.测试List queryUserByName(String name)");
210. for(User user3:
iUserDAOImpl.queryUserByName("e"))
211. {
212. System.out.println(user3);
213.
214. }
215.
216.
217. //7.测试addUserBySequence(User user)
218. System.out.println("\n7.测试addUserBySequence(User user)");
219. User user7 = new User();
220. user7.setUserId(100);
221. user7.setUserName("good");
222. user7.setUserPassword("123456");
223. user7.setUserFlag("test");
224.
225. iUserDAOImpl.addUserBySequence(user7);
226.
227. for(User user8:
iUserDAOImpl.queryAllUser())
228. {
229. System.out.println(user8);
230.
231. }
232.
233.
234. }
235.
236.
237.
238.
239.}
240.
SqlMapConfig.xml
1.
xml version="1.0" encoding="UTF-8" ?
>
2.
3.
DOCTYPE sqlMapConfig
4. PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
5. "http:
//ibatis.apache.org/dtd/sql-map-config-2.dtd">
6.
7.
8.
9.
10.
11.
-- Configure a built-in transaction manager. If you're using an
12. app server, you probably want to use its transaction manager
13. and a managed datasource -->
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
-- List the SQL Map XML files. They can be loaded from the
28. classpath, as they are here (com.domain.data...) -->
29.
-- List more here...
30.
31.
32. -->
33.
34.
SqlMap.properties
1.driver=com.mysql.jdbc.Driver
2.url=jdbc:
mysql:
//localhost:
3306/college
3.username=root
4.password=123456
User.xml
1.
xml version="1.0" encoding="UTF-8" ?
>
2.
3.
DOCTYPE sqlMap
4. PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
5. "http:
//ibatis.apache.org/dtd/sql-map-2.dtd">
6.
7.
8.
9.
10.
-- 查找所有用户 -->
11.
12.
13.select * from user;
14.
15.
16.
17.
-- 通过id查找用户 -->
18.
-- parameterClass表示参数类型 -->
19.
20.select * from user
21.where userId = #userId#
22.
23.
24.
-- 添加用户 -->
25.
26.insert into user(userId,userName,userPassword,userFlag)
27.values(#userId#,#userName#,#userPassword#,#userFlag#);
28.
-- 注意这里的#userId#对应User.java中的get和set方法属性的,要与其对应,修改的时候要对应 -->
29.
30.
31.
-- 删除用户 -->
32.
33.delete from user
34.where userId = #userId#
35.
-- 特别注意:
这个delete中的 #userId#可以