- 配置文件中
在標籤中配置package,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<typeAliases>
<package name="com.ss.model"/>
</typeAliases>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"/>
<dataSource type="com.ss.datasource.C3P0DataSource"/>
</environment>
</environments>
<mappers>
<package name="com.ss.mapper"/> <!-- mapper包名 -->
</mappers>
</configuration>
- xxxMapper.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.ss.mapper.BookMapper">
<sql id="bookValues">
#{bookId},#{bookName},#{bookAuthor},#{bookPrice},#{bookKind},#{totalStore},#{totalSold},#{bookPic},#{bookProfile},#{bookStatus}
</sql>
<sql id="bookValues1">
(#{book.bookId},#{book.bookName},#{book.bookAuthor},#{book.bookPrice},#{book.bookKind},#{book.totalStore},#{book.totalSold},#{book.bookPic},#{book.bookProfile},#{book.bookStatus})
</sql>
<select id="getBookByBookId" resultMap="bookResultMap">
select<include refid="bookColumns"/>
from t_book
where book_id = #{bookId}
</select>
<resultMap type="book" id="bookResultMap">
<id property="id" column="primary_id"/>
<result property="bookId" column="book_id"/>
<result property="bookName" column="book_name"/>
<result property="bookAuthor" column="book_author"/>
<result property="bookPrice" column="book_price"/>
<result property="bookKind" column="book_kind"/>
<result property="totalStore" column="total_store"/>
<result property="totalSold" column="total_sold"/>
<result property="bookPic" column="book_pic"/>
<result property="bookProfile" column="book_profile"/>
<result property="bookStatus" column="book_status"/>
<!-- <association property="bookInfo" column="book_id" select="com.ss.mapper.BookInfoMapper">
<id/>
<result/>
</association> -->
</resultMap>
<sql id="bookColumns">
primary_id,book_id,book_name,book_author,book_price,book_kind,total_store,total_sold,book_pic,book_profile,book_status
</sql>
</mapper>
關鍵是namespace中要對應mapper接口
- mapper接口中
package com.ss.mapper;
import java.util.List;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.cache.decorators.FifoCache;
import com.ss.model.Book;
public interface BookMapper {
public Book getBookByBookId(Long bookId);
}
注意:接口中的方法名要與xml中的id對應。
- dao層
package com.ss.dao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import com.ss.mapper.BookMapper;
import com.ss.model.Book;
import com.ss.util.SqlSessionFactorySingleTon;
public class BookDao {
@Test
public void testOneToOne(){
SqlSessionFactory sessionfactory = SqlSessionFactorySingleTon.getInstance().getSqlSessionFactory();
SqlSession session = sessionfactory.openSession(true);
BookMapper mapper = session.getMapper(BookMapper.class);
Book book = mapper.getBookByBookId(125L); //在此調用接口的方法,傳入參數
System.out.println(book);
session.close();
}
}
查詢語句較爲複雜而且常常需要修改,所以通過這種方法將查詢語句分離到xml中,方便修改。