入门学习中已经创建好maven项目,并导入相关依赖,接下来就可以利用mybatis对数据库进行操作
数据库包含两个表:
image
image
image

在pojo层创建一个Employee实体类
image

  1. package com.neuedu.pojo;
  2. import java.util.Date;
  3. public class Employee {
  4. private Integer id;
  5. private String loginName;
  6. private String password;
  7. private String name;
  8. private Date hiredate;
  9. private String email;
  10. private Integer status;
  11. private String photoPath;
  12. private Integer deptId;
  13. public Integer getId() {
  14. return id;
  15. }
  16. public void setId(Integer id) {
  17. this.id = id;
  18. }
  19. public String getLoginName() {
  20. return loginName;
  21. }
  22. public void setLoginName(String loginName) {
  23. this.loginName = loginName;
  24. }
  25. public String getPassword() {
  26. return password;
  27. }
  28. public void setPassword(String password) {
  29. this.password = password;
  30. }
  31. public String getName() {
  32. return name;
  33. }
  34. public void setName(String name) {
  35. this.name = name;
  36. }
  37. public Date getHiredate() {
  38. return hiredate;
  39. }
  40. public void setHiredate(Date hiredate) {
  41. this.hiredate = hiredate;
  42. }
  43. public String getEmail() {
  44. return email;
  45. }
  46. public void setEmail(String email) {
  47. this.email = email;
  48. }
  49. public Integer getStatus() {
  50. return status;
  51. }
  52. public void setStatus(Integer status) {
  53. this.status = status;
  54. }
  55. public String getPhotoPath() {
  56. return photoPath;
  57. }
  58. public void setPhotoPath(String photoPath) {
  59. this.photoPath = photoPath;
  60. }
  61. public Integer getDeptId() {
  62. return deptId;
  63. }
  64. public void setDeptId(Integer deptId) {
  65. this.deptId = deptId;
  66. }
  67. @Override
  68. public String toString() {
  69. return "Employee [id=" + id + ", loginName=" + loginName + ", password=" + password + ", name=" + name
  70. + ", hiredate=" + hiredate + ", email=" + email + "]";
  71. }
  72. }

可以直接在resources下创建xml映射文件,EmpMapper.xml
如果idea识别不出xml文件,可以看IDEA创建Mapper.xml文件识别不成功的问题参考一下

基本格式

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="">
  6. </mapper>

根标签mapper的namespace属性现在可以随意给值 ,但当使用mapper代理方式开发时,有特定的取值。

sql语句

  1. <select id="findEmpById" parameterType="int" resultType="com.neuedu.pojo.Employee">
  2. <!-- id就是这条语句的唯一标识,parameterType是员工id的属性,resultType是返回类型,要把实体类的路径写完整 -->
  3. select * from tb_emp where id = #{value}
  4. <!-- 占位符要使用#{} parameterType的类型如果为 简单类型(基本类型和String),#{}中的值任意。-->
  5. </select>

测试
创建一个测试类

  1. package com.neuedu.test;
  2. import java.io.InputStream;
  3. import org.apache.ibatis.io.Resources;
  4. import org.apache.ibatis.session.SqlSession;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  7. import org.junit.Test;
  8. import com.neuedu.pojo.Employee;
  9. public class TestMybatis {
  10. @Test
  11. public void testFindById() throws Exception{
  12. InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
  13. sf = new SqlSessionFactoryBuilder().build(in);
  14. SqlSession session = sf.openSession();
  15. Employee emp = session.selectOne("findEmpById", 3);
  16. System.out.println(emp.getName());
  17. session.close();
  18. }
  19. }

查询实质上调用的还是session,session调用完成后要关闭

  1. InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
  2. 该语句引入了映射文件,还需要由映射文件去寻找sql语句所在的文件EmpMapper.xml
  3. 所以要在SqlMapConfig.xml中引入EmpMapper.xml

image

测试结果

image

对比数据库

image
成功

版权声明:本文为lumis原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lumis/p/15111179.html