如何把JAVA链接ORACLE数据库,MYSQL数据库,SQL SERVER 2000数据库的程序弄成一个通用的JDBC接口
毕业设计老师要我做成一个中间件(网上搜下没什么相关资料,郁闷!!),我不知道什么叫中间件...不懂!只知道最终做好的效果是输入不同的值链接不同的数据库。哪位高手能告诉我这...
毕业设计老师要我做成一个中间件(网上搜下没什么相关资料,郁闷!!),我不知道什么叫中间件...不懂!只知道最终做好的效果是输入不同的值链接不同的数据库。哪位高手能告诉我这做的到底是什么!!用到了什么JAVA知识!什么软件!!谢谢啦!!!!!!!
希望大家给我点实例看看!!!这样好懂。。麻烦了!!! 展开
希望大家给我点实例看看!!!这样好懂。。麻烦了!!! 展开
4个回答
展开全部
链接数据库用到JDBC,一般链接数据库都要用到数据库驱动、链接字符串、登录名、登录密码。这4个属性可以提取到一个父类中,每一种数据库写一个类继承父类。要是这些都没问题了,就可以用楼上哥们儿说的,简单工厂模式,简单工厂是用到了java中的多态特性。
import java.sql.Connection;
public abstract class BaseConnect {
public BaseConnect(String driverClass, String url, String loginName,
String password) {
super();
this.driverClass = driverClass;
this.url = url;
this.loginName = loginName;
this.password = password;
}
protected String driverClass;
protected String url;
protected String loginName;
protected String password;
public abstract void initDriver();
public abstract Connection getConnect();
public abstract void closeConnect(Connection conn);
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class OraclConnect extends BaseConnect {
public OraclConnect(String driverClass, String url, String loginName,
String password) {
super(driverClass, url, loginName, password);
// TODO Auto-generated constructor stub
}
@Override
public void initDriver() {
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
@Override
public Connection getConnect() {
try {
return DriverManager.getConnection(url, loginName, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
@Override
public void closeConnect(Connection conn) {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以此类推,上面代码是我随便一写,你自己再改进下。
import java.sql.Connection;
public abstract class BaseConnect {
public BaseConnect(String driverClass, String url, String loginName,
String password) {
super();
this.driverClass = driverClass;
this.url = url;
this.loginName = loginName;
this.password = password;
}
protected String driverClass;
protected String url;
protected String loginName;
protected String password;
public abstract void initDriver();
public abstract Connection getConnect();
public abstract void closeConnect(Connection conn);
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class OraclConnect extends BaseConnect {
public OraclConnect(String driverClass, String url, String loginName,
String password) {
super(driverClass, url, loginName, password);
// TODO Auto-generated constructor stub
}
@Override
public void initDriver() {
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
@Override
public Connection getConnect() {
try {
return DriverManager.getConnection(url, loginName, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
@Override
public void closeConnect(Connection conn) {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以此类推,上面代码是我随便一写,你自己再改进下。
展开全部
你们老师所说的中间件其实就是一个java类,
这个类实现通过输入的值指定链接的数据库。
给你个思路,
首先要实现3种数据的链接,类①;
然后作一个调用该类的类,类②;
在②中取得输入的值,然后传给①;
在①中根据得到的参数if else来判断链接哪种DB.
这个类实现通过输入的值指定链接的数据库。
给你个思路,
首先要实现3种数据的链接,类①;
然后作一个调用该类的类,类②;
在②中取得输入的值,然后传给①;
在①中根据得到的参数if else来判断链接哪种DB.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你学习过模式没有 有一个比较经典的模式 叫 工厂模式 这种模式有种灵活性 可以实现 传什么参数进去 就可以给你指定的对象
具体需要自己设计下
比如 你需要三种数据库连接 但是 每个连接的 规则是不一样的 那就需要你有个可以判断的条件
你可以这样区分 oracle mysql sqlserver 定义这三种参数 传递进去 那么就可以获得指定的连接了
然后 结合 properties 文件 进行 数据库连接的配置
具体需要自己设计下
比如 你需要三种数据库连接 但是 每个连接的 规则是不一样的 那就需要你有个可以判断的条件
你可以这样区分 oracle mysql sqlserver 定义这三种参数 传递进去 那么就可以获得指定的连接了
然后 结合 properties 文件 进行 数据库连接的配置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你去阅读一下spring,hibernate,ibatis的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |