[Mybatis-2续]. SqlSession发送SQL的两种方式

  • Mybatis有两种发送SQL的方式
  1. SqlSession发送SQL
    直接看实例
public static void main(String[] args) throws IOException {
        SqlSession session=MybatisUtil.getSession();
        User user=session.selectOne("mybaits.entity.UserMapper.selectUser",1);
        System.out.println("id="+user.getId()+"  name="+user.getName()+"  password="+user.getPassword());
        session.close();
    }
  1. 用Mapper接口发送SQL
    SqlSession sqlSession;
    UserMapper mapper;
    @Before
    public void getMapper() throws IOException {
        sqlSession=MybatisUtil.getSession();
        mapper=sqlSession.getMapper(UserMapper.class);
    }
  • 对比两种方式:
  1. 使用mapper接口编程可以消除SqlSession带来的功能性代码,提高可读性,而使用SqlSession发送SQL需要一个SQL id去匹配SQL,使用Mapper更符合完全面对对象语言,更能体现业务的逻辑.
  2. 例如当使用Mapper时,方法参数是long型变量,Mapper.getUser(1L)IDE会提示错误和校验,而使用sqlSession.selectOne("getUser",1L),只有在运行中才能知道是否会产生错误.

当然如今大多数用的更多是Mapper接口编程,关于第二点可以忽略(我自己觉得,当会碰到这样的问题再说吧)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容