• mybatis入门代码详解


     ✨✨个人主页:沫洺的主页

    📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                               📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                               📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

    💖💖如果文章对你有所帮助请留下三连✨✨

    🌷MyBatis参考文档

    网址:https://mybatis.org/mybatis-3/zh/index.html

    💐入门案例

    案例需求:查询user表中所有数据

    步骤

    1.创建user表,添加数据

    2.创建模块,导入坐标

    3.编写MyBatis核心配置文件-->代替连接信息 解决硬编码问题

    4.编写SQL映射文件-->统一管理sql语句,解决硬编码问题

    5.编码

            1.定义POJO类(案例是User)

            2.加载核心配置文件,获取SqlSessionFactory对象

            3.获取SQLSession对象,执行SQL语句

            4.释放资源

    🌾1. 创建数据库-->表(user)-->添加数据

    1. create database mybatis;
    2. use mybatis;
    3. drop table if exists tb_user;
    4. create table tb_user(
    5. id int primary key auto_increment,
    6. username varchar(20),
    7. password varchar(20),
    8. gender char(1),
    9. addr varchar(30)
    10. );
    11. INSERT INTO tb_user VALUES (1, '张三', '123', '男', '北京');
    12. INSERT INTO tb_user VALUES (2, '李四', '456', '女', '上海');
    13. INSERT INTO tb_user VALUES (3, '王五', '789', '男', '广州');

    🍂2.IDEA工具创建模块-->导入坐标

    使用IDEA创建maven项目模块(省略)

    然后导入坐标(添加依赖)

     

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.mybatisgroupId>
    4. <artifactId>mybatisartifactId>
    5. <version>3.5.5version>
    6. dependency>
    7. <dependency>
    8. <groupId>mysqlgroupId>
    9. <artifactId>mysql-connector-javaartifactId>
    10. <version>5.1.49version>
    11. dependency>
    12. <dependency>
    13. <groupId>junitgroupId>
    14. <artifactId>junitartifactId>
    15. <version>4.13version>
    16. <scope>testscope>
    17. dependency>
    18. <dependency>
    19. <groupId>org.slf4jgroupId>
    20. <artifactId>slf4j-apiartifactId>
    21. <version>1.7.20version>
    22. dependency>
    23. <dependency>
    24. <groupId>ch.qos.logbackgroupId>
    25. <artifactId>logback-classicartifactId>
    26. <version>1.2.3version>
    27. dependency>
    28. <dependency>
    29. <groupId>ch.qos.logbackgroupId>
    30. <artifactId>logback-coreartifactId>
    31. <version>1.2.3version>
    32. dependency>
    33. dependencies>

    其中日志还需要一个配置文件

    1. "1.0" encoding="UTF-8"?>
    2. <configuration>
    3. <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
    4. <encoder>
    5. <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %npattern>
    6. encoder>
    7. appender>
    8. <logger name="com.moming" level="DEBUG" additivity="false">
    9. <appender-ref ref="Console"/>
    10. logger>
    11. <root level="DEBUG">
    12. <appender-ref ref="Console"/>
    13. root>
    14. configuration>

    🌿3.mybatis核心配置文件

    1. "1.0" encoding="UTF-8" ?>
    2. configuration
    3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5. <configuration>
    6. <typeAliases>
    7. <package name="com.moming.pojo"/>
    8. typeAliases>
    9. <environments default="development">
    10. <environment id="development">
    11. <transactionManager type="JDBC"/>
    12. <dataSource type="POOLED">
    13. <property name="driver" value="com.mysql.jdbc.Driver"/>
    14. <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
    15. <property name="username" value="root"/>
    16. <property name="password" value="123456"/>
    17. dataSource>
    18. environment>
    19. environments>
    20. <mappers>
    21. <mapper resource="UserMapper.xml"/>
    22. mappers>
    23. configuration>

    🍁4.mybatis的映射配置文件

    一般定义什么类就叫-->什么类名Mapper

    1. "1.0" encoding="UTF-8" ?>
    2. mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <mapper namespace="test">
    6. <select id="selectAll" resultType="User">
    7. select * from tb_user;
    8. select>
    9. mapper>

    只有select语句有resultType,用于指定查询的结果封装成什么类型(返回值类型)

    🍃5.编码

    1.定义POJO类(案例是User类)

    创建一个测试类-->MyBatisDemo

    2.加载核心配置文件,获取SqlSessionFactory对象

    3.获取SQLSession对象,执行SQL语句

    • SQLSession是mybatis的核心对象,既能控制事物,也能执行sql

    4.执行sql

    SQLSession对象(sqlSession)

    sqlSession.selectList就是将查询的结果封装成list集合

    sqlSession.update返回值就是执行成功的行数,int类型

    sqlSession.selectOne返回值类型是T类型,需要强转

    5.释放资源

    1. package com.moming;
    2. import com.moming.pojo.User;
    3. import org.apache.ibatis.io.Resources;
    4. import org.apache.ibatis.session.SqlSession;
    5. import org.apache.ibatis.session.SqlSessionFactory;
    6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    7. import java.io.IOException;
    8. import java.io.InputStream;
    9. import java.util.List;
    10. /**
    11. * 入门代码
    12. */
    13. public class MyBatisDemo {
    14. public static void main(String[] args) throws IOException {
    15. //1.加载mybatis的核心配置文件,获取SqlSessionFactory
    16. //定义核心配置文件的路径(注意和实际文件一致)
    17. String resource = "mybatis-config.xml";
    18. //资源加载返回字节输入流
    19. //根据名字利用类加载器从源码目录加载核心配置文件并生成一个输入流对象
    20. InputStream inputStream = Resources.getResourceAsStream(resource);
    21. //获取工厂
    22. //利用mybatis提供的工厂类读核心配置文件中的内容,生成一个工厂对象
    23. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    24. //2.获取SqlSession对象,用它来执行sql
    25. //从工厂中解析核心配置文件中的内容,并将解析出来的所有内容保存到一个容器中(map类型容器)
    26. //在映射配置文件中配置的方法名(id)当成map的key,sql语句当成value
    27. SqlSession sqlSession = sqlSessionFactory.openSession();//openSession()默认openSession(true)开启事务,不会自动提交,false关闭事务自动提交
    28. //3.执行sql
    29. //参数就是sql语句的唯一标识
    30. //自动封装结果集
    31. //定位在哪个映射配置文件的哪个sql语句
    32. List users = sqlSession.selectList("test.selectAll");
    33. System.out.println(users);
    34. //4.释放资源
    35. sqlSession.close();
    36. }
    37. }

     运行

  • 相关阅读:
    C++的关键字
    【计算机网络】网络通信基础(IP地址,端口号,五元组,OSI七层模型,TCP/IP五层模型,封装和分用)
    死锁、活锁、饥饿
    巧用抽象类与接口,打造高效Java程序(上)
    前端问题解决方法
    MySQL单表的访问方法和连接的原理
    【js】-【贪心算法】-笔记
    MATLAB绘图合集:fcontour绘制隐函数等高线图
    数据开源 | Magic Data中英文座舱功能点泛化语料
    AI工程师在linux上常用命令集合
  • 原文地址:https://blog.csdn.net/HeyVIrBbox/article/details/126531070