MyBatis快速入门

x33g5p2x  于2022-03-03 转载在 其他  
字(6.2k)|赞(0)|评价(0)|浏览(310)

什么是是mybatis?

什么是持久层?

什么是框架

MyBatis简化jdbc代码

MyBatis操作练习

项目结构图 

xml配置文件

pom.xml文件内容

logback.xml内容

userMapper.xml内容

mybatis-config.xml内容

几个类下

com.pojo.User类

com.MyBatisDemo类

运行结果

MyBatis操作数据库

什么是是mybatis?

MyBatis是一个优秀的持久层框架,用于简化JDBC开发

MyBatis本是Apache的一个开源项目iBatis,2010年这个项目有apache software foundation迁移到了google code,并且改名为Mybatis。2013年迁移到Github

官网:mybatis – MyBatis 3 | 简介

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

什么是持久层?

持久层负责将数据保存到收据库的那一层代码

JavaEE三层架构:表现层、业务层、持久层

表现层:用来做页面展示

业务层:用来做逻辑处理的

什么是框架

框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型(模版)

在框架的基础之上构建软件编写更加高效、规范、通用、可扩展

MyBatis简化jdbc代码

JDBC书写繁琐,都是硬编码,维护麻烦

MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果的工作

MyBatis操作练习

案例使用MyBatis

1、创建user表,添加数据

2、创建模块,导入坐标

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

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

5、编码

  1. 定义pojo类
  2. 加载核心配置文件,获取SQLSessionFactory对象
  3. 获取SQLSession对象,执行SQL语句
  4. 释放资源
create database 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)
) character set utf8;
select *from tb_user;
 
INSERT INTO tb_user VALUES(1,'zhangsan','123','男','北京');
INSERT INTO tb_user VALUES (2,'李四','234','女','天津'); 
INSERT INTO tb_user VALUES(3,'王五','11','男','西安');

创建一个mybatis-demo模块

项目结构图 

xml配置文件

 pom.xml文件内容

<dependencies>
    <!--mybatis依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.5</version>
    </dependency>

    <!--导入mysql的jar包,只要写出坐标位置即可-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>

<!--junit单元测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    <!--添加slf4日志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-code依赖-->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
    </dependency>
</dependencies>

logback.xml内容

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
        
        <!--CONSOLE :表示当前的日志信息是可以输出到控制台的。 -->
        
        <appender class="ch.qos.logback.core.ConsoleAppender" name="Console">
        
        
        <encoder>
        
        <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
        
        </encoder>
        
        </appender>
        
        
        <logger name="com.itheima" additivity="false" level="DEBUG">
        
            <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>

userMapper.xml内容

<?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="test">
    <select id="selectAll" resultType="com.pojo.User">
    select * from tb_user;
  </select>
</mapper>

mybatis-config.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="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--加载sql的配置文件-->
        <mapper resource="userMapper.xml"/>
    </mappers>
</configuration>

几个类下

com.pojo.User类

package com.pojo;

/**
 * 快捷键alt加鼠标左键整列选中
 */
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 + '\'' +
                '}'+"\n";
    }
}

com.MyBatisDemo类

package com;

import com.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;

/**
 * mybatis快速入门
 */
public class MyBatisDemo {
    public static void main(String[] args) throws IOException {
        //加载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(名称空间.id即可)
        List<User> users = sqlSession.selectList("test.selectAll");
        System.out.println(users);
        //释放资源
        sqlSession.close();
    }
}

运行结果

MyBatis操作数据库

相关文章