mybatis实现查找列表以及增删改差

傷城~ 2022-05-20 08:45 191阅读 0赞

1、首先创建User类与表中结构相对应

70

User.class,写好getter和setter方法。

  1. package com.xiao.mybatis.bean;
  2. public class User {
  3. private int id;
  4. private String name;
  5. int age;
  6. String sex;
  7. String school;
  8. public int getId() {
  9. return id;
  10. }
  11. public void setId(int id) {
  12. this.id = id;
  13. }
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public int getAge() {
  21. return age;
  22. }
  23. public void setAge(int age) {
  24. this.age = age;
  25. }
  26. public String getSex() {
  27. return sex;
  28. }
  29. public void setSex(String sex) {
  30. this.sex = sex;
  31. }
  32. public String getSchool() {
  33. return school;
  34. }
  35. public void setSchool(String school) {
  36. this.school = school;
  37. }
  38. }

2、写IUser接口映射文件,里面有增删改差和获取用户列表的方法。

  1. package com.xiao.mybatis.dao;
  2. import com.xiao.mybatis.bean.User;
  3. import java.util.List;
  4. public interface IUser {
  5. public List<User> getUserList();
  6. public void insertUser(User user);
  7. public void updateUser(User user);
  8. public void deleteUser(int id);
  9. public User getUser(int id);
  10. }

3、写mapper映射文件User.xml

其中,有对应IUser接口中,每一个方法的sql语句类型,语句具体值,参数类型和返回值类型。namespace一定要是IUser所在的位置。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.xiao.mybatis.dao.IUser">
  5. <select id="getUser" parameterType="int" resultType="com.xiao.mybatis.bean.User">
  6. SELECT *
  7. FROM USER
  8. WHERE id = #{id}
  9. </select>
  10. <insert id="insertUser" parameterType="User">
  11. INSERT INTO USER (id,name,age,sex,school)
  12. VALUES (#{id},#{name},#{age},#{sex},#{school})
  13. </insert>
  14. <select id="getUserList" resultType="com.xiao.mybatis.bean.User">
  15. select * FROM USER
  16. </select>
  17. <update id="updateUser" parameterType="User">
  18. UPDATE USER
  19. SET
  20. name=#{name},
  21. age = #{age},
  22. sex = #{sex},
  23. school = #{school}
  24. WHERE
  25. id =
  26. #{id}
  27. </update>
  28. <delete id="deleteUser" parameterType="int">
  29. DELETE FROM USER WHERE id = #{id}
  30. </delete>
  31. </mapper>

4、编写主类进行测试。

  1. package com.xiao.mybatis.bean;
  2. /*
  3. *
  4. * 实现增删改查
  5. * */
  6. import com.xiao.mybatis.dao.IUser;
  7. import org.apache.ibatis.io.Resources;
  8. import org.apache.ibatis.session.SqlSession;
  9. import org.apache.ibatis.session.SqlSessionFactory;
  10. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  11. import java.io.Reader;
  12. import java.text.MessageFormat;
  13. import java.util.List;
  14. public class DemoTest {
  15. private static SqlSessionFactory sqlSessionFactory;
  16. static {
  17. try{
  18. Reader reader = Resources.getResourceAsReader("mybatis-remote-config.xml");
  19. sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  20. }catch (Exception e){
  21. e.printStackTrace();
  22. }
  23. }
  24. public static void main(String[] args) {
  25. SqlSession session = sqlSessionFactory.openSession();
  26. try{
  27. // 用户数据列表
  28. //getUserList();
  29. //插入数据
  30. //testInsert();
  31. // 更新用户
  32. testUpdate();
  33. // 删除数据
  34. //testDelete();
  35. }finally {
  36. session.close();
  37. }
  38. }
  39. /*
  40. * 添加用户信息
  41. * */
  42. public static void testInsert(){
  43. try{
  44. SqlSession session = sqlSessionFactory.openSession();
  45. //获取mapper
  46. IUser userMapper = session.getMapper(IUser.class);
  47. System.out.println("Test insert>>>>>>>>>>>>>");
  48. //执行插入
  49. User user = new User();
  50. user.setId(8);
  51. user.setName("提莫");
  52. user.setAge(5);
  53. user.setSex("未知");
  54. user.setSchool("约德尔");
  55. userMapper.insertUser(user);
  56. //提交事务
  57. session.commit();
  58. //插入之后显示用户信息
  59. System.out.println("after insert>>>>>>>>>>>>");
  60. getUserList();
  61. System.out.println("Test insert finished>>>>>>>>>>>>");
  62. }catch (Exception e){
  63. e.printStackTrace();
  64. }
  65. }
  66. /*
  67. * 获取用户列表
  68. * */
  69. public static void getUserList(){
  70. try{
  71. SqlSession session = sqlSessionFactory.openSession();
  72. IUser iuser = session.getMapper(IUser.class);
  73. //显示user信息
  74. System.out.println("Test Get Start>>>>>>>>>>>>");
  75. printUsers(iuser.getUserList());
  76. System.out.println("Test get finished>>>>>>>>>>");
  77. }catch (Exception e){
  78. e.printStackTrace();
  79. }
  80. }
  81. public static void testUpdate()
  82. {
  83. try
  84. {
  85. SqlSession session = sqlSessionFactory.openSession();
  86. IUser iuser = session.getMapper(IUser.class);
  87. System.out.println("Test update start...");
  88. printUsers(iuser.getUserList());
  89. // 执行更新
  90. User user = iuser.getUser(8);
  91. user.setName("New name");
  92. iuser.updateUser(user);
  93. // 提交事务
  94. session.commit();
  95. // 显示更新之后User信息
  96. System.out.println("After update");
  97. printUsers(iuser.getUserList());
  98. System.out.println("Test update finished...");
  99. }catch (Exception e)
  100. {
  101. e.printStackTrace();
  102. }
  103. }
  104. // 删除用户信息
  105. public static void testDelete()
  106. {
  107. try
  108. {
  109. SqlSession session = sqlSessionFactory.openSession();
  110. IUser iuser = session.getMapper(IUser.class);
  111. System.out.println("Test delete start...");
  112. // 显示删除之前User信息
  113. System.out.println("Before delete");
  114. printUsers(iuser.getUserList());
  115. // 执行删除
  116. iuser.deleteUser(7);
  117. // 提交事务
  118. session.commit();
  119. // 显示删除之后User信息
  120. System.out.println("After delete");
  121. printUsers(iuser.getUserList());
  122. System.out.println("Test delete finished...");
  123. }catch (Exception e)
  124. {
  125. e.printStackTrace();
  126. }
  127. }
  128. /**
  129. *
  130. * 打印用户信息到控制台
  131. *
  132. * @param users
  133. */
  134. private static void printUsers(final List<User> users) {
  135. int count = 0;
  136. for (User user : users) {
  137. System.out.println(MessageFormat.format(
  138. "============= User[{0}]=================", ++count));
  139. System.out.println("User Id: " + user.getId());
  140. System.out.println("User Name: " + user.getName());
  141. System.out.println("User Age: " + user.getAge());
  142. System.out.println("User Sex: " + user.getSex());
  143. System.out.println("User school:" + user.getSchool());
  144. }
  145. }
  146. }

5、别忘了还有mybatis配置文件。mybatis-remote-config.xml。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5. <typeAliases>
  6. <typeAlias alias="User" type="com.xiao.mybatis.bean.User"/>
  7. </typeAliases>
  8. <environments default="development">
  9. <environment id="development">
  10. <transactionManager type="JDBC"/>
  11. <dataSource type="POOLED">
  12. <property name="driver" value="com.mysql.jdbc.Driver"/>
  13. <property name="url" value="jdbc:mysql://10.2.17.205:3306/IOTDB?useUnicode=true&characterEncoding=UTF-8"/>
  14. <property name="username" value="IOTUSER"/>
  15. <property name="password" value="******/>
  16. </dataSource>
  17. </environment>
  18. </environments>
  19. <mappers>
  20. <mapper resource="com/xiao/mybatis/xml/User.xml"/>
  21. </mappers>
  22. </configuration>

参考教程

Mybatis增删改查

发表评论

表情:
评论列表 (有 0 条评论,191人围观)

还没有评论,来说两句吧...

相关阅读