一、简介

Java 的接口并不是孤立地应用的,即用接口订立标准,其他类实现接口,接口往往和多态结合应用的时候才更有价值。接口和多态往往都很抽象,这里用一个文件的代码示例一下,Java 调用数据库的增删改查时,对 MySQL 和 Oracle 不同数据库的操作。

使用一套数据库的操作,实现对不同数据库的操作。

二、代码如下示例:

package cn.xxxxxx.content;

/**
  * @ClassName: InterfaceTest.java
  * @Description: 接口的示例应用代码
  *  
  *  说明:
  *    本文件包含了多个类,实际开发中一个类是一个文件,
  *    本内容模拟了 Java 调用 MySQL 和 Oracle 等不同数据库的通用接口方法,
  *    这段代码包含了 Java 面向对象的饿汉式单例模式、接口、多态等的运用。
 */

//1.模拟 java 应用程序调用数据库
public class InterfaceTest {
    
    private static Jdbc conn;      // 数据库连接对象
    private static Mysql mysql;    // MySQL 驱动对象
    private static Oracle oracle;  // Oracle 驱动对象
    
    public static void main(String[] args) {
        
        //(一)对 MySQL 数据库进行操作
        
        //调用 MySQL 数据库执行添加操作
        conn.insert(mysql);
        
        //调用 MySQL 数据库执行删除操作
        conn.delete(mysql);
        
        //调用 MySQL 数据库执行修改操作
        conn.update(mysql);
        
        //调用 MySQL 数据库执行查询操作
        conn.select(mysql);
        
        System.out.println("*********************");
        
        //(二)对 Oracle 数据库进行操作
        
        //调用 Oracle 数据库执行添加操作
        conn.insert(oracle);
        
        //调用 Oracle 数据库执行删除操作
        conn.delete(oracle);
        
        //调用 Oracle 数据库执行修改操作
        conn.update(oracle);
        
        //调用 Oracle 数据库执行查询操作
        conn.select(oracle);
    }

    static{
        conn = Conn.getJdbcConnect();
        mysql = Conn.getMysql();
        oracle = Conn.getOracle();
    }

}

//2.饿汉式单例模式连接类,线程安全
class Conn{
        private static final Jdbc jdbcConnect;
        private static final Mysql mysql;
        private static final Oracle oracle;
        
        static{
            jdbcConnect = new Jdbc();
            mysql = new Mysql();
            oracle = new Oracle();
        }

        public static Jdbc getJdbcConnect() {
            return jdbcConnect;
        }

        public static Mysql getMysql() {
            return mysql;
        }

        public static Oracle getOracle() {
            return oracle;
        }

}

// 3.模拟 Java 的数据库连接类
class Jdbc{
    
    // 多态:JdbcStandard obj = new Mysql(); 或者:JdbcStandard obj = new Oracle();
    public void insert(JdbcStandard obj) { 
        obj.insert();
    }
    
    public void delete(JdbcStandard obj) {
        obj.delete();
    }
    
    public void update(JdbcStandard obj) {
        obj.update();
    }
    
    public void select(JdbcStandard obj) {
        obj.select();
    }
}

// 4.这是接口 interface,模拟数据库连接的标准
interface JdbcStandard{
    public  static final int MAX_CONNEXT = 1000;  //数据库最大连接数
    public abstract void insert();    //数据添加
    public abstract void delete();   //数据删除
    public abstract void update();  //数据修改
    public abstract void select();    //数据查询
}

// 5.接口实现(一):模拟 MySQL 数据库驱动类
class Mysql implements JdbcStandard{

    @Override
    public void insert() {
        System.out.println("MySQL添加了一条数据!");
        System.out.println("MySQL数据库最大连接数:" + Mysql.MAX_CONNEXT);
    }

    @Override
    public void delete() {
        System.out.println("MySQL删除了一条数据!");
    }

    @Override
    public void update() {
        System.out.println("MySQL修改了一条数据!");
    }

    @Override
    public void select() {
        System.out.println("MySQL查询了一条数据!");
    }
    
}

// 6.接口实现(二):模拟 Oracle 数据库驱动类
class Oracle implements JdbcStandard{

    @Override
    public void insert() {
        System.out.println("Oracle添加了一条数据!");
        System.out.println("Oracle数据库最大连接数:" + Oracle.MAX_CONNEXT);
    }

    @Override
    public void delete() {
        System.out.println("Oracle删除了一条数据!");
    }

    @Override
    public void update() {
        System.out.println("Oracle修改了一条数据!");
    }

    @Override
    public void select() {
        System.out.println("Oracle查询了一条数据!");
    }
    
}

三、代码执行后的效果:




java接口举例 java接口使用例子_数据库