标签:oca find ESS configure 程序 data ext name 例程
上面的实例程序并没有使用 Mapper 动态代理和注解来完成,下面我们就来试试如何用动态代理和注解:
配置文件:
<!-- Mapper 扫描器 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 扫描 cn.wmyskxz.mapper 包下的组件 --> <property name="basePackage" value="com.xinzhi.dao"/> </bean>
<!--配置SqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--关联Mybatis--> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="mapperLocations" value="classpath:com/xinzhi/dao/*.xml"/> </bean>
在【mapper】下新建一个【UserQueryMapper】代理接口,并使用注解:
public interface UserMapper { /** * 获取所有的用户 * @return */ List<User> getAllUsers(); ... }
不需要实现,只要一个接口一个xml即可
测试
@Test public void testFindAll(){ UserMapper mapper = (UserMapper) context.getBean("userMapper"); List<User> users = mapper.getAllUsers(); for (User user : users) { System.out.println(user); } }
结果:
User{id=1, username=‘楠哥‘, password=‘123456‘} User{id=3, username=‘磊哥‘, password=‘987654‘} User{id=5, username=‘微微姐‘, password=‘12345678‘} User{id=6, username=‘微微姐‘, password=‘12345678‘} 可以看到,查询结果和之前非 Mapper 代理的查询结果一样
当然有的人连配置文件也不想要
@Mapper public interface AdminMapper { /** * 保存管理员 * @param admin * @return */ @Insert("insert into admin (username,password) values (#{username},#{password})") int saveAdmin(Admin admin);
/** * 更新管理员 * @param admin * @return */ @Update("update admin set username=#{username} , password=#{password} where id = #{id}") int updateAdmin(Admin admin);
/** * 删除管理员 * @param id * @return */ @Delete("delete from admin where id=#{id}") int deleteAdmin(int id);
/** * 根据id查找管理员 * @param id * @return */ @Select("select id,username,password from admin where id=#{id}") Admin findAdminById(@Param("id") int id);
/** * 查询所有的管理员 * @return */ @Select("select id,username,password from admin") List<Admin> findAllAdmins(); }
一般使用动态mapper,使用动态代理完成工作,一般会使用xml和mappeer配合使用。这才是最佳实践。
spring 梳理12--简单整合mybatis(四) 动态Mapper(常用)
标签:oca find ESS configure 程序 data ext name 例程
原文地址:https://www.cnblogs.com/Master-Sun/p/14320711.html