mybaits二:通过接口类,查询数据
定义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二:通过接口类,查询数据相关推荐
- Statement接口实现查询数据、添加数据
本文介绍了Statement接口实现查询数据.添加数据.在JDBC的基本应用中,介绍了使用Statement接口查询和添加数据的步骤.重点在于使用getConnection()方法来连接数据库,创建S ...
- Python设计模式二:接口类和抽象类(Python接口设计)
系列文章目录 Python设计模式一:面向对象编程 文章目录 系列文章目录 前言 一.接口类和抽象类是什么? 基于接口编程而非实现 二.Python里如何实现接口类和抽象类? 三.接口类和抽象类的应用 ...
- Django框架(11.Django中的通过模型类查询数据以及相关函数和条件)
Django中的查询函数 通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询. 不管哪个函数注意返回值的类型 函数名 功能 返回值 说明 get 返回表中满足条件的 ...
- python同花顺程序化交易接口能查询数据吗?
一般情况下,python同花顺程序化交易接口每个方向只支持一个策略,一个策略可以用于多个接口.因此所有PC的下载速率的限制都应该定义在同一个策略,就像你要查询股票数据,或者是下单数据等,都可以使用同花 ...
- python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)
一.昨日复习 派生方法和派生属性 super 只有在子父类拥有同名方法的时候, 想使用子类的对象调用父类的方法时,才使用super super在类内 : super().方法名(arg1,..) 指名 ...
- 新网域名查询和注册API接口类 源码
最近公司要做一个基于新网的API,在自己的系统中实现实时查询域名注册情况,并且要能实时注册,注册费用自动从我们的代理帐户中扣除,下面是我写的核心实现类代码: public class XinN ...
- Supermap GIS二次开发之查询面内数据是否有点数据
Supermap GIS二次开发之查询面内数据是否有点数据 作者:谢景,撰写时间:2019-1-18 在我们进行GIS二次开发的时候,经常会需要查询某个面区域里是否有点数据,或者是面区域里面的点数据是 ...
- 「FastAdmin」fastadmin二次开发中如何自定义查询数据
fastadmin二次开发中如何自定义查询数据 问题背景:最近做一个网站的过程中遇到了一个需求:对于不同用户组的用户,显示的数据要根据权限来筛选.问题看起来不是很难,文档和社区中已经给了足够的提示,我 ...
- JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。
JUnit测试类完成后事务是默认 回滚的.只能查询数据,不能增删改. 在测试类或者测试方法上面加上注解 @Rollback(false) 表示事物不回滚,这样数据就可以提交到数据库中了. 转载于:h ...
最新文章
- qconshanghai2014
- 高级软件工程第九次作业:东理三剑客团队作业-随笔2
- 【2018.3.17】模拟赛之三-ssl1863jzoj1367 俄罗斯方块【模拟】
- Eclipse安装Alibaba Cloud Toolkit并连接阿里云云数据库
- 问卷调查 asp 源码一起研究
- 使用Redis的理由
- linux使用rename批量修改文件扩展名
- cmd设置mysql初始密码_windows下mysql初始密码设置
- 2021年SWPUACM暑假集训day4KMP算法
- 搭建ORB_SLAM3在Linux下的编译和运行环境
- 基于javaweb的企业员工绩效工资管理系统(java+springboot+freemarker+mysql)
- 从服务器取文件的命令,ftp 服务器取文件命令
- linux设置display参数,Linux DISPLAY 变量设置
- vim末行模式下的替换操作
- 数据挖掘十大经典算法个人总结
- 像360悬浮窗那样,用WindowManager做一个炫酷的悬浮迷你音乐盒(上)
- python的序列类型
- 地理课(geography)
- 计算机专业特色展示,计算机专业实验室的特色建设
- 挖掘应用型创新人才 第六届大学生RDMA编程挑战赛正式启幕