• mybatis


    什么是MyBatis?

    MyBatis是一款优秀的持久层框架,用于简化JDBC开发
    MyBatis本是Apache的一个开源项目iBatis,.2010年这个项目由apache software
    foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github
    官网

    mybatis快速入门

    在这里插入图片描述

    导入mybatis

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

    1.创建user表,添加数据

    CREATE DATABASE mybatis;
    USE mybatis;
    DROP TABLE IF EXISTS tb_user;
    CREATE TABLE tb_user(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(20),
    PASSWORD VARCHAR(20),
    gender VARCHAR(20),
    addr VARCHAR(30)
    );
    
    ALTER DATABASE mybatis CHARACTER SET utf8;
    ALTER TABLE tb_user CHARACTER SET utf8;
    
    
    INSERT INTO tb_user VALUES(1,'zhangsan','123','男','北京');
    INSERT INTO tb_user VALUES(2,'李四','234','女','天津');
    INSERT INTO tb_user VALUES(3,'王五','11','男','西安');
    
    SELECT * FROM tb_user
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2.创建模块,导入坐标

    在 main 目录下的 resoures 配置文件目录下创建一个名为 logback.xml 的配置文件,粘贴一下内容:

    
    <configuration>
        
        <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>【%level】 %blue(%d{HH:mm:ss.SSS}) %cyan(【%thread】) %boldGreen(%logger{15}) - %msg %npattern>
            encoder>
        appender>
    
        <logger name="com.itheima" level="DEBUG" additivity="false">
            <appender-ref ref="Console"/>
        logger>
    
        <root level="DEBUG">
            <appender-ref ref="Console"/>
        root>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

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

    在 main 目录下的 resoures 配置文件目录下创建一个名为 mybatis-config.xml 的配置文件,内容			在MyBatis官网
    
    • 1

    模板

    
    DOCTYPE configuration
      PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
      <environments default="development">
        <environment id="development">
          <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 resource="org/mybatis/example/BlogMapper.xml"/>
      mappers>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    修改后

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

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

    在 main 目录下的 resoures 配置文件目录下创建一个名为 UserMapper.xml 的配置文件,内容在MyBatis官网
    模板

    
    DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="org.mybatis.example.BlogMapper">
       <select id="selectBlog" resultType="Blog">
     		select * from Blog where id = #{id}
      select>
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    修改后

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

    5.编码

    1.定义P0J0类

    package com.lqx.pojo;
    
    public class User {
        private Integer id;
        private String username;
        private String PASSWORD;
        private String gender;
        private String addr;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPASSWORD() {
            return PASSWORD;
        }
    
        public void setPASSWORD(String PASSWORD) {
            this.PASSWORD = PASSWORD;
        }
    
        public String getGender() {
            return gender;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    
        public String getAddr() {
            return addr;
        }
    
        public void setAddr(String addr) {
            this.addr = addr;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", PASSWORD='" + PASSWORD + '\'' +
                    ", gender='" + gender + '\'' +
                    ", addr='" + addr + '\'' +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    2.加载核心配置文件,获取SqlSessionFactory对象
    3.获取SqlSession对象,执行SQL语句
    4.释放资源
    
    • 1
    • 2
    • 3
    package com.lqx;
    
    import com.lqx.pojo.User;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    public class MyBatisDemo {
        public static void main(String[] args) throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
            SqlSession sqlSession = sqlSessionFactory.openSession();
            List<User> users = sqlSession.selectList("test.selectAll");
    
            System.out.println(users);
            sqlSession.close();
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    解决SQL映射文件的警告提示

    产生原因:ldea和数据库没有建立连接,不识别表信息
    解决方式:在ldea中配置MySQL数据库连接
    
    • 1
    • 2

    其他内容这里不做了

    Mapperf代理开发
    核心配置文件
    参数传递
    注解开发
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    golang查看CPU使用率与内存及源码中的//go:指令
    快门图像传感器技术
    通过QGIS下载高程数据并进行矢量数据高程的计算
    进程和线程
    【Oracle】Oracle系列十九--Oracle的体系结构
    python自动更新pom文件
    加降息与BTC流动性事件策略研究
    【Python】函数式编程
    【算法面试必刷Java版十三】判断一个链表是否为回文结构
    【HDC 2024】华为云开发者联盟驱动应用创新,赋能开发者成长
  • 原文地址:https://blog.csdn.net/fanlangke/article/details/126724773