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;
      }
      }
  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();
}
} }

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

  1. 在 Ubuntu 上安装 TensorFlow (官方文档的翻译)

    本指南介绍了如何在 Ubuntu 上安装 TensorFlow.这些指令也可能对其他 Linux 变体起作用, 但是我们只在Ubuntu 14.04 或更高版本上测试了(我们只支持)  这些指令. 一 ...

  2. selenium安装及官方文档

    selenium-python官方文档: https://selenium-python.readthedocs.io/ python3.5已安装的情况下,安装示意图如下 命令行输入 pip3 ins ...

  3. ubuntu16.04下snort的安装(官方文档安装)(图文详解)

    不多说,直接上干货! 最近为了科研,需要安装和使用Snort. snort的官网 https://www.snort.org/ Snort作为一款优秀的开源主机入侵检测系统,在windows和Linu ...

  4. ubuntu14.04下snort的安装(官方文档安装)(图文详解)

    不多说,直接上干货! 最近为了科研,需要安装和使用Snort. snort的官网 https://www.snort.org/ Snort作为一款优秀的开源主机入侵检测系统,在windows和Linu ...

  5. keepalived 安装篇-官方文档

    官方安装文档 http://www.keepalived.org/doc/installing_keepalived.html Installing Keepalived Install keepal ...

  6. Daphile 安装手册 -- 官方文档译文 [原创]

    Daphile 安装手册(Daphile Installation) 英文原文:https://www.daphile.com/download/DaphileInstallation.pdf 采集日 ...

  7. Elasticsearch官方文档离线访问实操指南

    文章转载自:https://mp.weixin.qq.com/s/Cn9ddkj-cne5pKtfOgNPbg 延申一下,不仅能下载Elasticsearch官方文档,还能下载其他软件的官方文档,详看 ...

  8. MyBatis官方文档——入门

    入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可. 如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 ...

  9. CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)

    安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...

随机推荐

  1. 洛谷 题解 UVA247 【电话圈 Calling Circles】

    [题意] 如果两个人互相打电话(直接或者间接),则说他们在同一个电话圈里.例如,\(a\)打给\(b\),\(b\)打给\(c\),\(c\)打给\(d\),\(d\)打给\(a\),则这四个人在同一 ...

  2. git下载仓库的部分目录

    有这样的需求,比如某个仓库里包含可执行文件[编译后的文件]或jar包之类的,他们太大我不需要而且我自己可以编译或导入: 或者是某个仓库是自己专门用来放demos的,里面有很多的demo项目,我可能只想 ...

  3. Deepin安装前分区总结

    linux的分区的概念应该这么理解,为某个目录创建/挂载分区,比如为/home创建/挂载到某个分区上: 1.需要/boot分区,1.5G: 2./分区,100G:[会自动创建其他目录如/srv,/ro ...

  4. LeetCode 53. 最大子序和(Maximum Subarray)

    53. 最大子序和 53. Maximum Subarray 题目描述 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. LeetCode53. M ...

  5. Spyder中报错: Check failed: PyBfloat16_Type.tp_base != nullptr

    报错问题: 问题1:tensorflow/python/lib/core/bfloat16.cc:675] Check failed: PyBfloat16_Type.tp_base != nullp ...

  6. 剑指offer41:所有和为S的连续正数序列,例如,有多少种连续的正数序列的和为100

    1 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久 ...

  7. bootstrap栅格系统的container和row一些关系

    container有个15px的padding,而我们设定的每个col也都有15px的padding,如果两者直接配合,那么就会产生30px的间距,导致内容和浏览器边框的距离较大,所以用row将所有的 ...

  8. Redis 如何与数据库事务保持一致

    考虑一个问题,redis 如何 与 数据库保持一致性的问题. 举栗子:如果我们在开发过程中遇到这样的一种情况,我们删除 redis中token 的同时 也需要修改数据库中 储存的 token 的状态为 ...

  9. MySQL 体系结构及存储引擎

    MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...

  10. 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)

    原文:在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉 ...