源码分析之前先搭一个mybatis的demo,这个在看源码的时候能起到了很大的作用,因为在看源码的时候,会恍然大悟,为什么要这么配置,为什么要这么写。(老鸟可以跳过这篇)

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6.  
  7. <groupId>com.mybatis.chenhao</groupId>
  8. <artifactId>mybatisDemo</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10.  
  11. <properties>
  12. <!-- mybatis版本号 -->
  13. <mybatis.version>3.4.2</mybatis.version>
  14. </properties>
  15. <dependencies>
  16.  
  17. <!--mybatis依赖 -->
  18. <dependency>
  19. <groupId>org.mybatis</groupId>
  20. <artifactId>mybatis</artifactId>
  21. <version>${mybatis.version}</version>
  22. </dependency>
  23. <!-- mysql驱动包 -->
  24. <dependency>
  25. <groupId>mysql</groupId>
  26. <artifactId>mysql-connector-java</artifactId>
  27. <version>5.1.44</version>
  28. </dependency>
  29.  
  30. </dependencies>
  31.  
  32. </project>

mybatis-config.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.  
  5. <!-- 引入外部配置文件 -->
  6. <properties resource="db.properties"></properties>
  7. <environments default="default">
  8. <environment id="default">
  9. <transactionManager type="JDBC"></transactionManager>
  10. <dataSource type="POOLED">
  11. <property name="driver" value="${jdbc.driver}"/>
  12. <property name="url" value="${jdbc.url}"/>
  13. <property name="username" value="${jdbc.username}"/>
  14. <property name="password" value="${jdbc.password}"/>
  15. </dataSource>
  16. </environment>
  17. </environments>
  18.  
  19. <mappers>
  20. <mapper class="mapper.DemoMapper"></mapper>
  21. </mappers>
  22. </configuration>

db.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8
  3. jdbc.username=chenhao
  4. jdbc.password=123456

Employee

  1. package entity;
  2. /***
  3. *
  4. *@Author ChenHao
  5. *@Description:
  6. *@Date: Created in 14:58 2019/10/26
  7. *@Modified By:
  8. *
  9. */
  10. public class Employee {
  11. int id;
  12. String name;
  13. public int getId() {
  14. return id;
  15. }
  16. public void setId(int id) {
  17. this.id = id;
  18. }
  19. public String getName() {
  20. return name;
  21. }
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25. @Override
  26. public String toString() {
  27. return "Employee{" +
  28. "id=" + id +
  29. ", name='" + name + '\'' +
  30. '}';
  31. }
  32. }

EmployeeMapper

  1. package mapper;
  2. import entity.Employee;
  3. import java.util.List;
  4. /***
  5. *
  6. *@Author ChenHao
  7. *@Description:
  8. *@Date: Created in 14:58 2019/10/26
  9. *@Modified By:
  10. *
  11. */
  12. public interface EmployeeMapper {
  13. List<Employee> getAll();
  14. }

EmployeeMapper.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="mapper.EmployeeMapper">
  4.  
  5. <resultMap id="baseMap" type="entity.Employee">
  6. <result property="id" column="id" jdbcType="INTEGER"></result>
  7. <result property="name" column="name" jdbcType="VARCHAR"></result>
  8.  
  9. </resultMap>
  10. <select id="getAll" resultMap="baseMap">
  11. select * from employee
  12. </select>
  13. </mapper>
  1. public static void main(String[] args) throws IOException {
  2. String resource = "mybatis-config.xml";
  3. InputStream inputStream = Resources.getResourceAsStream(resource);
  4. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  5. SqlSession sqlSession = sqlSessionFactory.openSession();
  6. try {
  7. Employee employeeMapper = sqlSession.getMapper(Employee.class);
  8. List<Employee> all = employeeMapper.getAll();
  9. for (Employee item : all)
  10. System.out.println(item);
  11. } finally {
  12. sqlSession.close();
  13. }
  14. }

测试结果:

  1. Employee{id=1, name='name1'}
  2. Employee{id=2, name='name2'}
  3. Employee{id=3, name='name3'}

好了,MyBatis HelloWorld我们已经搭建完了,后面的源码分析文章我们将以这个为基础来分析

 

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