一、简介
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查询了一条数据!");
}
}
三、代码执行后的效果: