定义bean,对应数据库中的表

package com.atChina.bean;public class Employee {private Integer deptno;private String dname;private String loc;public int getDeptno() {return deptno;}public void setDeptno(int deptno) {this.deptno = deptno;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}public String getLoc() {return loc;}@Overridepublic String toString() {return "Employee [deptno=" + deptno + ", dname=" + dname + ", loc="+ loc + "]";}public void setLoc(String loc) {this.loc = loc;}
}

定义接口类

package com.atChina.dao;import com.atChina.bean.Employee;public interface EmployeeMapper {public Employee getEmployeeById(Integer depno);
}

sql映射文件(EmployeeMapper.xml):sql映射文件的namespace,id要与接口类保持一致.

SqlSession和Connection一样都是非线程安全。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace不能随便自定义了,应该是接口类的全限定名 -->
<mapper namespace="com.atChina.dao.EmployeeMapper"><!-- id:唯一标识 ,应该是接口类中的抽象方法名resultType: 返回值类型#{deptno}:参数 --><selectid="getEmployeeById"  resultType="com.atChina.bean.Employee">select * from DEPTTEST where deptno = #{deptno}</select>
</mapper>

全局配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><propertyname="driver"value="oracle.jdbc.OracleDriver" /><propertyname="url"value="jdbc:oracle:thin:@localhost:1521:orcl" /><propertyname="username"value="scott" /><propertyname="password"value="123456" /></dataSource></environment></environments><!-- 把sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 --><mappers><mapper resource="EmployeeMapper.xml" /></mappers>
</configuration>

执行sql,测试代码:

@Testpublic void test2() throws IOException {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession = sqlSessionFactory.openSession();try{// 命名空间.id,这样别的配置文件里有同名的id,程序也不报错EmployeeMapper em = openSession.getMapper(EmployeeMapper.class);// 会为接口自动创建一个代理对象,代理对象去执行增删改查方法System.out.println(em.getClass()); // 动态代理类Employee ee = em.getEmployeeById(10);System.out.println(ee);}finally{// 关闭openSession.close();}}

mybaits二:通过接口类,查询数据相关推荐

  1. Statement接口实现查询数据、添加数据

    本文介绍了Statement接口实现查询数据.添加数据.在JDBC的基本应用中,介绍了使用Statement接口查询和添加数据的步骤.重点在于使用getConnection()方法来连接数据库,创建S ...

  2. Python设计模式二:接口类和抽象类(Python接口设计)

    系列文章目录 Python设计模式一:面向对象编程 文章目录 系列文章目录 前言 一.接口类和抽象类是什么? 基于接口编程而非实现 二.Python里如何实现接口类和抽象类? 三.接口类和抽象类的应用 ...

  3. Django框架(11.Django中的通过模型类查询数据以及相关函数和条件)

     Django中的查询函数 通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询.    不管哪个函数注意返回值的类型 函数名 功能 返回值 说明 get 返回表中满足条件的 ...

  4. python同花顺程序化交易接口能查询数据吗?

    一般情况下,python同花顺程序化交易接口每个方向只支持一个策略,一个策略可以用于多个接口.因此所有PC的下载速率的限制都应该定义在同一个策略,就像你要查询股票数据,或者是下单数据等,都可以使用同花 ...

  5. python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)

    一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...

  6. 新网域名查询和注册API接口类 源码

    最近公司要做一个基于新网的API,在自己的系统中实现实时查询域名注册情况,并且要能实时注册,注册费用自动从我们的代理帐户中扣除,下面是我写的核心实现类代码:     public class XinN ...

  7. Supermap GIS二次开发之查询面内数据是否有点数据

    Supermap GIS二次开发之查询面内数据是否有点数据 作者:谢景,撰写时间:2019-1-18 在我们进行GIS二次开发的时候,经常会需要查询某个面区域里是否有点数据,或者是面区域里面的点数据是 ...

  8. 「FastAdmin」fastadmin二次开发中如何自定义查询数据

    fastadmin二次开发中如何自定义查询数据 问题背景:最近做一个网站的过程中遇到了一个需求:对于不同用户组的用户,显示的数据要根据权限来筛选.问题看起来不是很难,文档和社区中已经给了足够的提示,我 ...

  9. JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。

    JUnit测试类完成后事务是默认 回滚的.只能查询数据,不能增删改. 在测试类或者测试方法上面加上注解 @Rollback(false)  表示事物不回滚,这样数据就可以提交到数据库中了. 转载于:h ...

最新文章

  1. qconshanghai2014
  2. 高级软件工程第九次作业:东理三剑客团队作业-随笔2
  3. 【2018.3.17】模拟赛之三-ssl1863jzoj1367 俄罗斯方块【模拟】
  4. Eclipse安装Alibaba Cloud Toolkit并连接阿里云云数据库
  5. 问卷调查 asp 源码一起研究
  6. 使用Redis的理由
  7. linux使用rename批量修改文件扩展名
  8. cmd设置mysql初始密码_windows下mysql初始密码设置
  9. 2021年SWPUACM暑假集训day4KMP算法
  10. 搭建ORB_SLAM3在Linux下的编译和运行环境
  11. 基于javaweb的企业员工绩效工资管理系统(java+springboot+freemarker+mysql)
  12. 从服务器取文件的命令,ftp 服务器取文件命令
  13. linux设置display参数,Linux DISPLAY 变量设置
  14. vim末行模式下的替换操作
  15. 数据挖掘十大经典算法个人总结
  16. 像360悬浮窗那样,用WindowManager做一个炫酷的悬浮迷你音乐盒(上)
  17. python的序列类型
  18. 地理课(geography)
  19. 计算机专业特色展示,计算机专业实验室的特色建设
  20. 挖掘应用型创新人才 第六届大学生RDMA编程挑战赛正式启幕

热门文章

  1. document事件及例子
  2. 触摸事件练习 -- 手势解锁
  3. sql server 链接到oracle库,读取对应信息
  4. Centos5.5上vsftpd安装使用
  5. xp下发布wcf时遇到的问题_解决方法
  6. CCF-CSP 201612-2 工资计算(C++满分代码)
  7. 计算机教授技术追踪劫匪,打脸 911警察
  8. 说一说MVC的CompressActionFilterAttrubute(五)
  9. 基于Windows环境下MyEclipse10快捷键总结
  10. 关于前端缓存的一个封装思路