目录
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("成功");
}
}