1.3 MyBatis基于接口的使用方式

通过前面UserDao的设计,我们可以发现,UserDao中的代码都是模板化代码,都可以通过配置的方式自动生成,因此在实际开发中我么可以通过Mapper的方式来实现。

1.声明Mapper接口

userMapper.java

package com.biao.dao;

import com.biao.pojo.User;

/**
 * Dao的接口
 */
public interface UserMapper {

    int addUser(User user);
}

2.创建映射文件

userMapper.xml(和userMapper.java同一个包)

<?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">
<mapper namespace="com.biao.dao.UserMapper">
    <!--添加用户信息-->
    <insert id="addUser" parameterType="com.biao.pojo.User">
        insert into t_user (username,address,gender) values (#{username},#{address},#{gender})
    </insert>

</mapper>

3.创建全局配置文件

mybatis-cfg.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">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/shop?serverTimezone=UTC&amp;
                useUnicode=true&amp;characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--关联我们自定义的映射文件-->
        <mapper resource="com/biao/dao/UserMapper.xml"/>
    </mappers>
</configuration>

4.测试

package com.biao;

import com.biao.dao.UserMapper;
import com.biao.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 java.io.InputStream;

public class AppSart {
    public static void main(String[] args) throws Exception{
        //1.加载全局配置文件
        InputStream in= Resources.getResourceAsStream("mybatis-cfg.xml");
        //2.获取SqlSessionFactory
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        //3.获取SqlSession
        SqlSession sqlSession = factory.openSession();
        //4.通过SqlSession获取Dao接口的代理对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user=new User("刘大刀","广州","女");
        mapper.addUser(user);

        //5.提交资源并关闭资源
        sqlSession.commit();
        sqlSession.close();
    }
}

在这里插入图片描述

5.基于接口方式的注意点

基于接口的使用方式是有约定的,如果不按照约定去执行的话那么是会出现问题的
使用mapper方式必须满足:

5.1 映射文件的namespace的值必须是接口的全路径名称,比如com.biao.dao.UserMapper

在这里插入图片描述

5.2 接口中的方法名在映射文件中必须有一个id值与之对应

在这里插入图片描述

5.3 映射文件的名称必须和接口的名称一致

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值