• 搭建MyBatis


    1.环境配置和工程   所需要的maven依赖

    1. org.mybatis
    2. mybatis
    3. 3.5.7
    4. junit
    5. junit
    6. 4.12
    7. test
    8. mysql
    9. mysql-connector-java
    10. 8.0.16
    11. log4j
    12. log4j
    13. 1.2.17

    1.1核心配置文件


    习惯上命名为mybatis-config.xml(文件名仅仅只是建议,并非强制要求)。

    核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息(存放的位置是src/main/resources目录下)

    将来整合Spring之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。

    1. "1.0" encoding="UTF-8" ?>
    2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    4. "jdbc.properties"/>
    5. <package name="cn.xs.mybatis.pojo"/>
    6. default="development">
    7. "development">
    8. "JDBC"/>
    9. "POOLED">
    10. "driver" value="${jdbc.driver}"/>
    11. "url" value="${jdbc.url}"/>
    12. "username" value="${jdbc.username}"/>
    13. "password" value="${jdbc.password}"/>
    14. <package name="cn.xs.mybatis.mapper"/>

    在 src/main/resources 文件夹下创建关于数据库连接的配置文件 jdbc.properties:

    1. jdbc.driver=com.mysql.cj.jdbc.Driver
    2. jdbc.url=jdbc:mysql://localhost:3308/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false
    3. jdbc.username=root
    4. jdbc.password=root

    1.2创建mapper接口

    MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。

    1. public interface UserMapper {
    2. //添加用户
    3. int insertUser();
    4. }

    1.3创建MyBatis的映射文件

            1.3.1命名和位置

    1. 表所对应的实体类的类名+Mapper.xml
    2. 例如:表users,映射的实体类为Users,所对应的映射文件为UserMapper.xml
    3. 因此一个映射文件对应一个实体类,对应一张表的操作
    4. MyBatis映射文件用于编写SQL,访问以及操作表中的数据(文件存放的位置是src/main/resources/mappers目录下)

            1.3.2两个一致

                    mapper接口和映射文件要保证两个一致:

    1. mapper接口的全类名和映射文件的namespace一致
    2. mapper接口的方法的方法名要和映射文件中的SQL中的id保持一致。
    1. "1.0" encoding="UTF-8" ?>
    2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4. "cn.xs.mybatis.mapper.UserMapper">
    5. "insertUser">
    6. insert into users values(null,'admin','123456',23,'男','123@qq.com')

    1.4执行流程和原理

            1.4.1 执行流程

    1. /**
    2. * SqlSession默认不自动提交事务,若需要自动提交事务
    3. * 可以使用SqlSessionFactory.openSession(true);
    4. */
    5. @Test
    6. public void testMyBatis() throws IOException {
    7. //加载核心配置文件,以字节输入流的方式获取,因为是流的方式,所以要抛出异常
    8. InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    9. //获取SqlSessionFactoryBuilder
    10. SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    11. //获取sqlSessionFactory,工厂模式:将我们创建对象的过程进行封装,直接提供想要的对象
    12. // 通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
    13. SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    14. //创建SqlSession对象,此时通过SqlSession对象所操作的sql都必须手动提交或回滚事务
    15. //SqlSession sqlSession = sqlSessionFactory.openSession();
    16. //创建SqlSession对象,此时通过SqlSession对象所操作的sql都会自动提交
    17. SqlSession sqlSession = sqlSessionFactory.openSession(true);
    18. //获取mapper接口对象,我们只有接口,没有实现类,
    19. // getMapper当我们传进去一个方法的类对象的时候,这个方法能帮助我们获取这个类的实例化对象
    20. // 代理模式:帮助我们返回一个接口的实现类对象
    21. UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    22. //测试功能
    23. int result = mapper.insertUser();
    24. //提交事务
    25. //sqlSession.commit();
    26. System.out.println("result:" + result);
    27. }

  • 相关阅读:
    超详细!一步到位!MySQL安装和基本使用
    [Power Query] 数据行列的增删、填充与替换
    虚幻引擎 快速的色度抠图 Chroma Key 算法
    ⭐每天一道leetcode:21.合并两个有序链表(简单;双指针)
    七夕玫瑰花合集
    YOLOX加强特征提取网络Panet分析
    python的类/方法引用---人机石头剪刀布游戏
    golang工程——gRpc 拦截器及原理
    DateTime和DateTimeOffset是同胞兄弟吗?
    msfvenom制作主控与被控端
  • 原文地址:https://blog.csdn.net/m0_61916154/article/details/126973202