MyBatis(四)参数与配置详解
目录
在项目中定义jdbc.properties属性文件,存储数据库相关的信息,统一管理
二、MyBatis参数详解
1. parameterType
-
简单数据类型
int double类型 String类型 long
简单的写法:java.lang.Integer --> int integer Int Integer 都可以,框架提供简写的方式。
-
POJO(JavaBean实体类)对象类型,默认是不能简写,可以配置。
User对象
-
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
-
返回简单数据类型
int double long String
-
返回POJO数据类型
返回User对象类型
-
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)!