• 【mybatis基础(一)】mybatis入门案例


    什么是 MyBatis?

            MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。mybatis – MyBatis 3 | 简介

    一、入门案例

    1、依赖准备

    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>8.0.11version>
    11. dependency>
    12. <dependency>
    13. <groupId>junitgroupId>
    14. <artifactId>junitartifactId>
    15. <version>4.12version>
    16. <scope>testscope>
    17. dependency>
    18. <dependency>
    19. <groupId>log4jgroupId>
    20. <artifactId>log4jartifactId>
    21. <version>1.2.12version>
    22. dependency>
    23. dependencies>

    2、数据库准备

    1. DROP TABLE IF EXISTS `tb_users`;
    2. CREATE TABLE `tb_users` (
    3. `id` int(20) NOT NULL COMMENT '编号主键',
    4. `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名',
    5. `birthday` date NOT NULL COMMENT '出生日期',
    6. `sex` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '性别',
    7. `address` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '地址',
    8. PRIMARY KEY (`id`) USING BTREE
    9. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

     3、编写Entity层

    1. public class User implements Serializable {
    2. private Integer id;
    3. private String username;
    4. private Date birthday;
    5. private String sex;
    6. private String address;
    7. /*
    8. 提供set、get方法
    9. */
    10. @Override
    11. public String toString() {
    12. return "User{" +
    13. "id=" + id +
    14. ", username='" + username + '\'' +
    15. ", birthday=" + birthday +
    16. ", sex='" + sex + '\'' +
    17. ", address='" + address + '\'' +
    18. '}';
    19. }
    20. }

     4、编写Dao层

    1. public interface UserDao {
    2. List findAll();
    3. }

     5、Dao层的Mapper映射文件

    写法一、使用配置文件编写sql

    1. mapper
    2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4. <mapper namespace="com.qiu.dao.UserDao">
    5. <select id="findAll" resultType="com.qiu.model.User">
    6. select *
    7. from tb_users;
    8. select>
    9. mapper>

     6、DataSource 配置文件(dao层对应mapper.xml文件)

    1. configuration
    2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    4. <configuration>
    5. <environments default="mysql">
    6. <environment id="mysql">
    7. <transactionManager type="JDBC">transactionManager>
    8. <dataSource type="POOLED">
    9. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    10. <property name="url" value="jdbc:mysql://localhost:3306/test2?
    11. serverTimezone=UTC&useUnicode=true&characterEncoding=utf8"/>
    12. <property name="username" value="${username}"/>
    13. <property name="password" value="${password}"/>
    14. dataSource>
    15. environment>
    16. environments>
    17. <mappers>
    18. <mapper resource="mapper/UserMapper.xml"/>
    19. mappers>
    20. configuration>

     注意mapper标签用法

    1. <mappers>
    2. <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
    3. mappers>
    4. <mappers>
    5. <mapper url="file:///var/mappers/AuthorMapper.xml"/>
    6. mappers>
    7. <mappers>
    8. <mapper class="org.mybatis.builder.AuthorMapper"/>
    9. mappers>

    7、编写测试类

    1. public class MybatisTest {
    2. public static void main(String[] args) throws IOException {
    3. //1、读取配置文件
    4. InputStream in = Resources.getResourceAsStream("config/SqlMapConfig.xml");
    5. //2.创建 SqlSessionFactory 的构建者对象
    6. SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
    7. //3.使用构建者创建工厂对象 SqlSessionFactory
    8. SqlSessionFactory sessionFactory = builder.build(in);
    9. //4.使用 SqlSessionFactory 生产 SqlSession 对象
    10. SqlSession sqlSession = sessionFactory.openSession();
    11. //5.使用 SqlSession 创建 dao 接口的代理对象
    12. UserDao userMapper = sqlSession.getMapper(UserDao.class);
    13. //6.使用代理对象执行查询所有方法 List
    14. List users = userMapper.findAll();
    15. for (User user : users) {
    16. System.out.println(user);
    17. }
    18. //7.释放资源
    19. sqlSession.close();
    20. in.close();
    21. }
    22. }

     【显示结果】

     写法二、使用注解编写sql

    1. public interface UserDao {
    2. @Select("select * from tb_users")
    3. List findAll();
    4. }

    更改mapperbb标签,其他不变 

     OKk!!! 入门mybatis

  • 相关阅读:
    Spring Boot中如何优雅地实现异步调用?
    婴儿摇椅出口亚马逊欧盟CE认证检测标准
    超图s3m服务加载时添加token
    SVG公众号排版 | 可重复点击显示和关闭图片,在Apple上无法正常关闭
    vue实现搜索文字高亮功能
    C++性能分析工具gperftools安装教程与使用案例分析
    熔断、限流、降级 —— SpringCloud Alibaba Sentinel
    牛客NC233 加起来和为目标值的组合(四)【中等 DFS C++、Java、Go、PHP】
    SSM学习——SpringBoot初学注意事项(14)
    uniapp 使用第三方UI库 uview-plus
  • 原文地址:https://blog.csdn.net/m0_46013789/article/details/126009119