有了上篇文章中的环境基础,这里进一步做一些增删改查的实例。并附带源码下载链接。
一、配置文件的语法约束:
1、Mybatis的配置文件和接口的定义要有一定的规范约束,也是约定大于配置的一种表现,那就是配置文件中,增删改查的每一个方法的id要和接口中的方法一致,且大小写敏感。
2、在配置文件中增删改查方法有各自对应的标签:insert、delete、update、select。通常情况下都会有一个parameterType标签表示传入的参数类型。传递多个参数的时候,可以不在配置文件中使用该标签,但需在接口中配合注解。
3、多个参数的传递,还有两种方法:利用hashMap 、实体封装;mybatis 自身的多个参数传递方式。这里不做重点,后面会有介绍。
4、参数使用ognl的表达式语法,如:#{userName},#{userAge},#{userAddress}。
5、对于结果是集合类型的返回值使用resultMap标签标示。
6、association标签相当于一个component,可以打到复用的目的。
二、增删改查实例:
实例中包含了单表的增删改查和多表的联合查询,针对联合查询和hibernate的对象导航语法查询很类似,这里不用做过多解释,重点是具体语法的体会。
在上篇文章的基础上添加了Article实体,在接口中添加了单表增删改查的方法以及两个实体的联合查询,以及返回集合类型的方法。
1、接口的定义:
/**
* 规则:接口中的方法名和参数和配置文件中的id和parameterType分别对应,sql写在配置文件中,参数和调用的类test中的方法一致
* sql语句中的参数和实体中的字段名一致,
* @author limin
*
*/
public interface IUserOperation {
/*
* 这里面有一个方法名 selectUserByID 必须与 User.xml 里面配置的 select 的id 对应(<select
* id="selectUserByID")
*/
public User selectUserByID(int id);
//根据用户名查询用户列表
public List<User> selectUsers(String userName);
public void addUser(User user);
public void updateUser(User user);
public void deleteUser(int id);
public List<Article> getUserArticles(int id);
}
2、配置文件&#