今天这一章要紧接上一讲中的东西,本章中创建基于单表操作的CRUD与GetList操作,此示例中以Visitor表为范例,为了创建一点测试数据我们先弄个Add方法吧

继续在上次的IVisitorOperation接口类中添加add,delete,update,query与getList接口方法,如下所示:

    /*
     * 基础查询
     */
    public Visitor basicQuery(int id);

    /*
     * 添加访问者
     */
    public int add(Visitor visitor);
    
    /*
     * 删除访问者
     */
    public int delete(int id);
    
    /*
     * 更新访问者
     */
    public int update(Visitor visitor);
    
    /*
     * 查询访问者
     */
    public Visitor query(int id);
    
    /*
     * 查询访问者List
     */
    public List<Visitor> getList();

对于相应的CRUD操作,在VisitorMapper.xml的<mapper>节点下分别对应insert,update,delete,select节点,具体配置详情参数说明课参照官网 http://mybatis.github.io/mybatis-3/sqlmap-xml.html
这个示例中要的配置如下,传递的参数用#{parameter_name},当然也可直接用${parameter_name},

前者的方式,Mybatis会把它转化为参数化的形式例如 insert into table (name) values (#{name}) => insert into table (name) values ( ? ) (Mysql情况下)

后者的方式,Mybatis会原封不动的不做任何操作把参数传过来,例如  insert into table (name) values (${name}) => insert into table (name) values ( [你所传的值] ),传aa,这里就是aa,传'aa'这里就是'aa'。

<?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="david.mybatis.demo.IVisitorOperation">
    <!-- 
        useGeneratedKeys="true"代表是否使用自增长序列, 
        keyProperty="Id"指定自增长列是哪一列, 
        parameterType="Visitor"指定IVisitorOperation接口类中定义中所传的相应类型
        resultType 表示返回的类型,例如query中的visitor
        resultMap 自定义的返回类型,是返回复杂类型是的最佳首选,也是mybatis里最强大的武器
     -->
    <insert id="add" parameterType="Visitor" useGeneratedKeys="true"
        keyProperty="Id">
        insert into Visitor (Name, Email, Status, CreateTime)
        values (#{name}, #{email}, #{status}, #{createTime})
    </insert>
    <delete id="delete" parameterType="int">
        delete from Visitor where
        status>0 and id = #{id}
    </delete>
    <update id="update" parameterType="Visitor">
        update Visitor set Name =
        #{name}, Email=#{email}, Status=#{status} where id=#{id} and Status>0;
    </update>
    <select id="query" parameterType="int" resultType="Visitor">
        select Id,
        Name, Email, Status, CreateTime from visitor where id=#{id} and
        Status>0 order by Id
    </select>
    <select id="basicQuery" parameterType="int" resultType="Visitor">
        select * from visitor where id=#{id} and
        Status>0 order by Id
    </select>
    <select id="getList" resultMap="visitorRs">
        <include refid="getListSql" />
    </select>
    <resultMap type="Visitor" id="visitorRs">
        <id column="Id" property="id" />
        <result column="Name" property="name" />
        <result column="Email" property="email" />
        <result column="Status" property="status" />
        <result column="CreateTime" property="createTime" />
    </resultMap>
    <sql id="getListSql">
        select * from Visitor where
        status>0
    </sql>
</mapper>
VisitorMapper

相关文章:

  • 2021-11-03
  • 2022-12-23
  • 2022-01-28
  • 2022-12-23
  • 2022-12-23
  • 2022-02-08
  • 2021-09-06
猜你喜欢
  • 2022-12-23
  • 2021-04-13
  • 2021-11-11
  • 2021-12-04
  • 2022-12-23
  • 2021-05-27
  • 2021-07-04
相关资源
相似解决方案