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

Untitled

  1. 创建 user 表,添加数据

    使用教程里的 SQL 文件,在 Navicat 里运行代码。

  2. 创建模块,导入坐标

    新创建一个 Maven 项目,在 pom 配置文件里导入如下依赖(其他的地方就不用动了)

    <dependencies>
    
            <!-- mybatis -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.5</version>
            </dependency>
            <!-- mysql 驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.32</version>
            </dependency>
            
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13</version>
                <scope>test</scope>
            </dependency>
    
            <!-- 添加slf4j日志api -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.20</version>
            </dependency>
            <!-- 添加logback-classic依赖 -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
            <!-- 添加logback-core依赖 -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>	
    
        </dependencies>
    

    同时别忘了在 resources 文件夹里导入 logback 的配置文件

    logback.xml

    <aside> 💡 Logback 开源日志框架

    JUnit 单元测试框架

    </aside>

  3. 编写 MyBatis 的核心配置文件

    在 resources 文件夹里新建一个 mybatis-config.xml 的配置文件

    XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)。后面会再探讨 XML 配置文件的详细内容,这里先给出一个简单的示例:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!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>
    

    连接信息:

    						<dataSource type="POOLED">
                    <!--数据库连接信息-->
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="$1234"/>
                </dataSource>
    

    SQL 映射文件:

    		<mappers>
            <!--SQL 映射文件-->
            <mapper resource="UserMapper.xml"/>
        </mappers>
    

    UserMapper 配置文件:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "<http://mybatis.org/dtd/mybatis-3-mapper.dtd>">
    
    <!--
        namespace:名称空间
    -->
    <mapper namespace="test">
        <select id="selectAll" resultType="com.itheima.pojo.User">
            select * from tb_user;
        </select>
    </mapper>
    
  4. 编码

    定义 POJO 类

    package com.itheima.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 + '\\'' +
                    '}';
        }
    }
    

    加载 mybatis 的核心配置文件,获取 SqlSessionFactor

    获取 SQLSession 对象,用它来执行 sql

    执行 sql

    释放资源

    package com.itheima;
    
    import com.itheima.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 {
            //1. 加载 mybatis 的核心配置文件,获取 SqlSessionFactory
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
            //2. 获取 SQLSession 对象,用它来执行 sql
            SqlSession sqlSession = sqlSessionFactory.openSession();
    
            //3. 执行 sql
            List<User> users = sqlSession.selectList("test.selectAll");
            System.out.println(users);
    
            //4. 释放资源
            sqlSession.close();
        }
    }
    

解决 SQL 语句的警告提示

在 IDEA 中配置数据库连接

右侧 Database,点击加号,选择 Data Source → MySQL,填写相关信息,点击 OK 即可。

配置数据库连接后依然没有代码补全?

需要设置数据库方言:

Untitled

自定义日志组件