使用Mapper来操作数据库

Mapper操作数据库,才是MyBatis 3的主流方式。

Mapper的主要优势在于: Mapper直接可以充当DAO组件。

▲ 使用Mapper操作数据库的开发步骤:

(1)定义Mapper接口,所有的数据操作都定义成该接口中方法

(2)为Mapper接口提供XML Mapper文件。

MyBatis将根据XML Mapper文件为Mapper接口生成实现类,所以建议:
1. XML Mapper文件的文件名与Mapper接口同名
2. XML Mapper文件的namespace属性应该等于 Mapper接口的全限定类名
3. XML Mapper文件与Mapper接口的源代码放在相同的包结构下。
4. XML Mapper文件中SQL语句的id必须与Mapper接口中方法名对应。
否则会报:Invalid bound statement
Mapper组件 = Mapper接口 + XML Mapper
(3)调用SqlSession的getMapper()方法来获取Mapper对象。
——MyBatis在底层负责提供Mapper的实现类
(4)使用Mapper对象充当DAO组件来操作数据库。

项目4MapperTest

更改数据库表字段名由new_content为news_content

映射文件和接口位于同一目录下,且文件名相同后缀不同。
接口中的方法名即为映射文件中的sql语句id名。

新增映射接口

package org.itcheng.app.dao;

import java.util.List;

import org.itcheng.app.domain.News;

// Mapper组件相当于DAO组件
public interface NewsMapper
{
   
	int saveNews(News news);
	
	int updateNews(News news);
	
	void deleteNews(Integer id);
	
	List<News> findNews(Integer id);

}

更改映射文件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属性值相当于该mapper的唯一标识 -->	
<mapper namespace="org.itcheng.app.dao.NewsMapper">
	<!-- SQL的id需要与Mapper接口的方法名相同  -->
	<insert 
01-08 17:04