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

一、Mybatis框架的CRUD操作

1. 创建项目 配置依赖(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">
    <parent>
        <artifactId>mybatis01artifactId>
        <groupId>com.zzgroupId>
        <version>1.0-SNAPSHOTversion>
    parent>
    <modelVersion>4.0.0modelVersion>
    <packaging>pompackaging>

    <dependencies>
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.4.5version>
        dependency>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.30version>
        dependency>
        <dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>1.2.17version>
        dependency>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>testscope>
        dependency>
    dependencies>
project>

2. 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>
                <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文件




<mapper namespace="com.zz.dao.UserDao">

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

    
    
    <delete id="delete" parameterType="int">
        delete from user where id=#{id}
    delete>

    
    
    
    <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. 输入与输出参数



<select id="findOne" parameterType="int" resultType="com.zz.entity.User">
    select * from user where id=#{id}
select>
  • 输入参数:parameterType,对应方法的形参

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


2. parameterType

  • java简单类型作为输入参数
    Mybatis框架 -- 输入输出参数及配置文件解释_第1张图片

  • pojo类型作为输入参数
    POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBean
    Mybatis框架 -- 输入输出参数及配置文件解释_第2张图片

  • pojo包装类型作为输入参数
    pojo包装类型:一个对象里面又包含了另外一个对象
    Mybatis框架 -- 输入输出参数及配置文件解释_第3张图片

3. resultType

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

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

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

三、SqlMapperConfig.xml 配置文件详解

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

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

你可能感兴趣的:(SSM)