通用Mapper的使用

一、环境搭建

     1. 先搭好spring和Mybatis的整合的环境

     2.导入Mapper的Maven依赖

 <dependency>
        <groupId>tk.mybatisgroupId>
        <artifactId>mapperartifactId>
          <version>4.0.0-beta3version>
      dependency>

      3.修改spring配置文件


    <bean id="scannerConfigurer" class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
 
        <property name="basePackage" value="com.li.dao"/>
    bean>

二、AccountMapper的接口实现

      继承Mapper接口,泛型为实体类

public interface AccountMapper extends Mapper {

}

三、在Service中注入就可以使用其中方法

@Service
@Transactional
public class AccountServiceImpl {

    @Autowired
    private AccountMapper accountMapper;

    public Account getOne(Account account){
       return accountMapper.selectOne(account);
    }

}

四、测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class TestSpring {
    @Autowired
    private AccountServiceImpl accountService;
    @Test
    public void test01(){
        Account account=new Account();
        account.setName("张三");
        Account one = accountService.getOne(account);
        System.out.println(one);
    }
}

注意:在创建实体类时,如果表名和表中属性名与数据库中不一致可使用注解:@table、@Column

           数据库中表名或者字段名:tb_user   对应   实体类的名字: tbUser

/**
 * @Table :name:指定数据库中表的名称
 */
@Table(name = "account")
public class account{
   /**
   *  @Id: 主键
   *   @GeneratedValue(strategy = GenerationType.IDENTITY) :主键自增
   */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(name="cid")
    private Long cid;

    private String name;
    //此注解可以使改属性不映射到数据库表中
    @Transient
    private List params;

你可能感兴趣的:(通用Mapper的使用)