hello world

MyBatis3支持面向接口编程:

具体做法如下,将helloWorld中的EmployeeMapper.xml文件进行更改:


  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.mybatis.learn.dao.EmployeeMapper">
  6. <select id="selectEmployee" resultType="com.mybatis.learn.bean.Employee">
  7. select id, last_name lastName, gender, email from tbl_employee where id = #{id}
  8. </select>
  9. </mapper>

将namespace改为你新创建的接口的全类名,其中,接口如下所示:


  1. package com.mybatis.learn.dao;
  2. import com.mybatis.learn.bean.Employee;
  3. public interface EmployeeMapper {
  4. public Employee getEmpById(Integer id);
  5. }

然后将测试类中的方法进行更改


  1. @Test
  2. public void test() {
  3. //1.从 XML 中构建 SqlSessionFactory
  4. // 也可以不使用xml文件来获取SqlSessionFactory
  5. String resource = "mybatis-config.xml";
  6. InputStream inputStream = null;
  7. try {
  8. inputStream = Resources.getResourceAsStream(resource);
  9. } catch (IOException e) {
  10. e.printStackTrace();
  11. }
  12. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  13. //2.从 SqlSessionFactory 中获取 SqlSession
  14. // SqlSession session = sqlSessionFactory.openSession();
  15. // try {
  16. // Employee employee = (Employee) // //session.selectOne("org.mybatis.example.BlogMapper.selectEmployee", 1);
  17. // System.out.println(employee);
  18. // } finally {
  19. // session.close();
  20. // }
  21. SqlSession session = sqlSessionFactory.openSession();
  22. try {
  23. EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
  24. Employee employee = mapper.getEmpById(1);
  25. System.out.println(employee);
  26. } finally {
  27. session.close();
  28. }
  29. }

注意:

1.SqlSession代表和数据库的一次会话;用完必须关闭;

2.SqlSession和connection一样她都是非线程安全。每次使用都应该去获取新的对象。

3.mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象(将接口和xml进行绑定)

即:EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class);

4.mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息等...系统运行环境信息

5.sql映射文件:保存了每一个sql语句的映射信息:将sql抽取出来。

MyBatis3系列__02接口式编程的更多相关文章

  1. mybaits接口式编程

    Mybatis是接口式编程实现对.xml中sql语句的执行,其过程如下(取自慕课网视频<通过自动回复机器人学Mybatis---加强版>): 1.加载配置信息2.通过加载配置信息加载一个代 ...

  2. 通过自动回复机器人学Mybatis 笔记:接口式编程

    [接口式编程]尚未遇见Spring --> 代码量反而增加 1.增加约定,减少犯错的可能(不用直接去写字符串 修改点1:命名空间 修改点2:增加接口,方法名与配置文件中的id对应 package ...

  3. MyBatis的接口式编程Demo

    很久没细看过MyBatis了,时间一长就容易忘记. 下面是一个接口式编程的例子. 这里的例子一共分为4步: 1 首先要有一个namespace为接口的全类名的映射文件,该例中是 IMyUser.xml ...

  4. Mybatis笔记二:接口式编程

    目录 旧方法的弊端 接口式编程 接口式编程的好处 接口式编程的增删改查 旧方法的弊端 在Mybatis笔记一中,我们使用命名空间+id的方式实现了Mybatis的执行,不过这里的命名空间是我们随便写的 ...

  5. MyBatis源码解析【7】接口式编程

    前言 这个分类比较连续,如果这里看不懂,或者第一次看,请回顾之前的博客 http://www.cnblogs.com/linkstar/category/1027239.html 修改例子 在我们实际 ...

  6. 通过自动回复机器人学Mybatis笔记:接口式编程

    [接口式编程]尚未遇见Spring --> 代码量反而增加 1.增加约定,减少犯错的可能(不用直接去写字符串 修改点1:命名空间 修改点2:增加接口,方法名与配置文件中的id对应 package ...

  7. MyBatis3-topic04,05 -接口式编程

    笔记要点 /**接口式编程: * 1. 原生: Dao 接口-->Dao接口的实现类 * mybatis: Mapper --> 有一个与之对应的 XXMapper.xml * 2. Sq ...

  8. iOS开发技巧系列---使用链式编程和Block来实现UIAlertView

    UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本 ...

  9. mybatis学习(三)——接口式编程

    对于上一节中的查询我们还可以通过接口的方式进行编程,开发环境和上一节一样 1.全局配置文件mybatis_config.xml(和上一节一样) <?xml version="1.0&q ...

随机推荐

  1. python3 练手实例5 做一个简单电子时钟

    import time,sys,os while(1): t = time.strftime('%Y-%m-%d\n%H:%M:%S',time.localtime(time.time())) pri ...

  2. sql选择

    关系型数据库遵循ACID规则 1.A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整 ...

  3. Css - 选择器和样式

    Css - 选择器和样式 标签选择器 即使用html标签作为选择对象 <style>     div{ background:red; } </style> <div&g ...

  4. springmvc 开发流程图

  5. window下 多开redis

    1.先复制整个redis 一份 2.在配置文件redis.windows.conf .redis.windows-server.conf中  改端口 3.cmd命令 redis-server redi ...

  6. Python爬虫案例-获取最新的中国行政区域划分

    源网页:中国统计局标准 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/ 打开网页后可以分析出行政区域划分共分为5层 根据传入参数,生成网页 ...

  7. insert主键返回 selectKey使用

    有时候新增一条数据,知道新增成功即可,但是有时候,需要这条新增数据的主键,以便逻辑使用,再将其查询出来明显不符合要求,效率也变低了. 这时候,通过一些设置,mybatis可以将insert的数据的主键 ...

  8. hyperledger fabric部署总结

    之前在有道云笔记上分享过,但想想还是搬到这里来吧,以后统一方便整理自己的知识进入正题.... 之前在调研 hyperledger fabric,其实部署说明官网都有,只是东西都是国外的照着操作也会遇到 ...

  9. 奇yin技巧

    关于一些奇yin技巧 关于删除字符串中的一些字串,并且考虑新的字串 例题:luogu4824 luogu3121 方法:开一个栈记录,发现字串后剪去字串长度. for(int i=1;i<=le ...

  10. linux常见故障处理

    目录 一. 文件和目录类 1.1 File exist 文件已经存在 1.2 No such file or directory 没有这个文件或目录(这个东西不存在) 1.3 command not ...