Ibatis框架学习
- 格式:doc
- 大小:65.50 KB
- 文档页数:15
根据传智播客ibatis视频教程编写的入门例子收藏IUserDAOImpl.java1.package com.elifefly;2./*3. * 说明:程序是根据传智播客ibatis视频教程编写的入门例子。
4. * 目的在于熟悉ibatis的基本原理和基本使用方法。
5. * 因而程序并没有过多的开发成一个系统,ibatis视频教程也没有做成系统的,也没有给任何源代码。
6. *7. * 开发环境:MyEclipse 6.08. * 数据库:MySQL5.09. *10. * 要添加的jar包:mysql-connector-java-3.1.10-bin.jar11. * 和ibatis-2.3.3.720压缩包下的lib文件夹下的ibatis-2.3.3.720.jar12. *13. * 测试使用,选中IUserDAOImpl.java文件,选择run as Java Application14. */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 IUserDAO27.{28.29. private static SqlMapClient sqlMapClient = null;30.31. static32. {33. try34. {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 block42. e.printStackTrace();43. }44.45. }46.47.//添加用户48. public void addUser(User user)49. {50. try51. {52. sqlMapClient.insert("insertUser",user);53. } catch (SQLException e)54. {55. // TODO Auto-generated catch block56. e.printStackTrace();57. }58.59. }60.61.//添加用户,获取自动增长的序列号,处理添加相同的userId情况62. public void addUserBySequence(User user)63. {64. try65. {66. sqlMapClient.insert("insertUserBySequence",user);67. } catch (SQLException e)68. {69. // TODO Auto-generated catch block70. e.printStackTrace();71. }72.73. }74.75.//删除用户76. public void deleteUserById(int id)77. {78. try79. {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 block87. e.printStackTrace();88. }89.90. }91.92.//查找所有用户93. public List<User> queryAllUser()94. {95. List<User> userList = null;96.97. try98. {99. userList = sqlMapClient.queryForList("selectAllUser"); 100. } catch (SQLException e)101. {102. // TODO Auto-generated catch block103. e.printStackTrace();104. }105.106. return userList;107. }108.109.//通过id查找用户110. public User queryUserById(int id)111. {112. User user = null;113. try114. {115. user = (User)sqlMapClient.queryForObject("selectUserById",id);116. } catch (SQLException e)117. {118. // TODO Auto-generated catch block119. e.printStackTrace();120. }121.122. return user;123. }124.125.//模糊查询,通过用户名查找用户126. public List<User> queryUserByName(String name)127. {128. List<User> userList = null;129. try130. {131. userList = sqlMapClient.queryForList("selectUserByName",na me);132.133. } catch (SQLException e)134. {135. // TODO Auto-generated catch block136. e.printStackTrace();137. }138. return userList;139. }140.141.//修改用户142. public void updateUser(User user2)143. {144. try145. {146. System.out.println(sqlMapClient.update("updateUserById",us er2));147. //如果打印出来的值大于0,说明更新成功148. System.out.println("如果打印出来的值大于0,说明更新成功"); 149. } catch (SQLException e)150. {151. // TODO Auto-generated catch block152. e.printStackTrace();153. }154. }155.156.157.158.159.160. public static void main(String[] args)161. {162. // TODO Auto-generated method stub163. 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<User> queryUserByName(String name)209. System.out.println("6.测试List<User> 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.xml1.<?xml vers ion="1.0" encoding="UTF-8" ?>2.3.<!DOCTYPE sqlMapConfig4. PUBLIC "-////DTD SQL Map Config 2.0//EN"5. "/dtd/sql-map-config-2.dtd">6.7.<sqlMapConfig>8.9.<properties resource="com/elifefly/SqlMap.properties" />10.11. <!-- Configure a built-in transaction manager. If you're using an12. app server, you probably want to use its transaction manager13. and a managed datasource -->14. <transactionManager type="JDBC" >15.16. <dataSource type="SIMPLE">17. <property value="${driver}" name="JDBC.Driver" />18. <property value="${url}" name="JDBC.ConnectionURL" />19. <property value="${username}" name="ername" />20. <property value="${password}" name="JDBC.Password" />21. </dataSource>22. </transactionManager>23.24.25. <sqlMap resource="com/elifefly/User.xml"/>26.27. <!-- List the SQL Map XML files. They can be loaded from the28. classpath, as they are here (com.domain.data...) -->29. <!-- List more here...30. <sqlMap resource="com/mydomain/data/Order.xml"/>31. <sqlMap resource="com/mydomain/data/Documents.xml"/>32. -->33.34.</sqlMapConfig>SqlMap.properties1.driver=com.mysql.jdbc.Driver2.url=jdbc:mysql://localhost:3306/collegeername=root4.password=123456User.xml1.<?xml vers ion="1.0" encoding="UTF-8" ?>2.3.<!DOCTYPE sqlMap4. PUBLIC "-////DTD SQL Map 2.0//EN"5. "/dtd/sql-map-2.dtd">6.7.<sqlMap>8.9.<typeAlias alias="User" type="er" />10.<!-- 查找所有用户 -->11.<select id="selectAllUser" resultClass="User" >12.13.select * from user;14.15.</select>16.17.<!-- 通过id查找用户 -->18.<!-- parameterClass表示参数类型 -->19.<select id="selectUserById" parameterClass="int" resultClass="User">20.select * from user21.where userId = #userId#22.</select>23.24.<!-- 添加用户 -->25.<insert id="insertUser" parameterClass="User">26.insert into user(userId,userName,userPassword,userFlag)27.values(#userId#,#userName#,#userPassword#,#userFlag#);28.<!-- 注意这里的#userId#对应User.java中的get和set方法属性的,要与其对应,修改的时候要对应 -->29.</insert>30.31.<!-- 删除用户 -->32.<delete id="deleteUserById" parameterClass="int">33.delete from user34.where userId = #userId#35.<!-- 特别注意:这个delete中的 #userId#可以改为任意的其他如 #Id#等,而在其他如select等语句不可行 -->36.</delete>37.38.<!-- 修改用户 -->39.<update id="updateUserById" parameterClass="User">40.update user41.set userName = #userName#,42. userPassword = #userPassword#,43. userFlag = #userFlag#44.where userId = #userId#45.</update>46.47.<!-- 模糊查询,通过用户名查找用户 -->48.<select id="selectUserByName" parameterClass = "String" resultClass = "User">49.select userId,userName,userPassword,userFlag50.from user51.where userName like '%$userName$%'52.<!-- 非常注意:这个'%$userName$%'中的$符号和#的不同使用之处,$表示会用变量的只替换掉,用#是不行的,#是占位符 -->53.</select>54.55.56.<!-- 添加用户,获取自动增长的序列号,处理添加相同的userId情况 -->57.<insert id="insertUserBySequence" parameterClass = "User" >58.<selectKey resultClass = "int" keyProperty="userId" >59.SELECT @@IDENTITY as userId60.</selectKey>61.62.insert into user(userId,userName,userPassword,userFlag)63.values(#userId#,#userName#,#userPassword#,#userFlag#);64.65.</insert>66.67.68.69.</sqlMap>User.java1.package com.elifefly;2.3.public class User4.{5. //注意必须保证有一个无参数方法,否则出错。