精华内容
下载资源
问答
  • 这是本人写的一个基于WebService的Java项目,采用Spring框架,实现了对远程数据的访问,教你怎样配置和访问WebService服务器,让你不再为写数据访问接口而烦恼。下载解压后直接导入MyEclipse中,启动Tomcat服务器,...
  • 文章目录七、实现步骤(五)创建数据访问接口1、创建学校数据访问接口2、创建状态数据访问接口3、创建学生数据访问接口4、创建用户数据访问接口 七、实现步骤 (五)创建数据访问接口 DAO: Data Acess Object 系统...

    七、实现步骤

    (五)创建数据访问接口

    • DAO: Data Acess Object
    • 系统有四张表:t_college、t_status、t_tudent与t_user表,对这四张表的操作就在相应的数据访问接口里进行规定,有四个数据访问接口:CollegeDao、StatusDao、StudentDao与UserDao。将这些接口放到net.hw.student.dao包里。
    • net.hw.student包里创建子包dao
      在这里插入图片描述

    1、创建学校数据访问接口

    • 创建学校数据访问接口CollegeDao
      在这里插入图片描述
    package net.hw.student.dao;
    
    import net.hw.student.bean.College;
    
    /**
     * 功能:学校数据访问接口
     * 作者:华卫
     * 日期:2020年06月05日
     */
    public interface CollegeDao {
        College findById(int id); // 按编号查询学校记录
        int update(College college); // 更新学校记录
    }
    

    2、创建状态数据访问接口

    • 创建状态数据访问接口StatusDao
      在这里插入图片描述
    package net.hw.student.dao;
    
    import net.hw.student.bean.Status;
    
    /**
     * 功能:状态数据访问接口
     * 作者:华卫
     * 日期:2020年06月05日
     */
    public interface StatusDao {
        Status findById(int id); // 按编号查询状态记录
        int update(Status status); // 更新状态记录
    }
    

    3、创建学生数据访问接口

    • 创建学生数据访问接口StudentDao
      在这里插入图片描述
    package net.hw.student.dao;
    
    import net.hw.student.bean.Student;
    
    import java.util.List;
    import java.util.Vector;
    
    /**
     * 功能:学生数据访问接口
     * 作者:华卫
     * 日期:2020年06月05日
     */
    public interface StudentDao {
        int insert(Student student); // 插入学生记录
        int deleteById(String id); // 按编号删除学生记录
        int deleteByClass(String clazz); // 按班级删除学生记录
        int deleteByDepartment(String department); // 按系部删除学生记录
        int update(Student student); // 更新学生记录
        Student findById(String id); // 按编号查询学生
        List<Student> findByName(String name); // 按姓名查询学生记录
        List<Student> findByClass(String clazz); // 按班级查询学生记录
        List<Student> findByDepartment(String department); // 按系部查询学生记录
        List<Student> findAll(); // 查询全部学生记录
        Vector findRowsBySex(); // 按性别统计人数
        Vector findRowsByClass(); // 按班级统计人数
        Vector findRowsByDepartment(); // 按系部统计人数
    }
    

    4、创建用户数据访问接口

    • 创建用户数据访问接口UserDao
      在这里插入图片描述
    package net.hw.student.dao;
    
    import net.hw.student.bean.User;
    
    import java.util.List;
    
    /**
     * 功能:用户数据访问接口
     * 作者:华卫
     * 日期:2020年06月05日
     */
    public interface UserDao {
        int insert(User user); // 插入用户记录
        int deleteById(int id); // 按编号删除用户记录
        int update(User user); // 更新用户记录
        User findById(int id); // 按编号查询用户记录
        List<User> findAll(); // 查询全部用户记录
        User login(String username, String password); // 用户登录
        boolean isUsernameExisted(String username); // 判断用户名是否存在
    }
    
    • 思考:为什么要创建数据访问接口?采用接口加实现类的分层处理方式有什么好处?
    展开全文
  • 文章目录七、实现步骤(六)创建数据访问接口实现类 七、实现步骤 (六)创建数据访问接口实现类 在net.hw.student.dao包里创建impl子包,然后在里面创建四个数据访问接口的实现类。

    文章目录

    七、实现步骤

    (六)创建数据访问接口实现类

    • net.hw.student.dao包里创建impl子包,然后在里面创建四个数据访问接口的实现类。
      在这里插入图片描述

    1、创建学校数据访问接口实现类

    • 创建学校数据访问接口实现类CollegeDaoImpl
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    单元测试:对CollegeDaoImpl进行单元测试

    为了确保Dao层给上层提供正确的数据操作服务,应该进行单元测试,本项目采用JUnit4单元测试框架。

    • 在根包net.hw.student里创建test子包,在里面创建测试类TestCollegeDaoImpl
      在这里插入图片描述
      在这里插入图片描述

    (1)编写测试方法testFindById()

    在这里插入图片描述

    • 给testFindById()添加测试注解符
      在这里插入图片描述
    • 将单元测试JUnit4添加到类路径,才能使用测试注解符@Test
    • 将鼠标移到@Test,按<Alt>+<Enter>组合键,弹出快捷菜单,选择第一项Add 'JUnit4' to classpath
    • 执行单元测试方法testFindById()
      在这里插入图片描述
    • 查看添加到类路径的JUnit4
      在这里插入图片描述
    • 编写单元测试方法testFindById()代码
      在这里插入图片描述
    • 运行测试方法testFindById(),查看结果
      在这里插入图片描述

    (2)编写测试方法testUpdate()

    在这里插入图片描述

    • 运行测试方法testUpdate(),查看结果
      在这里插入图片描述
      由此可见,CollegeDaoImpl的两个方法都通过了单元测试,其实多个测试方法可以一起进行测试,这样做测试效率更高。

    (3)同时运行多个测试方法

    在这里插入图片描述

    (4)修改完善测试代码

    • 两个测试方法的第一行代码都是一样的,因此可以提取出来
      在这里插入图片描述
    • 在每个单元测试之前都要执行的代码,我们可以将代码放在一个方法里面,但是加上一个注解符@Before即可。
    • 在每个单元测试之后都要执行的代码,我们可以将代码放在一个方法里面,但是加上一个注解符@After即可。
    • 添加测试前与测试后要执行的代码
      在这里插入图片描述
    • 运行测试方法testFindById(),查看结果
      在这里插入图片描述
    • 运行测试方法testUpdate(),查看结果
      在这里插入图片描述

    2、创建状态数据访问接口实现类

    • 创建状态数据访问接口实现类StatusDaoImpl
      在这里插入图片描述
      在这里插入图片描述

    单元测试:对StatusDaoImpl进行单元测试

    • 在net.hw.student.test包里创建测试类TestStatusDaoImpl
      在这里插入图片描述

    (1)编写测试方法testFindById()

    在这里插入图片描述

    • 运行testFindById()方法,查看结果
      在这里插入图片描述

    (2)编写测试方法testUpdate()

    在这里插入图片描述

    • 运行testUpdate()方法,查看结果
      在这里插入图片描述
    • 有些同学,在测试更新方法时,抛出MySQLSyntaxErrorException,如下图所示:
      在这里插入图片描述
      要学会看错误提示信息,这对于我们开发程序相当重要,提示在telephone = '13845456780’附近存在MySQL句法错误,因此,我们要去看源码进行调试,解决这个错误。
      在这里插入图片描述

    3、学生数据访问接口实现类

    • 学生数据访问接口实现类StudentDaoImpl
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    单元测试:对StudentDaoImpl进行单元测试

    • 在net.hw.student.test包里创建测试类TestStudentDaoImpl
      在这里插入图片描述

    (1)编写测试方法testInsert()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 可以打开数据表,查看插入的新记录
      在这里插入图片描述

    (2)编写测试方法testDeleteById()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 打开数据表,查看先前插入的记录【张晓慧】是否被删除
      在这里插入图片描述

    (3)编写测试方法testDeleteByClass()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 同学们,不妨打开学生表,查看是否删除成功
    • 打开NaviCat,运行student.sql脚本,恢复数据。
      在这里插入图片描述

    (4)编写测试方法testFindByName()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 修改待查学生的姓名
      在这里插入图片描述
    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 查找所有姓“李”的学生记录,修改查找目标
      在这里插入图片描述
    • 运行该测试方法,查看结果
      在这里插入图片描述

    (5)编写测试方法testFindAll()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述

    (6)编写测试方法testFindRowsBySex()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述

    独立完成剩余方法的测试任务

    (1)编写测试方法testDeleteByDepartment()

    (2)编写测试方法testUpdate()

    (3)编写测试方法testFindById()

    (4)编写测试方法testFindByClass()

    (5)编写测试方法testFindByDepartment()

    (6)编写测试方法testFindRowsByClass()

    (7)编写测试方法testFindRowsByDepartment()

    4、创建用户数据访问接口实现类

    • 创建用户数据访问接口实现类UserDaoImpl
      在这里插入图片描述
      在这里插入图片描述

    单元测试:对UserDaoImpl进行单元测试

    • 在net.hw.student.test包里创建测试类TestUserDaoImpl
      在这里插入图片描述

    (1)编写测试方法testFindById()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述

    (2)编写测试方法testLogin()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 修改用户名和密码
      在这里插入图片描述
    • 运行该测试方法,查看结果
      在这里插入图片描述

    (3)编写测试方法testIsUsernameExisted()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 修改用户名,改成用户表里有的用户名【王霞】
      在这里插入图片描述
    • 运行该测试方法,查看结果
      在这里插入图片描述

    (4)编写测试方法testInsert()

    在这里插入图片描述

    • 运行该测试方法,查看结果
      在这里插入图片描述
    • 再次运行该测试方法,查看结果
      在这里插入图片描述
    • 因为不允许同名用户插入,所以用户记录插入失败。

    独立完成剩余方法的测试任务

    (1)编写测试方法testDeleteById()

    (2)编写测试方法testUpdate()

    (3)编写测试方法testFindAll()

    展开全文
  • 数据访问接口体系及数据对象模型探讨数据访问接口体系及数据对象模型探讨--[1] 数据访问接口体系及数据对象模型探讨--[2] 数据访问接口体系及数据对象模型探讨--[3] 数据访问接口体系及数据对象模型探讨--[附录]
    展开全文
  • nc 数据访问接口

    千次阅读 2015-06-10 09:26:49
    //后台通过IUAPqueryBS 访问数据库: IUAPQueryBS query=NCLocator.getInstance().lookup(IUAPQueryBS.class);  Object carNum=null;  StringBuffer sql = new StringBuffer();  sql.app

    //后台通过IUAPqueryBS 访问数据库:

    import nc.itf.uap.IUAPQueryBS;

    import nc.bs.framework.common.NCLocator;

    IUAPQueryBS query=NCLocator.getInstance().lookup(IUAPQueryBS.class);
                Object carNum=null;
                StringBuffer sql = new StringBuffer();
                sql.append("select f.name ");
                sql.append("  from so_saleorder a ");
                sql.append(" inner join (select distinct b.csourcebillhid, c.cgeneralhid ");
                sql.append("               from ic_saleout_b b ");
                sql.append("              inner join ic_saleout_h c ");
                sql.append("                 on b.cgeneralhid = c.cgeneralhid) d ");
                sql.append("    on a.csaleorderid = d.csourcebillhid ");
                sql.append("  left join ic_saleout_h e ");
                sql.append("    on d.cgeneralhid = e.cgeneralhid ");
                sql.append("    left join bd_defdoc f  ");
                sql.append("    on e.vdef2=f.pk_defdoc   ");
                sql.append(" where a.dr = '0' ");
                sql.append("   and e.dr = '0' ");
                if(this.getSaleBillCode()!=null&&!this.getSaleBillCode().equals(""))
                {
                    sql.append(" and a.vbillcode = '"+this.getSaleBillCode()+"' ");
                    try {
                        carNum= query.executeQuery(sql.toString(),new ColumnProcessor());//还有ArrayListProcessor,ArrayPracessor,MapListProcessor(使用List<Map<String,Object>>)接收,BeanListProcessor等
                    } catch (BusinessException e) {
                        e.printStackTrace();
                    }
                }


    //前台访问主要通过BillFromModel等获取页面值

        private SaleOrderBillForm editor;

    String saleBillCode=null;
            BillCardPanel bcp=(BillCardPanel) editor.getBillCardPanel();
            BillItem billModel=bcp.getHeadItem("vbillcode");
            if(billModel!=null){
            saleBillCode=(String)billModel.getValueObject();
            }


    //前台访问数据接口

      public UFDouble queryMoneyUtil(String sql){
          UFDouble money = null;
          List list = null;
          HashMap data = null;
          IUAPQueryBS queryBS = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
              try {
                    list = (List) queryBS.executeQuery(sql, new MapListProcessor());
                } catch (BusinessException e1) {
                    e1.printStackTrace();
            }
              
              if(list.size() > 0){
                  data = (HashMap)(list.toArray())[0];
                  if(null == data.get("money"))
                      money = new UFDouble(0,2);//精确到小数点后2位
                  else
                      money = new UFDouble(data.get("money").toString()); //取结果集名称为money的字段
                  
              }
          return money;

    //BaseDAO


    BaseDAO dao = new BaseDAO();
            String pk_brrecord = vos[0].getParent().getAttributeValue("pk_brrecord").toString();
            StringBuffer sql = new StringBuffer();
            sql.append(" delete ");
            sql.append(" from bgyqc_brnotice ");        
            sql.append(" where cfirstid= ");
            sql.append("'");
            sql.append(pk_brrecord);
            sql.append("'");
            try {
                dao.executeUpdate(sql.toString());
            } catch (DAOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }

    展开全文
  • Dojo Data Store —— 统一数据访问接口

    千次阅读 2011-03-17 17:12:00
      本文已经首发于InfoQ中文站,版权所有,原文为《Dojo Data Store —— 统一数据访问接口》,如需转载,请务必附带本声明,谢谢。  InfoQ中文站是一个面向中高端技术人员的在线独立社区,为Java...
  • SQL Server 提供的各种数据访问接口

    千次阅读 2017-10-31 16:20:00
    在创建SQL Server的链接服务器时,可以看到有如下几种访问接口,其中我们常用的只有1、3、4、6。其中4是安装Oracle客户端才会出现的接口,3、6是由于我电脑上装了2008R2和2012两个版本的数据库所致。 3、6可以...
  • 2.Spring Data通过提供Repository接口来约定数据访问的统一标准。 3.Repository接口下包含一些常用的子接口:  CrudRepository、PagingAndSortingRepository、JpaRepository 4.在进行spri...
  • 数据访问接口功能及含义

    千次阅读 2014-09-10 21:26:56
    ADC主要是一种直接访问或者通过ADO访问远程OLEDB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。 ADO Active数据对象(ActiveDataObjects...
  • ADO、OLEDB、ODBC之间的关系: 演进路标(从早到晚):ODBC——OLE DB——DAO——RDO——ADO;...ODBC全称Open Database Connectivity,ODBC建立一组规范(标准),并提供一组对数据库访问的标准API
  • 数据访问接口 DAO 关键回顾

    千次阅读 2011-04-24 10:20:00
    简单的一个数据库访问接口 DAO 为了方便以后自己翻阅和总结 于是记下,希望朋友们 不吝赐教 ,如有错误还望不吝指出其中错误,谢谢!
  • 数据访问接口体系及数据对 数据访问接口体系及数据对象模型探讨(Beat 1.0) 81_RedStar81@163.com TomHornson.student@www.sina.com.cn个人文集:http://www.csdn.net/develop/author/netauthor/RedStar81/ 
  • Josn-Server 是一个 Node 模块,运行 Express 服务器,你可以指定一个 json 文件作为 api 的数据源。要想在电脑上运行Json-Server,需得先安装node.js。 第一、安装node.js 打开官网下载链接:官网链接 我这里下载的...
  • 一、ADO.NET概述 ... .net数据提供程序用来与数据库的连接,如SQLServer.net数据提供程序——System.Data.SqlClient, 访问SQl2000或以上版本;OleDb.net数据提供程序——System.Data.OleDb,主要访问Ac...
  • 数据访问接口体系及数据对象模型探讨(Beat 1.0) 81_RedStar81@163.com TomHornson.student@www.sina.com.cn 
  • 数据访问接口体系及数据对象模型探讨(Beat 1.0) 81_RedStar81@163.com TomHornson.student@www.sina.com.cn 
  • 数据访问接口体系及数据对象模型探讨(Beat 1.0) 81_RedStar81@163.com TomHornson.student@www.sina.com.cn
  • 网络提供的证券实时数据访问接口

    千次阅读 2011-07-28 13:54:33
    SINA http://hq.sinajs.cn/list=sh601318,sh600325 返回: var hq_str_sh601318=" 中国平安, 49.67,49.67,50.98,51.50,49.31,50.98,50.99,19643779,997498080
  • 编程语言与数据库的连接是通过一个接口,达到两者交流,以便两者谈情说爱。 一、接口种类:6种:  1、ODBC,面向C/C++。  2、DAO, 面向VB,操作ACCEss  3、RDO,上面的加强型  4、OLE DB  5、ADO, 对...
  • 学生数据访问接口实现类StudentDaoImpl 在net.yuyou.student.test包里创建测试类TestStudentDaoImpl 编写测试插入的方法testInsert() 运行该测试方法,结果如图 打开数据库,打开数据表,查看插入的新纪录 编写...
  • PHP访问接口获取数据

    2019-09-20 19:50:41
    type=json在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。你只需要在你PHP代码中执行这条链接他就会返回。GET方式的直接使用 $file_contents = ...
  • Vue.js访问接口数据

    千次阅读 2018-08-08 21:41:32
    在新安装的vue-cli中,并没有’dev-server.js’以及’dev-client.js’文件,取而代之的是webpack.dev.conf.js ,所以我们需要在webpack.dev.conf.js 文件中开始进行相关的数据获取: 学习并使用饿了么数据接口 ...
  • CrudRepository接口访问数据

    千次阅读 2018-09-26 16:51:03
    示例:CrudRepository接口访问数据 程序清单:/jpa/pom.xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" ...
  • PagingAndSortingRepository接口访问数据

    千次阅读 2018-09-27 14:02:26
    PagingAndSortingRepository继承自CrudRepository接口,所以除了拥有CrudRepository的功能之外,还增加了排序和分页查询的功能。 创建持久化类 程序清单:/jpa/src/main/java/com/dwx/bean/Book.java package ...
  • HDFS Java接口实现流式数据访问

    千次阅读 2018-06-21 01:48:34
    HDFS是流式数据访问模式存储超大文件,在商用机硬件集群上运行流式数据访问模式中,FSDataInputStream和FSDataOutputStream继承java.io.DataInputStream和java.io.DataOutputStream实现文件的读取和写入Java接口读取...
  • jmx 接口访问数据

    千次阅读 2016-10-28 14:58:44
    说到对Hadoop和HBase的集群监控,大家知道的和用的最多的可能还是第三方的监控工具,cacti,ganglia,zabbix之类的。玩的深一些的,会用zenoss之类的。...其实Hadoop本身是带有监控接口的,各公司的发行版还有自己

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,587
精华内容 14,234
关键字:

数据访问接口