Mybatis基础(3)——Mybatis的CRUD、Mybatis的参数深入

本文详细介绍了Mybatis的CRUD操作,包括用户保存、更新、删除、查询,以及参数配置的使用,如parameterType的基本类型、实体类型和包装对象。同时,探讨了#{}与${}的区别,并讲解了Mybatis的输出结果封装,如resultType和resultMap的配置及应用。
摘要由CSDN通过智能技术生成

目录

1.mybatis的CRUD案例

1.1 保存用户(插入)

1.2 更新用户

1.3 删除用户

1.4 根据id查询 

1.5 用户模糊查询 

1.6 查询使用聚合函数 

2.parameterType 配置参数 

2.1 传递基本类型

2.2 传递实体类型(POJO)

2.3 传递POJO包装对象

 3.Mybatis 的输出结果封装

3.1 resultType 配置结果类型 

3.2 resultMap 结果类型 


1.mybatis的CRUD案例

环境:

数据库环境与第一篇博客中相同,数据库中原始数据如下:

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>cn.cqu</groupId>
    <artifactId>MybatisDemo02</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

</project>

实体类User

package cn.cqu.entity;

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 User(){

    }

    public User(String username, String birthday, String sex, String address) {
        this.username = username;
        this.birthday = new Date(birthday);
        this.sex = sex;
        this.address = 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 "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

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">

<!--mybatis的主配置文件-->
<configuration>
    <!--  配置好环境  -->
    <!--此处default不管为什么,必须在environment中有定义-->
    <environments default="mysql">
        <!--配置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/mydb"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--  指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件
           如果是使用注解来配置的话,此处应该使用class属性指定被注解的mapper全限定类名-->
    <mappers>
        <!--   基于XML方式的配置     -->
    <mapper resource="cn/cqu/mapper/IUserMapper.xml"/>
        <!--   基于注解方式的配置     -->
<!--        <mapper class="cn.cqu.mapper.IUserMapper"/>-->
    </mappers>

</configuration>

我们在开发中,实际上只需要配置接口中的方法和配置配置文件

IUserMapper.java

package cn.cqu.mapper;

import cn.cqu.entity.User;
import java.util.List;

/**
 * 用户的持久层接口
 */

public interface IUserMapper {
    /**
     * 查询所有操作
     */
    List<User> findAll();

    /**
     * 保存用户
     */
    void saveUser(User user);

    /**
     * 更新用户
     */
    void updateUser(User user);

    /**
     * 根据User的id删除用户
     * @param userId
     */
    void deleteUser(Integer userId);

    /**
     * 根据User的id查询用户信息
     * @param userId
     * @return
     */
    User findByUserId(Integer userId);

    /**
     * 根据姓名进行模糊查询
     * @param username
     * @return
     */
    List<User> findByUsername(String username);

    /**
     * 查询总用户数
     * @return
     */
    int findTotal();

}

IUserMapper.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="cn.cqu.mapper.IUserMapper">
    <!--查询所有-->
    <select id="findAll" resultType&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值