Mybatis基础内容

Mybatis

MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发

官网:mybatis – MyBatis 3 | 简介

Mybatis快速复习


 

 导入坐标

 <!--
        属性配置
          maven.compiler.source  maven编译源码环境 是jdk8
          maven.compiler.target  maven目标代码运行环境 jdk8
          <project.build.sourceEncoding 当前模块中 源码的编码集 utf-8
    -->
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--
       mybatis
          需要导入哪些依赖
                 lombok
                 mysql
                 junit
                 mybatis
                 导入日志包  复制粘贴  就是可以看到 底层数据库运行的状态
    -->
<dependencies>
    <!--mybatis 依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.5</version>
    </dependency>

    <!--mysql 驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>

    <!--junit 单元测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
        <scope>test</scope>
    </dependency>

    <!-- 添加slf4j日志api -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.20</version>
    </dependency>
    <!-- 添加logback-classic依赖 -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    <!-- 添加logback-core依赖 -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
    </dependency>
    <!-- 添加lombok依赖 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version>
        </dependency>
</dependencies>

测试

package com.QT;

import com.QT.mapper.UserMapper;
import com.QT.pojo.User;
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;


public class MybatisTest {

    @Test
    public void selectAllTest() throws IOException {
        // 1:加载核心配置文件
        String resource = "mybatis-config.xml";
        // 下面操作 是官方给我们写好的 大家尽情的复制粘贴
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //创建一个工程队  完成 一个工厂的创建  (这个工厂里面是来造操作 sql语句的对象的)
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //有了这个创建 sql语句对象 工厂
        // 从厂子里要对象  这个对象是用来执行sql语句的
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //上面四句话复制粘贴
        // 你想让 sqlSession 执行哪个sql语句
        //  selectList()  查询多个
        //     传递的参数u是 把你需要执行什么sql语句
        //  sql语句位置通过字符串形式告知 "namespace名字.id名字"
//        List<User> users = sqlSession.selectList("test.selectAll");

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

//        List<User> users = mapper.selectAll();

        User user = mapper.selectID(3);
        //输出 users
        System.out.println(user);
        //把 sqlSession归还连接池
        sqlSession.close();
    }

模板设置templates

mybatis-config.xml

<?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">
<!--
   这个配置文件中什么需要我们填写
       起别名 <typeAliases>  每次复制之后要进行检查
       连接池 四个信息 dataSource 每次复制之后要进行检查
       映射文件   <mappers>  关注包
-->
<configuration>
    <!--给类型起别名-->
    <typeAliases>
        <package name="com.itheima.pojo"/>
    </typeAliases>
    <!--
       environments 环境们
               default 选择哪一个环境
         environment 环境  id代表不同的环境id
    -->
    <environments default="development">
        <!--开发环境-->
        <environment id="development">
            <!--
            transactionManager  事务管理器
               当前框架中的事务管理 谁来管理
                  type="JDBC"  使用JDBC中的事务管理操作(推荐)
                  MANAGED  自己管理事务
            -->
            <transactionManager type="JDBC"/>
            <!--
               mybatis 自带连接池
                  type="POOLED"  你用连接
                  type="UNPOOLED"  不用连接池
                  type="JNDI"  连接池是一个服务器 以客户端身份连接 已过时。
            -->
            <dataSource type="POOLED">
                <!--
                     driver  驱动 连接那种数据库就写哪种数据库的驱动
                     url 连接哪个数据库
                -->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>

    </environments>

    <!--
      映射文件
         咱们的sql在mybatis都是写在  XxxMapper.xml中的
           mappers
             里面的mapper就代表着 找到 咱们 的sql文件
    -->
    <mappers>
        <package name="com.itheima.mapper"/>
    </mappers>
</configuration>

com\itheima\mapper

<?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">
<!--
  映射   现在BrandMapper.xml是一个 关于 user表操作的 映射文件
-->
<!--
   namespace=""  跟接口名 包名+类名 一致
      复制之后需要关注 这个名字是不 接口的包名+类名
   mapper标签里面子标签
     根据的不同操作 选择不同的 标签
       <select>  <insert> <update> <delete>
     id值 跟 接口方法名一致
     参数类型 跟接口方法参数类型一致
     返回值 跟接口的方法的返回值一致

-->
<mapper namespace="com.itheima.mapper.BrandMapper">

    
</mapper>

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--
        CONSOLE :表示当前的日志信息是可以输出到控制台的。
    -->
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
        </encoder>
    </appender>

    <logger name="com.itheima" level="DEBUG" additivity="false">
        <appender-ref ref="Console"/>
    </logger>


    <!--

      level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
     , 默认debug
      <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
      -->
    <root level="DEBUG">
        <appender-ref ref="Console"/>
    </root>
</configuration>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值