码迷,mamicode.com
首页 > 移动开发 > 详细

spring 梳理12--简单整合mybatis(四) 动态Mapper(常用)

时间:2021-01-26 11:54:10      阅读:0      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!