1.1、提出需求
1.2、创建表和数据
创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。
1 CREATE TABLE teacher(
2 t_id INT PRIMARY KEY AUTO_INCREMENT,
3 t_name VARCHAR(20)
4 )
5 CREATE TABLE class(
6 c_id INT PRIMARY KEY AUTO_INCREMENT,
7 c_name VARCHAR(20),
8 teacher_id INT
9 )
10 ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id)
11
12 INSERT INTO teacher(t_name) VALUES('teacher1')
13 INSERT INTO teacher(t_name) VALUES('teacher2')
14
15 INSERT INTO class(c_name, teacher_id) VALUES('class_a', 1)
16 INSERT INTO class(c_name, teacher_id) VALUES('class_b', 2)
如何开发自己的通用MapperHsqldbMapper实例
第一步,创建HsqldbMapper<T>
public interface HsqldbMapper<T>{
}
这个接口就是我们定义的通用Mapper,具体的接口方法在**第三步**写。其他的Mapper可以继承这个HsqldbMapper<T>。
第二部,创建HsqldbProvider
public class HsqldbProvider extends MapperTemplate {
//继承父类的方法
public HsqldbProvider(Class<?>mapperClass, MapperHelper mapperHelper) {
super(mapperClass, mapperHelper);
}
}
这个类是实际处理 *** 作的类,需要继承MapperTemplate,具体代码在**第四步**写。
第三步,在HsqldbMapper<T>中添加通用方法
这里以一个分页查询作为例子。 public interface HsqldbMapper { /** * 单表分页查询 * * @param object * @param offset * @param limit * @return */
@SelectProvider(type=HsqldbProvider.class,method = "dynamicSQL") List
selectPage(@Param("entity") T object, @Param("offset") int offset,
@Param("limit") int limit); }
返回结果为List,入参分别为查询条件和分页参数。在Mapper的接口方法中,当有多个入参的时候建议增加@Param注解,否则就得用param1,param2…来引用参数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)