Mybatis框架 -- 输入输出参数及配置文件解释

一、Mybatis框架的CRUD操作

1. 创建项目 配置依赖(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">
    <parent>
        <artifactId>mybatis01</artifactId>
        <groupId>com.zz</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>

    <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.30</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

2. SqlMapConfig.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="mysql">
        <environment id="mysql">
            <!--事务管理器-->
            <transactionManager type="jdbc"></transactionManager>
            <!--连接池配置-->
            <dataSource type="pooled">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql:///mybatis?characterEncoding=utf8"></property>
                <property name="username" value="root"></property>
                <property name="password" value="root"></property>
            </dataSource>
        </environment>
    </environments>

	<!--加载映射文件-->
	<!--默认只会加载类路径下的资源文件-->
    <mappers>
        <mapper resource="com/zz/dao/UserDao.xml"></mapper>
    </mappers>
</configuration>

3. 实体类

public class User{}

4. dao接口

public interface UserDao {

    void save(User user);

    void update(User user);

    void delete(int id);

    User findOne(int id);

    List<User> findByname(String username);
}

5. 接口映射.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="com.zz.dao.UserDao">

    <!--添加方法-->
    <!--parameterType 对应方法形参类型-->
    <!--#{}  表示占位符,相当于jdbc中的?-->
    <!--#{username}  中的username对应User对象的属性,作为占位符参数值-->
    <insert id="save" parameterType="com.zz.entity.User">
        insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
    </insert>

    <update id="update" parameterType="com.zz.entity.User">
        update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address}
            where id=#{id}
    </update>

    <!--删除-->
    <!--注意:当方法参数只有一个且不是对象类型,#{id}中的id可以随意定义-->
    <delete id="delete" parameterType="int">
        delete from user where id=#{id}
    </delete>

    <!--主键查询-->
    <!--parameterType 输入参数,对应方法形参-->
    <!--resultType    输出参数,对应方法返回值类型-->
    <select id="findOne" parameterType="int" resultType="com.zz.entity.User">
        select * from user where id=#{id}
    </select>

    <!--模糊查询-->
    <select id="findByname" parameterType="java.lang.String" resultType="com.zz.entity.User">
        select * from user where username like #{username}
    </select>

</mapper>

二、Mybatis输入/输出参数

1. 输入与输出参数

<!--parameterType 输入参数,对应方法形参-->
<!--resultType    输出参数,对应方法返回值类型-->
<select id="findOne" parameterType="int" resultType="com.zz.entity.User">
    select * from user where id=#{id}
</select>
  • 输入参数:parameterType,对应方法的形参

  • 输出参数:resultType,对应方法的返回值类型


2. parameterType

  • java简单类型作为输入参数
    parameterType简单类型.png

  • pojo类型作为输入参数
    POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBean
    parameterType pojo类型.png

  • pojo包装类型作为输入参数
    pojo包装类型:一个对象里面又包含了另外一个对象
    parameterType pojo包装类型.png

3. resultType

  • java简单类型作为输出参数
    resultType简单类型.png

  • pojo类型作为输出参数
    resultType指定方法返回对象(pojo类型)resultType对象类型.png

4. resultMap
  通过resultType作为输出参数时,可以把查询的结果自动封装为对象,但是要求数据库中的列名称要与对象的属性一致,否则不能正确封装数据。此时可以使用resultMap,设置列与属性的映射关系,从而解决列与属性不一致时不能正确封装数据的问题。
resultMap.png

三、SqlMapperConfig.xml 配置文件详解
配置标签名称说明作用
properties属性加载外部的配置文件
settings配置全局参数
typeAliases类型别名配置别名,给类指定别名
typeHandlers类型处理器
objectFactory对象工厂
plugins插件
environments环境集合属性对象
databaseIdProvider多数据库支持
mappers映射器配置加载接口的映射文件或接口类

注意:在sqlMapConfig.xml中必须是从上往下的配置顺序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值