MyBatis系列目录--3. Mybatis注解

1. PlayerDao注解方式实现

Java代码  

  1. package com.sohu.tv.mapper;
  2. import java.util.List;
  3. import org.apache.ibatis.annotations.Delete;
  4. import org.apache.ibatis.annotations.Select;
  5. import org.apache.ibatis.annotations.Update;
  6. import org.apache.ibatis.annotations.Insert;
  7. import com.sohu.tv.bean.Player;
  8. /**
  9. * 注解方式实现PlayerDao
  10. * @author leifu
  11. * @Date 2015年7月28日
  12. * @Time 上午10:16:39
  13. */
  14. public interface PlayerAnnotationDao {
  15. @Insert("insert into players(name, age) values(#{name}, #{age})")
  16. public int savePlayer(Player player);
  17. @Delete("delete from players where id=#{id}")
  18. public int deletePlayer(int id);
  19. @Update("update players set name=#{name},age=#{age} where id=#{id}")
  20. public int updatePlayer(Player player);
  21. @Select("select id,name,age from players where id=#{id}")
  22. public Player getPlayerById(int id);
  23. @Select("select id,name,age from players")
  24. public List<Player> selectAllPlayers();
  25. }
package com.sohu.tv.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.Insert;
import com.sohu.tv.bean.Player;
/**
 * 注解方式实现PlayerDao
 * @author leifu
 * @Date 2015年7月28日
 * @Time 上午10:16:39
 */
public interface PlayerAnnotationDao {
    @Insert("insert into players(name, age) values(#{name}, #{age})")
    public int savePlayer(Player player);

    @Delete("delete from players where id=#{id}")
    public int deletePlayer(int id);

    @Update("update players set name=#{name},age=#{age} where id=#{id}")
    public int updatePlayer(Player player);

    @Select("select id,name,age from players where id=#{id}")
    public Player getPlayerById(int id);

    @Select("select id,name,age from players")
    public List<Player> selectAllPlayers();
}

2. mybatis-base.xml添加注解相关配置

Xml代码  

  1. <mappers>
  2. <mapper class="com.sohu.tv.mapper.PlayerAnnotationDao"/>
  3. </mappers>
<mappers>
    <mapper class="com.sohu.tv.mapper.PlayerAnnotationDao"/>
</mappers>

【java框架源码下载】

3. 单元测试:

Java代码  

  1. package com.sohu.tv.test.mapper;
  2. import java.util.List;
  3. import org.apache.ibatis.session.SqlSession;
  4. import org.junit.After;
  5. import org.junit.Before;
  6. import org.junit.Test;
  7. import com.sohu.tv.bean.Player;
  8. import com.sohu.tv.mapper.PlayerAnnotationDao;
  9. /**
  10. * mybatis-annotation实现方式配置
  11. *
  12. * @author leifu
  13. * @Date 2015年7月28日
  14. * @Time 上午9:54:07
  15. */
  16. public class PlayerMapperAnnotationTest extends BaseTest {
  17. private SqlSession sqlSession;
  18. @Before
  19. public void before() {
  20. sqlSession = sessionFactory.openSession(true);
  21. }
  22. @After
  23. public void after() {
  24. sqlSession.close();
  25. }
  26. @Test
  27. public void testGetPlayer() {
  28. PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
  29. Player player = playerAnnotationDao.getPlayerById(1);
  30. System.out.println(player);
  31. }
  32. @Test
  33. public void testInsertPlayer() {
  34. PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
  35. playerAnnotationDao.savePlayer(new Player(-1, "carlos", 34));
  36. }
  37. @Test
  38. public void testDeletePlayer() {
  39. PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
  40. playerAnnotationDao.deletePlayer(4);
  41. }
  42. @Test
  43. public void testUpdatePlayer() {
  44. PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
  45. playerAnnotationDao.updatePlayer(new Player(3, "ronaldo", 39));
  46. }
  47. @Test
  48. public void testSelectAllPlayers() {
  49. PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
  50. List<Player> playerList = playerAnnotationDao.selectAllPlayers();
  51. if (playerList != null && !playerList.isEmpty()) {
  52. System.out.println("playerList size: " + playerList.size());
  53. for (Player player : playerList) {
  54. System.out.println(player);
  55. }
  56. }
  57. }
  58. }
package com.sohu.tv.test.mapper;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.sohu.tv.bean.Player;
import com.sohu.tv.mapper.PlayerAnnotationDao;
/**
 * mybatis-annotation实现方式配置
 *
 * @author leifu
 * @Date 2015年7月28日
 * @Time 上午9:54:07
 */
public class PlayerMapperAnnotationTest extends BaseTest {
    private SqlSession sqlSession;
    @Before
    public void before() {
        sqlSession = sessionFactory.openSession(true);
    }
    @After
    public void after() {
        sqlSession.close();
    }
    @Test
    public void testGetPlayer() {
        PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
        Player player = playerAnnotationDao.getPlayerById(1);
        System.out.println(player);
    }
    @Test
    public void testInsertPlayer() {
        PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
        playerAnnotationDao.savePlayer(new Player(-1, "carlos", 34));
    }
    @Test
    public void testDeletePlayer() {
        PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
        playerAnnotationDao.deletePlayer(4);
    }
    @Test
    public void testUpdatePlayer() {
        PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
        playerAnnotationDao.updatePlayer(new Player(3, "ronaldo", 39));
    }
    @Test
    public void testSelectAllPlayers() {
        PlayerAnnotationDao playerAnnotationDao = sqlSession.getMapper(PlayerAnnotationDao.class);
        List<Player> playerList = playerAnnotationDao.selectAllPlayers();
        if (playerList != null && !playerList.isEmpty()) {
            System.out.println("playerList size: " + playerList.size());
            for (Player player : playerList) {
                System.out.println(player);
            }
        }
    }
}
时间: 2024-10-20 02:19:49

MyBatis系列目录--3. Mybatis注解的相关文章

MyBatis系列目录--4. MyBatis别名、字段冲突、动态sql、日志、xml其他组件等若干优化

一.mybatis执行日志 加入log4j/logback能看到mybatis更详细的执行情况,以logback为例子 Xml代码   <logback.version>1.0.13</logback.version> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${l

MyBatis系列目录--5. MyBatis一级缓存和二级缓存(redis实现)

转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662 0. 相关知识: 查询缓存:绝大数系统主要是读多写少. 缓存作用:减轻数据库压力,提供访问速度. 1. 一级缓存测试用例 (1) 默认开启,不需要有什么配置 (2) 示意图 (3) 测试代码 Java代码   package com.sohu.tv.cache; import org.apache.ibatis.session.SqlSession; import org.junit.After; i

Mybatis系列(四)注解

Mybatis系列(四)注解 1.pom.xlm: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mave

mybatis系列笔记(1)---mybatis入门

mybatis入门   MyBatis是什么? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进. 目前mybatis在github上托管.  git(分布式版本控制,当前比较流程) MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费

mybatis系列-16-spring和mybatis整合

16.1     整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要由spring进行管理. 16.2     整合环境 创建一个新的java工程(接近实际开发的工程结构) jar包: mybatis3.2.7的jar包 spring3.2.0的jar包 mybatis和spring的整

深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete[转]

上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介绍mapper映射文件的配置, 这是mybatis的核心之一,一定要学好.在mapper文件中,以mapper作为根节点,其下面可以配置的元素节点有: select, insert, update, delete, cache, cache-ref, resultMap, sql . 本篇文章将简单介绍 in

深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap[转]

上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select.resultMap的用法.select无疑是我们最常用,也是最复杂的,mybatis通过resultMap能帮助我们很好地进行高级映射.下面就开始看看select 以及 resultMap的用法: 先看select的配置吧: <select <!-- 1. id (必须配置) id是命名空间中的

深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap good

上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select.resultMap的用法.select无疑是我们最常用,也是最复杂的,mybatis通过resultMap能帮助我们很好地进行高级映射.下面就开始看看select 以及 resultMap的用法: 先看select的配置吧: <select <!-- 1. id (必须配置) id是命名空间中的

深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)[转]

上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, 本篇继续讲剩下的配置节点之一:typeAliases. typeAliases节点主要用来设置别名,其实这是挺好用的一个功能, 通过配置别名,我们不用再指定完整的包名,并且还能取别名. 例如: 我们在使用 com.demo.entity. UserEntity 的时候,我们可以直接配置一个别名user, 这样