每个项目中都会有通用的增删改查基础框架,现在搭一个基本的架子。
代码结构:
代码:
package com.crudTemplate.mapper;
public interface BaseMapper<T> {
void insert(T t);
}
//================
package com.crudTemplate.mapper;
import com.crudTemplate.entity.User;
public interface UserMapper extends BaseMapper<User> {
}
//================
package com.crudTemplate.service;
public interface BaseService<T> {
void insert(T entity);
}
//================
package com.crudTemplate.service;
import com.crudTemplate.entity.User;
public interface UserService extends BaseService<User> {
}
//================
package com.crudTemplate.service.impl;
import com.crudTemplate.mapper.BaseMapper;
import com.crudTemplate.service.BaseService;
public class BaseServiceImpl<M extends BaseMapper<T>,T> implements BaseService<T> {
protected M baseMapper;
@Override
public void insert(T entity) {
System.out.println("添加" + entity + "成功。");
baseMapper.insert(entity);
}
}
//================
package com.crudTemplate.service.impl;
import com.crudTemplate.entity.User;
import com.crudTemplate.mapper.UserMapper;
import com.crudTemplate.service.UserService;
public class UserServiceImpl extends BaseServiceImpl<UserMapper,User> implements UserService {
}
//================
//测试 在spring中需要标注注解,protected M baseMapper也需要标注注解
package com.crudTemplate;
import com.crudTemplate.entity.User;
import com.crudTemplate.service.UserService;
import com.crudTemplate.service.impl.UserServiceImpl;
public class CrudTest {
public static void main(String[] args) {
User user = new User();
user.setUserName("令狐冲");
user.setAge(25);
UserService us = new UserServiceImpl();
us.insert(user);
}
}
运行结果:
Exception in thread "main" java.lang.NullPointerException
at com.crudTemplate.service.impl.BaseServiceImpl.insert(BaseServiceImpl.java:12)
at com.crudTemplate.CrudTest.main(CrudTest.java:13)
添加User{userName='令狐冲', age=25}成功。
Process finished with exit code 1
从结果可以看出打印出User,证明可以运行,空指针异常是因为没有注入baseMapper。