mybatis框架

mybatis因为其sql语句与代码分离利于维护,业务逻辑与数据逻辑分离,使用简单学习上手快是项目与数据库交互的良好构件之不二之选。

主要讲解:
1讲解xml方式的使用方式(映射关系)   还有注解方式的基本使用
2动态sql的使用
3分页插件
4通用Mapper

mybatis学习项目已完结项目地址

GitHub - YHappyEatingY/mybatis_studyContribute to YHappyEatingY/mybatis_study development by creating an account on GitHub.https://github.com/YHappyEatingY/mybatis_study.gitgit clone GitHub - YHappyEatingY/mybatis_study  打开直接使用

创建工程和初步使用

创建一个springboot工程(笔者的版本为2.7),在maven中央网址Maven Repository: Search/Browse/Explore (mvnrepository.com)

idea用的mybatis插件:

查找mysql驱动(笔者用的是mysql8版本)

 mybatis的依赖:

 配置日志依赖:

配置日志文件:

# 全局配置
log4j.rootLogger=ERROR, stdout
#mybatis日志配置
log4j.logger.com.example.ademo.Mapper=TRACE
#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

这里的log4j.logger.com.example.ademo.Mapper中的com.example.ademo为包

 准备数据库数据:

create database mybatis;

create table country(
    `id` int not null auto_increment,
    `countryname` varchar(255) null,
    `countrycode` varchar(255) null,
    primary key(id)
)

insert country(`countryname`,`countrycode`)  values('中国','CN'),('美国','US'),('俄罗斯','RU'),('英国','GB'),('法国','FR');	

select * from  country;

在src/main/resources下配置mybatis-config核心文件: 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>   <!-- configuration -->
    <!-- environments  配置连接数据库的环境
          default: 默认使用的环境
    -->
<!--         引入properties文件,此后可以在当前文件中以的方式访问value值-->
    <properties resource="jdbc.properties"/>

<!-- 使用log4j输出日志-->
     <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>

    <!-- 为类型设置一个别名 可以在xml文件中直接使用-->
    <typeAliases>
        <!--        type起别名的类型,  alias:设置某个类型的别名 -->
        <!--       不设置alias 则默认为类名,且不区分大小写 -->
        

    </typeAliases>


    <environments default="development">

        <!--   id 唯一的标识,不能重复.-->
        <environment id="development">
            <!--
transactionManager:设置事务管理方式
属性:
type="JDBC|MANAGED"
JDBC:表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理方式,事
务的提交或回滚需要手动处理 ;
MANAGED:被管理,例如Spring
-->
            <transactionManager type="JDBC"/>
            <!--   type :    设置数据源的类型
             type ="POOLED|UNPOOLED|JNDI"
             POOLED:使用数据库连接池
             UNPOOLED:不使用数据库连接池
             JNDI:使用上下文中的数据源
        -->
            <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>
    <!-- 引入mybatis 的映射文件 -->


    <mappers>
        <!--        <mapper resource="mappers/UserMapper.xml"/>-->
        <!--        以包的方式引入映射文件
            1 mapper  接口和映射的文件所在的包必须一致
            2 mapper 接口的名字和映射文件的名字必须一致
        -->

    </mappers>


</configuration>

jdbc.properties文件:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?serverTimezone=UTC&characterEncoding=utf-8
jdbc.username=root
jdbc.password=abc1234

 

 创建model包创建country实体类

创建Mapper包创建CountryMapper接口:

(这里和下下图的红线报错是插件没有识别的原因 配置了typeAlias) 

在src/main/resources下创建mapper包创建CountryMapper.xml映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.ademo.Mapper.CountryMapper">

    <select id="selectAll" resultType="country">
        select id ,  countryname ,countrycode from country;
    </select>

</mapper>

配置SqlSessionFactory的Bean:

 测试:

 测试结果:

 小结:

对mybatis有了一个简单的认识,涉及了一些mybatis的简单配置以及使用方法,并让一个mybatis项目跑了起来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值