【Mybatis】(一)第一个mybatis实例

1、MyBatis简介

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2、Mybatis第一个程序

2.1 准备开发环境

【Mybatis】(一)第一个mybatis实例_第1张图片

2.2 添加jar包

【Mybatis】
      mybatis-3.4.6.jar

【MySQL】
      mysql-connector-java-5.1.42-bin.jar
【Mybatis】(一)第一个mybatis实例_第2张图片

2.3 创建数据库和表

数据库名为 mybatis,表名为 tb1_employee。

CREATE TABLE `tb1_employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `last_name` varchar(255) DEFAULT NULL,
  `gender` char(1) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

insert  into `tb1_employee`(`id`,`last_name`,`gender`,`email`) values (2,'lhk','1','[email protected]');

【Mybatis】(一)第一个mybatis实例_第3张图片

2.4 使用Mybatis查询数据

1、创建对应于数据库字段的实体类

package com.lhk.mybatis.beans;

public class Employee {

    private Integer id;
    private String lastName;
    private String email;
    private String 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;
    }
    @Override
    public String toString() {
        return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", 
        gender=" + gender + "]";
    }
}

2、添加Mybatis的配置文件mybatis-config.xml




<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="13579" />
            dataSource>
        environment>
    environments>

    
    <mappers>
        <mapper resource="EmployeeMapper.xml" />
    mappers>
configuration>

3、定义操作表的sql映射文件EmployeeMapper.xml




<mapper namespace="com.lhk.mybatis.EmployeeMapper">

    

    <select id="selectEmp" resultType="com.lhk.mybatis.beans.Employee">
        select id,last_name lastname,gender,email from tb1_employee where id = #{id}
    select>
mapper>

4、编写测试代码:执行定义的select语句

package com.lhk.mybatis.test;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.lhk.mybatis.beans.Employee;

public class MyBatisTest {

    /**
     * 1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源的运行环境信息
     * 2、sql映射文件;配置了每一个sql,以及sql的封装规则等。 
     * 3、将sql映射文件注册在全局配置文件中
     * 4、写代码:
     *      1)、根据全局配置文件得到SqlSessionFactory;
     *      2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
     *          一个sqlSession就是代表和数据库的一次会话,用完关闭
     *      3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。
     * 
     * @throws IOException
     */
    @Test
    public void test() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        /*2、获取sqlSession实例,能直接执行已经映射的sql语句*/
        SqlSession openSession = sqlSessionFactory.openSession();

        try {
            /* sql语句的唯一标识
               执行sql要用的参数 */                                           namespace+id
            Employee employee = openSession.selectOne("com.lhk.mybatis.EmployeeMapper.selectEmp", 2);
            System.out.println(employee);
        } finally {
            openSession.close(); // 关闭openSession       
        }   
    }
}

5、运行结果,成功查询出id为2的所有Employee数据
【Mybatis】(一)第一个mybatis实例_第4张图片

你可能感兴趣的:(【Mybatis】(一)第一个mybatis实例)