Mybatis源码学习(一)源码下载和简单Demo

1 源码下载

到mybatis的官网进行源码下载:https://mybatis.org/mybatis-3/

我们选择Source code下载

下载后解压,该项目是一个maven项目,我们用idea打开,目录结构如下

 

 2 Demo项目

 我们在源码工程下创建一个demo目录,存放我们的demo代码

               

MybatisMain.java
public class MybatisMain {
  public static void main(String[] args) throws IOException
  {
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession sqlSession = sqlSessionFactory.openSession();
    Blog blog = sqlSession.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
    System.out.println(blog.getContext());
  }
}

Blog.java

public class Blog {
  private Integer id;
  private String username;
  private String context;
  //省去了getter和setter
}

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="jdbc.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/BlogMapper.xml"/>
    </mappers>
</configuration>

jdbc.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root

BlogMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
    <select id="selectBlog" resultType="org.apache.ibatis.demo.Blog">
        select * from Blog where id = #{id}
    </select>
</mapper>

最后需要注意的是我们要把pom文件中的如下部分注释掉,要不然运行会报错。

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.24</version>
      <!--<scope>test</scope>注释掉-->
    </dependency>

同时,我们要有一个mysql实例,配置见jdbc.properties

mysql> use test
Database changed
mysql> select * from blog;
+------+----------+---------+
| id   | username | context |
+------+----------+---------+
|  101 | szj      | hello   |
+------+----------+---------+
1 row in set (0.00 sec)
mysql>

运行结果

"C:\Program Files (x86)\Java\jdk1.8.0_181\bin\java" ...
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
hello

Process finished with exit code 0

下一节我们将剖析以上示例的运行原理

 

 

 

posted @ 2021-12-04 09:28  zhenjingcool  阅读(1353)  评论(0编辑  收藏  举报