MyBatis —— HelloWold

1、先准备例子中的表结构

create table `tbl_employee`( 
    `id` int(11) primary key auto_increment, 
    `last_name` varchar(255) not null ,
    `gender` char(1) not null,
    `email` varchar(255) not null
);

2、创建maven+spring+springmvc项目,pom文件中需要注入mybatis-spring的依赖,mybatis-spring2.0与Spring 框架5.0兼容

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.4</version>
</dependency>

3、创建Mybatis全局配置文件

全局配置文件:包含数据库连接池信息,事务管理器信息等...系统运行环境信息

<?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>
    <!-- mybatis 可以使用properties来引入外部peoperties配置文件的内容
        resource:引入类路径下的资源
        url:除此之外还可以使用url引入网络路径或者磁盘下的资源-->
    <properties resource="dbconfig.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 将EmployeeMapper.xml注册到全局配置文件中-->
    <mappers>
        <mapper resource="mapper/EmployeeMapper.xml"/>
    </mappers>
</configuration>

4、创建数据源文件

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis?useUnicode=true&useSSL=false
jdbc.username = root
jdbc.password = abcd123456

5、创建javabean

package com.sangyu.bean;

public class Employee {
    private Integer id;
    private String lastName;
    private String email;
    private String gender;

    public void setId(Integer id) {
        this.id = id;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }

    public Integer getId() {
        return id;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getGender() {
        return gender;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", lastName='" + lastName + '\'' +
                ", email='" + email + '\'' +
                ", gender='" + gender + '\'' +
                '}';
    }

    public Employee(Integer id,String lastName,String email,String gender){
        this.email = email;
        this.lastName = lastName;
        this.id = id;
        this.gender = gender;
    }
    public Employee(){
    }
}

6、创建EmployeeMapper.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">
<!--namespace:因为没有对应mapper这里的名字可以任意起-->
<mapper namespace="com.sangyu.mapper.EmployeeMapper">
    <!--
    id:唯一标识
    resultType:返回值类型,对应的Bean类型
    {#id}:从传递过来的参数中取出id值-->
    <select id="getEmpId" resultType="com.sangyu.bean.Employee">
    select * from tbl_employee where id = #{id}
  </select>
</mapper>

7、创建test

public class MyBatisTest {
    @Test
    public void Test() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 根据xml创建sqlSessionFactory
        SqlSession session = sqlSessionFactory.openSession(); // 2. 从 SqlSessionFactory 中获取 SqlSession 的实例,SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句
        Employee employee = session.selectOne("com.sangyu.mapper.EmployeeMapper.getEmpId",1); // selectOne需要传递2个参数,第一个参数是mapper.xml中的namespace+select中的id,第二是需要sql中需要查询的参数
        System.out.println(employee);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java-内部类

    如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象(在静态方法内部创建某个内部类的对象),那么必须像在main()方法中那样,具体地指明这个对象的类型...

    桑鱼
  • @CookieValue注解(5)

    桑鱼
  • @RequestMapping 注解(2)

    SpringMVC 使用@RequestMapping注解为控制器指定可以处理哪些URL请求,在控制器的类定义及方法定义处都可标注:

    桑鱼
  • java学习之第五章编程题示例(初学篇)

    1 /* 2 Animal.java 3 */ 4 package animal; 5 6 public abstract class Animal { ...

    Gxjun
  • Android精通之Handler讲解

    软件技术人员,时代作者,从 Android 到全栈之路,我相信你也可以!阅读他的文章,会上瘾!You and me, we are family !

    达达前端
  • 设计模式-组合实体模式

    通常我们收快递,有时候上班期间真的没有空去收啊,所有就会委托其他人,或者说让房管代收一下,然后房管会统一放到一个地方,下再我们再去取,而这个统一管理,我们就不用...

    逍遥壮士
  • 【java开发系列】—— 嵌套类与内部类

    嵌套类与内部类在java中使用的很广泛,为了避免难以理解,这里用了几个小例子,说明它的用法。   嵌套类与内部类的结构如下图 ?   静态嵌套类     ...

    用户1154259
  • 数据源管理 | Kafka集群环境搭建,消息存储机制详解

    Kafka集群中有一个broker会被选举为Controller,Controller依赖Zookeeper环境,管理集群broker的上下线,所有topic的...

    知了一笑
  • Java描述设计模式(02):简单工厂模式

    1)、OCP原则:软件实体,如类、模块和函数,应当对扩展开放,但对修改关闭。 2)、违反设计模式的OCP原则,新增食品类不方便扩展,代码改动较大。

    知了一笑
  • 事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[上篇]

    最近这两天一直在忙着为一个项目检查内存泄漏(Memory Leak)的问题,对相关的知识进行了一下简单的学习和探索,其间也有了一些粗浅的经验积累,今天特意写一篇...

    蒋金楠

扫码关注云+社区

领取腾讯云代金券