mybatis--map映射文件 标签详解

来源:互联网 发布:excel重复数据高亮 编辑:程序博客网 时间:2024/05/16 05:51

在学习编程的过程中,遇到过很多的配置文件,我知道它们可以给有的工作带来很多便利,但却总是处理不了,这里记录下我遇到的每个配置文件,并将里面用到的标签一一弄清,希望累积到最后可以有个不错的丰收。

一、表设计


很简单的一个用户表,主键id,两个字段username,password


二、mapper映射文件

<?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="book.pojo.User">  <!-- 插入一条数据 -->  <insert id="insertUser" parameterType="User" statementType="PREPARED"  keyProperty="id" useGeneratedKeys="true">  insert into user(username,password) values(#{username,jdcb=VARCHAR},#{password,jdbc=VARCHAR})   </insert> <!-- 更新一条数据 --><update id="updateUser" paramterType="User">update user set userName = #{userName,jdbcType=VARCHAR},password = #{password,jdbcType=VARCHAR}WHERE id = #{id,jdbcType = INTEGER}</update> <!-- 删除一条数据 --><delete id="deleteUser" parameterType="int">delete from user where id=#{id}</delete> <!-- 查询一条数据 -->      <select id="findById" parameterType="int" resultType="book.pojo.User">    select * from user where id=#{id}    </select></mapper>


三、标签解释
mapper 

 map映射文件。


namespace 

 自定义一个名称,可以是aa,也可以是bb,假如现在map映射文件不止一个,(通常在工程中,一个实体类对应一个map映射文件)在session中调用sql语句是通过调用sql语句的id,那么倘若两个map映射文件里的id是一样的怎么办,这时就体现出namespace的作用了。

id 

 每条sql语句的唯一标识符,java代码通过索引特定的id,从而找到与之对应的那条sql语句。

parameterType 

 传入参数。如查询一条数据中,传入的是主键id,它的参数类型是int,而在插入一条数据中,传入的参数是个User对象,这里应该写User类的完整路径名,也就是book.pojo.User,这里直接写User,是因为在基本配置文件(mybatisconfig.xml)中配置了book.pojo.User的别名User,配置别名后在map映射文件中,User就可以代替book.pojo.User了。

statementType 

学习jdbc都会碰到它,PREPARED表示预处理,也就是jdbc中的“?”,意位着这里需要传入一个参数,但是我还不知道这个参数是什么,所以先放一个占位符去占个位子,“#{ }”就是mybatis里的占位符。

keyProperty 

 User表中有个主键id,因为主键都是自增的,所以这里直接指明了主键是哪一个字段。

useGeneratedKeys 

 与keyProperty连用,上面指定了主键,这里就指定它自增。

resultType 

 在查询语句中个,会有个返回值,同parameterType一样,这里表示的是返回值得参数类型。


jdbc=VARCHAR 

 mybatis很智能的将java属性的数据类型和数据库中字段的数据类型相匹配,但有时复杂数据类型匹配不了时,可通过这种方法进行操作。

1 0
原创粉丝点击