Mybatis 注解开发

推荐简单的Sql使用注解 复杂的使用xml配置文件(注解的方式会导致维护困难)
同时实际应用中还是推荐xml配置文件

代码样例

通过注解,我们可以去掉配置mapper文件这一步操作
定义接口并加上注解

package dao;
import org.apache.ibatis.annotations.Select;
import pojo.User;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    @Select("select * from mybatis.user")
    List<User> getUserList();
}

在xml配置文件的mapper标签改成映射类(因为注解取代了mapper配置文件)

<?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>
    <properties resource="db.properties"/>


    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>


    <typeAliases>
        <package name="pojo"/>
    </typeAliases>


    <environments default="test2">
        <environment id="test">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
        <environment id="test2">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
  <!--改成映射接口类-->
    <mappers>
        <mapper class="dao.UserMapper"/>
    </mappers>

</configuration>

主程序

import dao.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.User;
import utiles.MybatisUtiles;

import java.util.List;

public class mytest {
    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtiles.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> users = mapper.getUserList();
        for (User user : users) {
            System.out.println(user);
        }
    }
}

带参数的注解写法

带多个参数使用params区别

posted @ 2021-04-09 15:28  一个经常掉线的人  阅读(59)  评论(0)    收藏  举报