对通用mapper的理解
可以将通用mapper理解成一个工具,主要是学会使用它;注意是简化对单表的操作。
代码结构
库表
配置文件
在applicationContext会话工厂里配置通用mapper插件。
<!--配置SqlSessionFactory,通过Spring来管理会话工厂-->
<bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--配置数据源:因为要使用SqlSession操作数据库-->
<property name="dataSource" ref="dataSource"></property>
<!--加载mybatis的全局配置文件-->
<!--<property name="configLocation" value="classpath:mybatis.xml"></property>-->
<!--Spring起别名-->
<property name="typeAliasesPackage" value="com.me.pojo"></property>
<!-- 通用mapper插件的配置 -->
<property name="plugins">
<array>
<!--pagehelper分页配置。 -->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
helperDialect=mysql
offsetAsPageNum=true
<!-- 防止出现小于第一页,大于最后一页的异常情况出现。 -->
reasonable=true
</value>
</property>
</bean>
<bean class="com.github.abel533.mapperhelper.MapperInterceptor">
<property name="properties">
<value>
<!-- 主键自增回写方法,默认值MYSQL -->
IDENTITY=MYSQL
mappers=com.github.abel533.mapper.Mapper
</value>
</property>
</bean>
</array>
</property>
</bean>
UserInfoMapper.java
不用配置pojo类的接口,mapper文件也极大简化了。只需继承Mapper(applicationContext.xml里配置的)就可以。Mapper里封装了很多对单表操作的方法。
import com.github.abel533.mapper.Mapper;
import com.me.pojo.UserInfo;
public interface UserInfoMapper extends Mapper<UserInfo> {
}
UserInfoServiceImpl.java
@Service
public class UserInfoServiceImpl implements UserInfoService {
@Autowired
private UserInfoMapper userInfoMapper;
@Override
public List<UserInfo> select(UserInfo userInfo) {
return userInfoMapper.select(userInfo);
}
}
测试类
@Autowired
private UserInfoService userInfoService;
@Test
public void test(){
UserInfo user=new UserInfo();
user.setSex("男");
List<UserInfo> userInfos=userInfoService.select(user);
System.err.println(userInfos.toString());
}