Mybatis (choose、set、where)标签的使用

目录

1. choose标签的使用 

2. where标签的使用 

3. set标签的使用


1. choose标签的使用 

  • Mapper.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.jmh.mybatis.mapper.BookMapper" >
  <resultMap id="row" type="com.jmh.mybatis.model.Book" >
      <id column="book_id" property="bookId"  javaType="java.lang.Integer" />
      <result column="book_name" property="bookName"  javaType="java.lang.String" />
      <result column="price" property="price"  javaType="java.lang.Float" />
  </resultMap>
</mapper>
 <select id="chooses" resultMap="row">
    select
    <include refid="Base_Column_List" />
    from tb_book
    where 1=1
    <choose>
      <when test="bookId!=null">
        and book_id=#{bookId}
      </when>
      <otherwise>
        and 1=2
      </otherwise>
    </choose>
  </select>
  •  service层
Book chooses(Book book);
  •  实现类
  //创建对象
    private BookMapper bookMapper;


    /**
     * 给bookMapper set,get方法
     * @return
     */
    public BookMapper getBookMapper() {
        return bookMapper;
    }

    public void setBookMapper(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }
    
    @Override
    public Book chooses(Book book) {
        return bookMapper.chooses(book);
    }
  •  使用junit测试
package com.jmh.mybatis.service.impl;

import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.Book;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.List;
import java.util.Map;
import java.util.Set;

import static org.junit.Assert.*;

public class DemoTest {
    //获取对象
    private Book book;
    private IBookService iBookService;
    private SqlSession sqlSession;

    @Before
    public void setUp() throws Exception {
        book=new Book();
        sqlSession = MybatisSqlSessionFactory.getSqlsession();
        BookMapper mapper = sqlSession.getMapper(BookMapper.class);
        BookServiceImpl iml=new BookServiceImpl();
        iml.setBookMapper(mapper);
        iBookService= iml;
    }

    @After
    public void tearDown() throws Exception {
        sqlSession.commit();
        MybatisSqlSessionFactory.closeSqlsession();
    }


    @Test
    public void resultChoose() {
        book.setBookId(400);
        Book chooses = iBookService.chooses(book);
        System.out.println(chooses);
    }


}

 测试如下

2. where标签的使用 

  • Mapper.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.jmh.mybatis.mapper.BookMapper" >
  <resultMap id="row" type="com.jmh.mybatis.model.Book" >
      <id column="book_id" property="bookId"  javaType="java.lang.Integer" />
      <result column="book_name" property="bookName"  javaType="java.lang.String" />
      <result column="price" property="price"  javaType="java.lang.Float" />
  </resultMap>
</mapper> 
 <select id="wheres" resultMap="row">
    select
    <include refid="Base_Column_List" />
    from tb_book
    <where>
      <if test="bookId!=null">
       and  book_id=#{bookId,jdbcType=INTEGER}
      </if>
      <if test="bookName!=null">
       and  book_Name=#{bookName,jdbcType=VARCHAR}
      </if>
    </where>
  </select>
  • service层
List<Book> wheres(Book book);
  •  实现类
  //创建对象
    private BookMapper bookMapper;


    /**
     * 给bookMapper set,get方法
     * @return
     */
    public BookMapper getBookMapper() {
        return bookMapper;
    }

    public void setBookMapper(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }
    
    @Override
    public List<Book> wheres(Book book) {
        return bookMapper.wheres(book);
    }
  • 使用junit测试
package com.jmh.mybatis.service.impl;

import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.Book;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.List;
import java.util.Map;
import java.util.Set;

import static org.junit.Assert.*;

public class DemoTest {
    //获取对象
    private Book book;
    private IBookService iBookService;
    private SqlSession sqlSession;

    @Before
    public void setUp() throws Exception {
        book=new Book();
        sqlSession = MybatisSqlSessionFactory.getSqlsession();
        BookMapper mapper = sqlSession.getMapper(BookMapper.class);
        BookServiceImpl iml=new BookServiceImpl();
        iml.setBookMapper(mapper);
        iBookService= iml;
    }

    @After
    public void tearDown() throws Exception {
        sqlSession.commit();
        MybatisSqlSessionFactory.closeSqlsession();
    }


    @Test
    public void resultWheres() {
        book.setBookId(306);
        List<Book> chooses = iBookService.wheres(book);
        for (Book choose : chooses) {
            System.out.println(choose);
        }
    }

}
  • 测试结果如下 

 3. set标签的使用

  •  Mapper.xml
  <update id="sets">
    update tb_book
    <set>
      <if test="bookId!=null">
        book_id=#{bookId},
      </if>
      <if test="bookName!=null">
        book_Name=#{bookName},
      </if>
      <if test="price!=null">
        price=#{price},
      </if>
    </set>
    where book_id=#{bookId}
  </update>
  •  service层
int sets(Book book);
  •  实现类
    //创建对象
    private BookMapper bookMapper;


    /**
     * 给bookMapper set,get方法
     * @return
     */
    public BookMapper getBookMapper() {
        return bookMapper;
    }

    public void setBookMapper(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }  

    @Override
    public int sets(Book book) {
        return bookMapper.sets(book);
    }
  •  使用junit测试
package com.jmh.mybatis.service.impl;

import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.Book;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.List;
import java.util.Map;
import java.util.Set;

import static org.junit.Assert.*;

public class DemoTest {
    //获取对象
    private Book book;
    private IBookService iBookService;
    private SqlSession sqlSession;

    @Before
    public void setUp() throws Exception {
        book=new Book();
        sqlSession = MybatisSqlSessionFactory.getSqlsession();
        BookMapper mapper = sqlSession.getMapper(BookMapper.class);
        BookServiceImpl iml=new BookServiceImpl();
        iml.setBookMapper(mapper);
        iBookService= iml;
    }

    @After
    public void tearDown() throws Exception {
        sqlSession.commit();
        MybatisSqlSessionFactory.closeSqlsession();
    }
 

    @Test
    public void resultSet() {
        book.setBookId(306);
        book.setBookName("一不小心就给鑫哥一个大鼻窦");
        book.setPrice(520f);
        book.setBookId(306);
        iBookService.sets(book);
        System.out.println("成功");
    }
}


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值