MyBatis 基础+环境搭建+案例

文章目录

  • 一、框架的介绍
    • 1. 三层架构
    • 2. 持久层技术解决方案
  • 二、MyBatis 的概念
    • 1. MyBatis 概述
  • 三、MyBatis 的环境搭建
    • 1. 创建 maven 工程
    • 2. 配置 pom.xml 文件
    • 3. 创建实体类和 dao 接口
    • 4. 创建 MyBatis 的主配置文件
    • 5. 创建映射配置文件
    • 环境搭建的注意事项
  • 四、MyBatis 入门案例
    • 1. 数据库的准备
    • 2. 创建测试类
    • 3. 增加配置文件
    • 4. 修改映射配置文件
    • 5. 运行测试类
  • 小结


一、框架的介绍

MyBatis 基础+环境搭建+案例_第1张图片

1. 三层架构

  • 表现层:用于展示数据;
  • 业务层:处理业务需求;
  • 持久层:和数据库交互;

2. 持久层技术解决方案

  • JDBC 技术:Connection,PreparedStatement,ResultSet;
  • Spring 的 JdbcTemplate:对 Jdbc 的简单封装;
  • Apache 的 DBTuils:对 Jdbc 的简单封装;

注意:以上这些都不是框架,JDBC 是规范,Spring 的 JdbcTemplate 和 Apache 的 DBTuils 都是工具类

二、MyBatis 的概念

1. MyBatis 概述

MyBatis 基础+环境搭建+案例_第2张图片

三、MyBatis 的环境搭建

1. 创建 maven 工程

MyBatis 基础+环境搭建+案例_第3张图片
MyBatis 基础+环境搭建+案例_第4张图片

2. 配置 pom.xml 文件

MyBatis 基础+环境搭建+案例_第5张图片
pom.xml 文件内容如下


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>org.examplegroupId>
    <artifactId>MyBatisTest1artifactId>
    <version>1.0-SNAPSHOTversion>

    <packaging>jarpackaging>
    <dependencies>
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.5.6version>
        dependency>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.15version>
        dependency>
    dependencies>

project>

3. 创建实体类和 dao 接口

MyBatis 基础+环境搭建+案例_第6张图片
User.class 如下:

package domain;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
     
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;

    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 Date getBirthday() {
     
        return birthday;
    }

    public void setBirthday(Date birthday) {
     
        this.birthday = birthday;
    }

    public String getSex() {
     
        return sex;
    }

    public void setSex(String sex) {
     
        this.sex = sex;
    }

    public String getAddress() {
     
        return address;
    }

    public void setAddress(String address) {
     
        this.address = address;
    }

    @Override
    public String toString() {
     
        return "domain.User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

IUserDao 接口如下:

package dao;

import domain.User;

import java.util.List;

/**
 * 用户的持久层接口
 */
public interface IUserDao {
     
    /**
     * 查询所有操作
     * @return
     */
    List<User> findAll();
}

4. 创建 MyBatis 的主配置文件

MyBatis 基础+环境搭建+案例_第7张图片
SqlMapConfig.xml 如下:





<configuration>
    
    <environments default="mysql">
        
        <environment id="mysql">
            
            <transactionManager type="JDBC">transactionManager>
            
            <dataSource type="POOLED">
                
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatisdata"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            dataSource>
        environment>
    environments>

    
    <mappers>
        <mapper resource="dao/IUserDao.xml"/>
    mappers>
configuration>

5. 创建映射配置文件

MyBatis 基础+环境搭建+案例_第8张图片
IUserDao.xml 如下:




<mapper namespace="dao.IUserDao">
    
    <select id="findAll">
        select * from user
    select>
mapper>

环境搭建的注意事项

MyBatis 基础+环境搭建+案例_第9张图片

四、MyBatis 入门案例

1. 数据库的准备

MyBatis 基础+环境搭建+案例_第10张图片
数据库表如下:
MyBatis 基础+环境搭建+案例_第11张图片

CREATE TABLE `user`(
	`id` int(11) NOT NULL auto_increment,
	`username` varchar(32) NOT NULL COMMENT '用户名称',
	`birthday` datetime DEFAULT NULL COMMENT '生日',
	`sex` char(1) DEFAULT NULL COMMENT '性别',
	`address` varchar(256) DEFAULT NULL COMMENT '地址',
	PRIMARY KEY (`id`),
)ENGINE=INNODB DEFAULT CHARSET=utf8;

2. 创建测试类

MyBatis 基础+环境搭建+案例_第12张图片
MybatisTest.class 如下:

import dao.IUserDao;
import domain.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.InputStream;
import java.util.List;

/**
 * mybatis 的入门案例
 */
public class MybatisTest {
     
    public static void main(String[] args) throws Exception{
     
        //1.读取配置文件
        //2.创建一个 SqlSessionFactory 工厂
        //3.使用工厂生产 SqlSession 对象
        //4.使用 SqlSession 创建 Dao 接口的代理对象
        //5.使用代理对象执行方法
        //6.释放资源

        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建一个 SqlSessionFactory 工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产 SqlSession 对象
        SqlSession  session = factory.openSession();
        //4.使用 SqlSession 创建 Dao 接口的代理对象
        IUserDao userDao = session.getMapper(IUserDao.class);
        //5.使用代理对象执行方法
        List<User> users = userDao.findAll();
        for (User user: users){
     
            System.out.println(user);
        }
        //6.释放资源
        session.close();
        in.close();
    }
}

3. 增加配置文件

MyBatis 基础+环境搭建+案例_第13张图片
配置文件内容如下:

log4j.rootLogger=INFO,CONSOLE
log4j.addivity.org.apache=true
 
# console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[demo] %-5p %d{
     yyyy-MM-dd HH\:mm\:ss} - %C.%M(%L)[%t] - %m%n
 
# all
log4j.logger.com.demo=INFO, DEMO
log4j.appender.DEMO=org.apache.log4j.RollingFileAppender
log4j.appender.DEMO.File=${catalina.base}/logs/demo.log
log4j.appender.DEMO.MaxFileSize=50MB
log4j.appender.DEMO.MaxBackupIndex=3
log4j.appender.DEMO.Encoding=UTF-8
log4j.appender.DEMO.layout=org.apache.log4j.PatternLayout
log4j.appender.DEMO.layout.ConversionPattern=[demo] %-5p %d{
     yyyy-MM-dd HH\:mm\:ss} - %C.%M(%L)[%t] - %m%n

4. 修改映射配置文件

IUserDao.xml 如下:
MyBatis 基础+环境搭建+案例_第14张图片

5. 运行测试类

运行结果如下:
MyBatis 基础+环境搭建+案例_第15张图片


小结

  1. 数据库的部分简单说了一下,需要详细了解的,可以参考—> 使用 Navicat 创建数据库,并用 JDBC 进行连接
  2. 在配置 xml 文件中,一些字符需要转义,比如 & 要转义为 &,要记得加分号,不要只写了前面的字母;

这是第一次接触 web 的框架,很多知识也不了解,如果上面有写错的地方,欢迎留言,共同学习。

你可能感兴趣的:(JavaWeb,javaweb,MyBatis)