MyBatis - 使用示例 (一)单独使用

MyBatis - 使用示例 (一)单独使用

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录

越来越多的企业已经将 MyBatis 使用到了正式的生产环境,本系列就先介绍几种简单使用 MyBatis 的方式。

一、单独使用 MyBatis 访问数据库

(一)引入依赖

各位参照的小伙伴们,注意下版本最好一致,避免出现不可预估的问题。

<dependencies>
    
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
        <version>3.5.6version>
    dependency>
    
    <dependency>
        <groupId>junitgroupId>
        <artifactId>junitartifactId>
        <version>4.12version>
        <scope>testscope>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <version>8.0.20version>
    dependency>
    
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
        <version>1.18.12version>
    dependency>
    
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>fastjsonartifactId>
        <version>1.2.73version>
    dependency>
dependencies>

(二)添加mybatis-config.xml

注意:

plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:

properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?,databaseIdProvider?, mappers?



<configuration>
    
    <settings>
        
        <setting name="cacheEnabled" value="false" />
        
        <setting name="multipleResultSetsEnabled" value="true" />
        
        <setting name="mapUnderscoreToCamelCase" value="true" />
        
        <setting name="localCacheScope" value="STATEMENT" />
    settings>
    
    <typeAliases>
        <package name="cn.tzh.mybatisdemo.entity"/>
    typeAliases>
    
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC">
                <property name="" value=""/>
            transactionManager>
            
            <dataSource type="UNPOOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/gsfy_user?useUnicode=true&characterEncoding=UTF-8&useSSL=false"/>
                <property name="username" value="user"/>
                <property name="password" value="password"/>
            dataSource>
        environment>
    environments>
	
    <mappers>
        <package name="cn.tzh.myabtisdemo.mapper"/>
    mappers>
configuration>

(三)准备实体类

package cn.tzh.mybatisdemo.entity;

import lombok.Data;
import java.io.Serializable;

/**
 * @author tzh
 * @date 2020/12/28  14:32
 */
@Data
public class User implements Serializable {
    private Long id;
    private String userName;
    private Integer age;
    private String phone;
    private String desc;
}

(四)创建Mapper接口

package cn.tzh.mybatisdemo.mapper;

import cn.tzh.mybatisdemo.entity.User;
import org.apache.ibatis.annotations.Param;

/**
 * @author tzh
 * @date 2020/12/28  14:29
 */
public interface UserMapper {

    /**
     * 查询用户
     *
     * @param id id
     * @return {@link User}
     * @author tzh
     * @date 2020/12/30
     */
    User selectUser(@Param("id") Long id);
}

(五)创建XML映射文件




<mapper namespace="cn.tzh.mybatisdemo.mapper.UserMapper">
    
    <cache/>
    
    <select id="selectUser" resultType="User">
        select *
        from user
        where id = #{id}
    select>
mapper>

(六)测试

package cn.tzh.mybatisdemo;

import cn.tzh.mybatisdemo.entity.User;
import cn.tzh.mybatisdemo.mapper.UserMapper;
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 java.io.IOException;
import java.io.InputStream;

/**
 * @author tzh
 * @date 2020/12/28  14:36
 */
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); //new DefaultSqlSessionFactory(config);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.selectUser(155L);
        System.out.println(user.toString());
    }
}

--------------最后感谢大家的阅读,愿大家技术越来越流弊!--------------

在这里插入图片描述

--------------也希望大家给我点支持,谢谢各位大佬了!!!--------------

你可能感兴趣的:(MyBatis系列,数据库,mybatis)