一步一步搭建Mybatis开发环境,实现CRUD增删改查操作

文章目录

      • 一、环境搭建
        • 1.创建maven工程
        • 2.pom.xml文件导入坐标
        • 3.项目结构总览
      • 二、添加用户
      • 三、修改用户
      • 四、删除用户
      • 五、查询用户
        • 5.1根据id查询信息
        • 5.2模糊查询
        • 5.3查询使用聚合函数
        • 5.4resultMap——解决数据库字段和实体类属性不一致
      • 六、总结

一、环境搭建

1.创建maven工程

一步一步搭建Mybatis开发环境,实现CRUD增删改查操作_第1张图片
一步一步搭建Mybatis开发环境,实现CRUD增删改查操作_第2张图片
一步一步搭建Mybatis开发环境,实现CRUD增删改查操作_第3张图片
点击finish即可
一步一步搭建Mybatis开发环境,实现CRUD增删改查操作_第4张图片

2.pom.xml文件导入坐标

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>

    <groupId>com.thinkcoder</groupId>
    <artifactId>mybatis的CRUD操作</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--mybatis的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!--mysql的依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <!--日志依赖-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>2.12.1</version>
        </dependency>
        <!--单元测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

3.项目结构总览

一步一步搭建Mybatis开发环境,实现CRUD增删改查操作_第5张图片
从上到下依次实现代码
IUserDao接口

  • 作用:用户的持久层接口,定义操作数据库的方法
public interface IUserDao {

    //查询所有用户
    List<User> findAll();
	
	// 增删改查的方法写到这里
}

为了看的清晰(好吧,我偷懒,哈哈哈),剩下的crud的操作,只写当前的操作,就不带之前的方法了

建表的sql脚本

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 AUTO_INCREMENT=49 DEFAULT CHARSET=utf8;

User类

  • 利用了ORM思想:Object Relational Mapping对象关系映射,把实体类的属性和数据库表对应起来,操作实体类就实现操作数据库表
package com.thinkcoder.domain;
import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName User
 * @Author ThinkCocer
 */
public class User implements Serializable {
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;
	
	//getter和setter方法
    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}
	
	//重写tostring方法
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

IUserDao.xml映射配置文件

  • 作用:和IUserDao接口方法映射,IUser接口方法对应的sql语句及返回类型
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.thinkcoder.dao.IUserDao">
    <!--查询所有-->
    <select id="findAll" resultType="com.thinkcoder.domain.User">
        select * from user;
    </select>
</mapper>

要求:因为实现基于Dao代理对象实现,所以没有IUserDao接口的实现类,要符合以下要求

  • 1.持久层接口IUserDao接口和持久层接口的映射配置(IUserDao.xml)必须在相同包下
    一步一步搭建Mybatis开发环境,实现CRUD增删改查操作_第6张图片
  • 2.namespace属性取值是IUserDao接口的全限定类名,如:com.thinkcoder.domain.User
  • 3.SQL 语句配置标签