Mybatis入门很难吗?

2年前 (2022) 程序员胖胖胖虎阿
305 0 0

各位好,我是小饼干🍪,一个编程界的小学生,每天都希望学习一点点编程相关。Mybatis是一款优秀持久层框架,用于简化JDBC开发,本文是通过一个案例来对Mybatis进行快速入门,感谢各位的驻足,希望能得到一个小小的支持,比如说♥。

本文目录

  • 1.创建数据库,建立表格
  • 2.创建模块,导入坐标
  • 3.编写MyBatis核心配置文件----->替换连接信息,解决硬编码问题
  • 4.编写SQL映射文件-->同意管理sql语句,解决硬编码问题
  • 5.编码
    • 1)填写User类
    • 2)Mybatis快速入门代码
  • 6.报错分析

1.创建数据库,建立表格

参考代码,如果对mysql不理解,可以参考这几篇文章Mysql下载与卸载 ,Mysql基础 ,MySQL高级

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 char(1),
	addr varchar(30)
);
//添加数据
INSERT INTO tb_user VALUES (1, 'zhangsan', '123', '男', '北京');
INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
INSERT INTO tb_user VALUES (3, '王五', '11', '男', '西安');

2.创建模块,导入坐标

  • 在IDEA中创建Maven模块,命名为mybatis-demo。在pom.xml文件中导入坐标

    • 导入mybatis依赖(可以参照官网Mybatis入门的安装部分,)
      Mybatis入门很难吗?
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
    </dependency>
    

    在IDEA中是这个样子
    Mybatis入门很难吗?

  • 还有一些其他配置这里对于每个人都一样,整理一下以后都粘贴复制就好
    (以下是本次项目需要的,都要放在 <dependencies> </dependencies> 标签下)

     <!-- 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>	
    
  • 在src->main->resources创建lodback.xml文件,
    Mybatis入门很难吗?
    写入以下代码

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <!--
            CONSOLE :表示当前的日志信息是可以输出到控制台的。
        -->
        <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
            </encoder>
        </appender>
    
        <logger name="com.itheima" level="DEBUG" additivity="false">
            <appender-ref ref="Console"/>
        </logger>
    
    
        <!--
    
      level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
     , 默认debug
      <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
      -->
    <root level="DEBUG">
        <appender-ref ref="Console"/>
    </root>
    </configuration>
    
    

```

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

  • 在官网上有提示
    Mybatis入门很难吗?

    • 其实就是在src->main->resources创建mybatis-config.xml文件,
      Mybatis入门很难吗?
      将以下代码贴入

      <?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>
      
  • 其中这几个地方要改变数值(这块涉及到JDBC和mysql内容)
    -Mybatis入门很难吗?
    我按照我的MySQL改成了以下内容

    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="1234"/>
    

4.编写SQL映射文件–>同意管理sql语句,解决硬编码问题

  • 首先在如图所示在创建如图文件
    -Mybatis入门很难吗?

  • 在官网有提示
    Mybatis入门很难吗?

  • 其实就是在src->main->resources创建UserMapper.xml文件(处理那哪个文件,就怎么命名),
    Mybatis入门很难吗?

  • 将以下代码贴入该文件

    <?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">
    <mapper namespace="org.mybatis.example.BlogMapper">
      <select id="selectBlog" resultType="Blog">
        select * from Blog where id = #{id}
      </select>
    </mapper>
    
  • 该代码中有两个地方要处理

    如图所示
    Mybatis入门很难吗?
    代码如下`

    <mapper namespace="testt">
        <select id="selectAll" resultType="com.zaizai.pojo.User">
            select * from tb_user;
        </select>
    </mapper>
    
  • 最后改变映射文件:打开mybatis-config.xmll文件,把这块改变为UserMapper.xml
    Mybatis入门很难吗?

5.编码

1)填写User类

//alt+鼠标左键
public class User {
    private Integer id            ;
    private String username      ;
    private String password      ;
    private String gender        ;
    private String addr          ;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", gender='" + gender + '\'' +
                ", addr='" + 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;
    }
}

2)Mybatis快速入门代码

  • 创建该类

Mybatis入门很难吗?
在该类中写代码

  • 1.加载核心配置文件,获取SqlSessionFactory对象
  • 2.获取SqlSession的对象。用它来执行sql
  • 3.执行sql语句
public class MybatisDemo {
    public static void main(String[] args) throws Exception {
        //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("testt.selectAll");

        System.out.println(users);
        sqlSession.close();

    }
}

第一步中在官网上有说明,而且这一步需要抛出异常

6.报错分析

  • 书写错误:在每个步骤书写的时候就要严格认真,代码的拼写,格式都要严格规范,无论是现在还是以后建立项目,这点都很重要。
  • 仔细分析报错:IDEA编译器下面出现报错,要仔细阅读分析,全英文肯能会劝退很多人,但是解决的办法不是没有,比如说放到翻译软件里。
  • 你可以问问我😀

最后的最后,希望大家都拥有学习知识和解决问题的快乐😁。

版权声明:程序员胖胖胖虎阿 发表于 2022年10月31日 下午6:00。
转载请注明:Mybatis入门很难吗? | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...