重点:mybatis注意细节

首先注意资源过滤问题,放在dependes下面

java 复制代码
 <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

编写dao层的接口

编写mapper.xml文件(注意绑定接口) 注意namespace反正就是注意mapper

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.counter.dao.Usermapper">
    <insert id="addUser" parameterType="com.counter.pojo.User">
        insert into [user] values (#{id},#{name},#{age})
    </insert>
</mapper>

mapper写完之后注册到config下面的xml中

XML 复制代码
 <mappers>
        <mapper resource="com/counter/dao/Usermapper.xml"></mapper>
 </mappers>

就可以调用了前提是先写一个工具类(工具类用于制造工厂)

java 复制代码
//获得sqlsession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();

//通过接口获得class对象,让Mybatis生成该接口的代理实现类

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

 //有代理实现类就可以调用方法就是在mapper中写的sql语句
        mapper.addUser(user);

        sqlSession.commit();
        sqlSession.close();

工具类:

java 复制代码
public class MybatisUtils {
    private  static  SqlSessionFactory sqlSessionFactory ;
    static {
        try {
            //使用Mybatis第一步:获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = MybatisUtils.class.getClassLoader().getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        }catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
}

后面我们用Spring之后,他就会自动帮我们完成这个操作

相关推荐
karry_k2 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
karry_k2 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
SamDeepThinking6 小时前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
她的男孩9 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码10 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev12 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波20 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯1 天前
GoF设计模式——备忘录模式
java·后端·spring·设计模式