MyBatis3-topic-01 -安装/下载/官方文档 -执行输入一条已经映射的sql语句

mybatis XML 映射配置文件 (官方文档)

  -对象工厂(objectFactory)

  -配置环境(environments)

  -映射器(mappers)


本地IDEA搭建/测试步骤

  1. 创建数据库
    1.   执行mysql查询
      CREATE DATABASE mybatis;
      CREATE TABLE tbl_employee(
         id INT(11) PRIMARY KEY AUTO_INCREMENT,
         last_name VARCHAR(25),
         gender CHAR(1),
         email VARCHAR(25)
      );
    2. 插入一条数据
  2. 加载jar包 :  
    1.   

       

    2. log4.jar 用于显示查询信息;
  3. 创建工程的资源文件夹(source folder) conf ,存储XML文件
    1.   
    2. <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
       
      <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
       
       <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
         <param name="Encoding" value="UTF-8" />
         <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
         </layout>
       </appender>
       <logger name="java.sql">
         <level value="debug" />
       </logger>
       <logger name="org.apache.ibatis">
         <level value="info" />
       </logger>
       <root>
         <level value="debug" />
         <appender-ref ref="STDOUT" />
       </root>
      </log4j:configuration>
      log4j.xml (用于辅助显示sql查询信息)
      <?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="day_01.EmployeeMapper">
          <select id="selectEmp" resultType="day_01.Employee">
              select id,last_name lastname,gender,email from tbl_employee where id = #{id}
          </select>
      </mapper>
      EmployeeMapper.xml
      <!--
      namespace: 名称空间
      id: 唯一标识
      resultType:返回值类型
      #{id} : 从传递过来的参数中取出id值
      !-->
    3. <?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>
          <environments default="development">
              <environment id="development">
                  <transactionManager type="JDBC"/>
                  <dataSource type="POOLED">
                      <property name="driver" value="com.mysql.jdbc.Driver"/>
                      <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                      <property name="username" value="root"/>
                      <property name="password" value="123456"/>
                  </dataSource>
              </environment>
          </environments>
              <!--将我们写好的sql映射文件{EmployeeMapper.xml},
              一定要注册到本全局配置文件{mybatis-config.xml}中-->
          <mappers>
              <mapper resource="EmployeeMapper.xml"/>
          </mappers>
      </configuration>
      全局配置文件{mybatis-config.xml}
  4. 创建Employee 的JavaBean类 , 加上toString()方法
    1.   

       

    2. package day_01;
      
      public class Employee {
          private Integer id;
          private String lastname,email,gender;
      
          @Override
          public String toString() {
              return "Employee{" +
                      "id=" + id +
                      ", lastname='" + lastname + '\'' +
                      ", email='" + email + '\'' +
                      ", gender='" + gender + '\'' +
                      '}';
          }
      
          public Integer getId() {
              return id;
          }
      
          public void setId(Integer id) {
              this.id = id;
          }
      
          public String getLastname() {
              return lastname;
          }
      
          public void setLastname(String lastname) {
              this.lastname = lastname;
          }
      
          public String getEmail() {
              return email;
          }
      
          public void setEmail(String email) {
              this.email = email;
          }
      
          public String getGender() {
              return gender;
          }
      
          public void setGender(String gender) {
              this.gender = gender;
          }
      }
      View Code
  5. 创建class MybatisTest01 测试类,执行并输入一条已经映射的sql语句
    1.   
      /**
       *  1. 根据xml配置文件(全局配置文件),创建一个sqlSessionFactory 对象,
       *      有一些运行环境的信息
       *  2.sql映射文件:配置了每一个sql ,以及sql的封装规则;
       *  3.将sql映射文件保存注册在全局配置文件中;
       *  4.写代码:
       *      1): 根据全局配置文件得到sqlSessionFactory;
       *      2): 使用sqlSession工厂,获得到sqlSession 对象,使用它来进行增删改查;
       *          一个sqlSession 就是代表和数据库的一次会话,用完关闭;
       *      3): 使用sql的唯一标识来告诉MyBatis执行那个sql,sql都是保存在sql映射文件中;
       */

       

public class MybatisTest01 {
    @Test
    public void test01() throws IOException {
            //第一步根据xml配置文件(全局配置文件)
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

            //第二步 ,获取sqlSession的实例,能够执行已经映射的sql语句
        SqlSession openSession=sqlSessionFactory.openSession();

        try {
            //格式: openSession.selectOne("mapper的namespace+id" , arg1:传入数据)
            Employee employee = openSession.selectOne("day_01.EmployeeMapper.selectEmp",1);
            System.out.println(employee);
        } finally {
            openSession.close();
        }
    }

}

 

posted @ 2018-11-26 17:24  山枫叶纷飞  阅读(247)  评论(0)    收藏  举报