热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mybatis03xml增加字段映射及数据源外部配置

使用配置配置文件中使用配置处理resultType以及使用外部

使用配置

配置文件中使用配置处理resultType以及使用外部properties

处理resultType

当查询语句中的resultMap对应实体类时,如果实体类与数据库结构不一致,那么返回的值就是null,需要处理数据库表结构字段与实体类之间的字段映射。

<select id="findAll" resultMap="myUser">
select * from user
select>

增加实体类与数据库表结构映射

<resultMap id="myUser" type="com.example.domain.User">
<id column="id" property="userId">id>
<result column="name" property="userName">result>
<result column="sex" property="userSex">result>
<result column="address" property="userAddress">result>
<result column="birthDay" property="userBirthDay">result>
resultMap>

然后在select insert等节点上的resultMap引用这个id即可。

使用propertites配置数据库信息

增加jdbcConfig.propertites配置文件

jdbc.driver:com.mysql.jdbc.Driver
jdbc.url:jdbc:mysql://localhost:3306/scmdb?serverTimezOne=UTC&useUnicode=true&characterEncoding=UTF-8
jdbc.username:root
jdbc.password:123456

然后在mybatis中使用这个配置文件

<properties resource="jdbcConfig.properties">
properties>

<environments default="myBatis">

<environment id="myBatis">
<transactionManager type="JDBC">transactionManager>

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

配置文件总览

SqlMapConfigure.xml


PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">


<configuration>


<properties resource="jdbcConfig.properties">
properties>

<environments default="myBatis">

<environment id="myBatis">
<transactionManager type="JDBC">transactionManager>

<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="com/example/dao/IUserDao.xml">mapper>
mappers>
configuration>

jdbcConfig.properties

jdbc.driver:com.mysql.jdbc.Driver
jdbc.url:jdbc:mysql://localhost:3306/scmdb?serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=UTF-8
jdbc.username:root
jdbc.password:123456

IUserDao.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.example.dao.IUserDao">
<!--配置查询所有-->
<resultMap id="myUser" type="com.example.domain.User">
<id column="id" property="userId"></id>
<result column="name" property="userName"></result>
<result column="sex" property="userSex"></result>
<result column="address" property="userAddress"></result>
<result column="birthDay" property="userBirthDay"></result>
</resultMap>
<select id="findAll" resultMap="myUser">
select * from user
</select>
<select id="findUserById" resultType="com.example.domain.User">
select * from user where id=#{value}
</select>
<insert id="saveUser" parameterType="com.example.domain.User">
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id();
</selectKey>
insert into user(userName,address,sex,birthday) values (#{userName},#{address},#{sex},#{birthDay});
</insert>
<update id="updateUser" parameterType="com.example.domain.User">
update user set userName=#{userName},address=#{address},sex=#{sex},birthday=#{birthDay} where id=#{id};
</update>
<delete id="deleteUser">
delete from user where id=#{value};
</delete>
<select id="findUserByQueryVo" parameterType="com.example.domain.QueryVo" resultType="com.example.domain.User">
select * from user where username like #{user.userName}
</select>
</mapper>

在这里插入图片描述


推荐阅读
author-avatar
暧qs祢生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有