自学内容网 自学内容网

MyBatis(四)参数与配置详解

目录

 二、MyBatis参数详解

1. parameterType

2. resultType

三、SqlMapConfig.xml配置文件

1. 定义properties标签的方式管理数据库的信息

把数据库的信息定义property标签中的方式

在项目中定义jdbc.properties属性文件,存储数据库相关的信息,统一管理

(1)jdbc.properties属性文件

(2)SqlMapConfig.xml的配置文件

2. 类型别名定义


 二、MyBatis参数详解

1. parameterType

  1. 简单数据类型

    int double类型 String类型 long

    简单的写法:java.lang.Integer --> int integer Int Integer 都可以,框架提供简写的方式。

  2. POJO(JavaBean实体类)对象类型,默认是不能简写,可以配置。

    User对象

  3. POJO包装对象类型

    包含更多的实体类

public class QueryVo implements Serializable {
    
    // 自己属性
    private String name;
    // user属性
    private User user;
    // role属性
    private Role role;
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public User getUser() {
        return user;
    }
​
    public void setUser(User user) {
        this.user = user;
    }
​
    public Role getRole() {
        return role;
    }
​
    public void setRole(Role role) {
        this.role = role;
    }
}
​
// 测试包装类查询
public List<User> findByVo(QueryVo vo);
​
<!--包装类测试查询-->
<select id="findByVo" parameterType="com.qcbyjy.domain.QueryVo" resultType="com.qcbyjy.domain.User">
    select * from user where username = #{user.username}
</select>

2. resultType

  1. 返回简单数据类型

    int double long String

  2. 返回POJO数据类型

    返回User对象类型

  3. resultMap结果类型

    resultType可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。 如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系 ,resultMap实质上还需要将查询结果映射到pojo对象中。 resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。

<!--演示resultMap配置-->
<select id="findUsers" resultMap="userMap">
  select id _id,username _username,birthday _birthday,sex _sex,address _address from user
</select>
​
<!--
        配置resultMap,用来进行数据封装
        id="唯一的名称,用来被引用的"
        type="进行封装数据的类型"
    -->
<resultMap id="userMap" type="com.qcbyjy.domain.User">
  <!--
            property="JavaBean中的属性"
            column="表中的字段"
        -->
  <result property="id" column="_id"/>
  <result property="username" column="_username" />
  <result property="birthday" column="_birthday" />
  <result property="sex" column="_sex" />
  <result property="address" column="_address" />
</resultMap>

三、SqlMapConfig.xml配置文件

1. 定义properties标签的方式管理数据库的信息

把数据库的信息定义property标签中的方式
<?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>
    
    <properties>
        <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
        <property name="jdbc.url" value="jdbc:mysql:///mybatis_db"/>
        <property name="jdbc.username" value="root"/>
        <property name="jdbc.password" value="root"/>
    </properties>
    
    <!-- 配置环境们 -->
    <environments default="mysql">
        <!-- 配置具体的环境 -->
        <environment id="mysql">
            <!-- 配置事务管理类型 -->
            <transactionManager type="JDBC"/>
            <!-- 配置是否需要使用连接池,POOLED使用,UNPOOLED不使用 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    
    <!-- 加载映射的配置文件 -->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>
</configuration>
在项目中定义jdbc.properties属性文件,存储数据库相关的信息,统一管理
(1)jdbc.properties属性文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis_db
jdbc.username=root
jdbc.password=root
(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>
    
    <!--  
        <properties resource="jdbc.properties"></properties>读取外部的配置文件
        resource="文件的相对路径写法"。例如:jdbc.properties 或者 cn/tx/xxx/jdbc.properties
    -->
    <properties resource="jdbc.properties"></properties>
    
    <!-- 配置环境们 -->
    <environments default="mysql">
        <!-- 配置具体的环境 -->
        <environment id="mysql">
            <!-- 配置事务管理类型 -->
            <transactionManager type="JDBC"/>
            <!-- 配置是否需要使用连接池,POOLED使用,UNPOOLED不使用 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    
    <!-- 加载映射的配置文件 -->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
    </mappers>
</configuration>

2. 类型别名定义

<!-- 定义别名 -->
<typeAliases>
  <!-- 把com.qcbyjy.domain.User使用user别名来显示,别名user User USER都可以,默认是忽略大写的 
  <typeAlias type="com.qcbyjy.domain.User" alias="user"/>
  -->
  <!-- 针对com.qcbyjy.domain包下的所有的类,都可以使用当前的类名做为别名 -->
  <package name="com.qcbyjy.domain"/>
</typeAliases>
​
<!--  
  resultType="com.qcbyjy.domain.User" 原来是全路径
  resultType="user" 现在使用的是别名的方式
 -->
<select id="findAll" resultType="user">
  select * from user
</select>


原文地址:https://blog.csdn.net/a13641376265/article/details/145216592

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!