命名规范
- Mapper文件的命名规则是 表名+Mapper.xml,接口的命名规则也是表名+Mapper,习惯上的规则。一般mapper文件和接口名称一致。
- Mapper文件的namespace必须是接口的全限定名。
- Mapper文件的statementID必须和接口的方法名称一致。
- Statement的parameterType必须和方法的参数一致。
- resultType必须和方法的返回值一致。
- 接口下有哪些抽象方法 mapper 文件下必须有对应的sql
service层告别中间商身份
没有使用Mybatis mapper的开发模式是:
web层调service层,service层调dao层。 service层只起到中间商的身份。
现在是dao层只有接口没有实现类,以前dao层的实现类中的操作现在写在service层的实现类中
例如:
//这是service层的实现类中的代码
SqlSessionFactory ssf = null;
//这一步是提前定义好了一个static的SqlSessionFactoryBean
public MenuServiceImpl(){
try {
ssf = SqlSessionFactoryBean.getSqlSessionFactor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public MenuBean getMenuBean (int menuId) {
SqlSession session = ssf.openSession();
MenuDao md = session.getMapper(MenuDao.class);
MenuBean mb = md.getMenuBean(menuId);
session.close();
return mb;
}
mapper配置文件中的命名规则:
namespace = “对应结构的全限名”
id 此结构下的方法的方法名
入参方法定义参数类型
出参方法定义返回值类型
例如:
<mapper namespace="dao.MenuDao">
<!-- namespace = "对应结构的全限名"
id 此结构下的方法的方法名
入参方法定义参数类型
出参方法定义返回值类型 -->
<select id="getMenuBean" parameterType="int" resultType="bean.MenuBean">
select * from menu where menuId = #{menuId}
</select>