mybatis详解-(7)增删改查

谁践踏了优雅 2022-06-06 01:27 284阅读 0赞

1.新建对象

新建对象Employee

  1. package org.mybatis.crud;
  2. public class Employee {
  3. private Integer id;
  4. private String lastName;
  5. private String email;
  6. private String gender;
  7. public Integer getId() {
  8. return id;
  9. }
  10. public void setId(Integer id) {
  11. this.id = id;
  12. }
  13. public String getLastName() {
  14. return lastName;
  15. }
  16. public void setLastName(String lastName) {
  17. this.lastName = lastName;
  18. }
  19. public String getEmail() {
  20. return email;
  21. }
  22. public void setEmail(String email) {
  23. this.email = email;
  24. }
  25. public String getGender() {
  26. return gender;
  27. }
  28. public void setGender(String gender) {
  29. this.gender = gender;
  30. }
  31. @Override
  32. public String toString() {
  33. return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email
  34. + ", gender=" + gender + "]";
  35. }
  36. }

2.新建Mapper接口

新建EmployeeMapper接口

  1. package org.mybatis.crud;
  2. public interface EmployeeMapper {
  3. public Employee getEmployeeById(int id);
  4. public void addEmployee(Employee employee);
  5. public void updateEmployee(Employee employee);
  6. public void deleteEmployee(int id);
  7. }

3.新建Mapper配置文件

新建配置文件crudmapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="org.mybatis.crud.EmployeeMapper">
  4. <!-- 查询方法 -->
  5. <!-- 传递单个参数,不用做特殊处理直接使用:#{任意名称的参数} -->
  6. <select id="getEmployeeById" resultType="org.mybatis.crud.Employee">
  7. select * from mybatis_employee where id = #{id}
  8. </select>
  9. <!-- 插入方法 -->
  10. <insert id="addEmployee" parameterType="org.mybatis.crud.Employee">
  11. insert into mybatis_employee
  12. (last_name,email,gender)
  13. values
  14. (#{lastName},#{email},#{gender});
  15. </insert>
  16. <!-- 更新方法 -->
  17. <update id="updateEmployee">
  18. update mybatis_employee
  19. set
  20. last_name = #{lastName},
  21. email = #{email},
  22. gender = #{gender}
  23. where
  24. id = #{id}
  25. </update>
  26. <!-- 删除方法 -->
  27. <delete id="deleteEmployee">
  28. delete from mybatis_employee where id = #{id}
  29. </delete>
  30. </mapper>

4.新建主配置文件

新建mybatis-config-crud.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <properties resource="db.properties"></properties>
  5. <settings>
  6. <setting name="mapUnderscoreToCamelCase" value="true"/>
  7. </settings>
  8. <environments default="development">
  9. <environment id="development">
  10. <transactionManager type="JDBC" />
  11. <dataSource type="POOLED">
  12. <property name="driver" value="${mysql.driver}" />
  13. <property name="url" value="${mysql.url}" />
  14. <property name="username" value="${mysql.username}" />
  15. <property name="password" value="${mysql.password}" />
  16. </dataSource>
  17. </environment>
  18. </environments>
  19. <mappers>
  20. <mapper resource="mapper/crudmapper.xml"/>
  21. </mappers>
  22. </configuration>

6.新建测试类

  1. package org.mybatis.crud;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. import org.junit.Test;
  9. /** * 使用接口式編程 * @author tang * */
  10. public class MybatisTest {
  11. public SqlSessionFactory getSqlSessionFactory() throws IOException{
  12. String resource = "mybatis-config-crud.xml";
  13. InputStream inputStream = Resources.getResourceAsStream(resource);
  14. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  15. return sqlSessionFactory;
  16. }
  17. @Test
  18. public void testMybatisSelect() {
  19. //测试查询
  20. SqlSessionFactory sqlSessionFactory = null;
  21. SqlSession sqlSession = null;
  22. try {
  23. sqlSessionFactory = getSqlSessionFactory();
  24. sqlSession = sqlSessionFactory.openSession();
  25. EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
  26. Employee employee = mapper.getEmployeeById(1);
  27. System.out.println("--------------------------" + employee + "--------------------------");
  28. } catch (IOException e) {
  29. e.printStackTrace();
  30. } finally {
  31. sqlSession.close();
  32. }
  33. }
  34. @Test
  35. public void testMybatisAdd() {
  36. //测试添加
  37. SqlSessionFactory sqlSessionFactory = null;
  38. SqlSession sqlSession = null;
  39. try {
  40. sqlSessionFactory = getSqlSessionFactory();
  41. //openSession可以添加参数,无参数表示不会自动提交,需要手动提交
  42. // sqlSession = sqlSessionFactory.openSession();
  43. sqlSession = sqlSessionFactory.openSession(true);
  44. EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
  45. Employee employee = new Employee();
  46. //mysql数据库设置id自增,oracle数据库待续
  47. employee.setLastName("huanhuan");
  48. employee.setEmail("tang_man@sina.com");
  49. employee.setGender("2");
  50. mapper.addEmployee(employee);
  51. // sqlSession.commit();
  52. } catch (IOException e) {
  53. e.printStackTrace();
  54. } finally {
  55. sqlSession.close();
  56. }
  57. }
  58. @Test
  59. public void testMybatisUpdate() {
  60. //测试修改
  61. SqlSessionFactory sqlSessionFactory = null;
  62. SqlSession sqlSession = null;
  63. try {
  64. sqlSessionFactory = getSqlSessionFactory();
  65. sqlSession = sqlSessionFactory.openSession();
  66. EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
  67. Employee employee = new Employee();
  68. //数据库设置id自增
  69. employee.setId(3);
  70. employee.setLastName("panpan");
  71. employee.setEmail("tang_man@sohu.com");
  72. employee.setGender("1");
  73. mapper.updateEmployee(employee);
  74. sqlSession.commit();
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. } finally {
  78. sqlSession.close();
  79. }
  80. }
  81. @Test
  82. public void testMybatisDelete() {
  83. //测试删除
  84. SqlSessionFactory sqlSessionFactory = null;
  85. SqlSession sqlSession = null;
  86. try {
  87. sqlSessionFactory = getSqlSessionFactory();
  88. sqlSession = sqlSessionFactory.openSession();
  89. EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
  90. mapper.deleteEmployee(1);
  91. sqlSession.commit();
  92. } catch (IOException e) {
  93. e.printStackTrace();
  94. } finally {
  95. sqlSession.close();
  96. }
  97. }
  98. }

发表评论

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

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

相关阅读