拜个早年:祝工作顺利!麻烦大家帮我看下我写的这个java连接数据库类哪错了——?

waiterNet 2007-02-02 09:27:44
这个是接口:
package com.hy;

import java.sql.Connection;
import java.sql.ResultSet;

public interface IDb {
public Connection createCon();
public void createStatement();
public ResultSet createResultSet();
}


这个是实现接口的类
package com.hy;

import java.sql.*;


public class DbOperate implements IDb{
private Connection con=null;
private Statement stmt=null;
private ResultSet rs=null;

private String driver=null;
private String url;
private String username;
private String password;

public DbOperate(String driver,String url,String username,String password){
this.driver=driver;
this.url=url;
this.username=username;
this.password=password;
}
public Connection createCon() {

Class.forName(driver);
con=DriverManager.getDriver(url,username,password);
return con;
}

public ResultSet createResultSet(String sql) {

try {
rs=stmt.executeQuery(sql);
} catch (SQLException e) {

e.printStackTrace();
}
return rs;
}

public void createStatement() {
// TODO Auto-generated method stub

try {
stmt=con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}

}
不知道这么写哪里错了,我想把代码写规范了,也就是说该有的接口都有,可是我不知道该怎么写了,麻烦前辈帮我指点一下,谢谢了,顺便拜个早年,祝工作顺利!
...全文
223 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guzuoshantou 2007-02-06
  • 打赏
  • 举报
回复
不对的地方还请指教
guzuoshantou 2007-02-06
  • 打赏
  • 举报
回复
代码里面的错误就不说了,你的这个类设计的有大大的问题
假设你需要用到此类时:
DbOperate db=new DbOperate(driver,url,username,password);
Connection con=db.createCon();
db.createStatement() ;
ResultSet rs=db.createResultSet(sql);
1.构造方法
你每次都要用new 来创建这个对象并传入一大堆参数,但应用程序通常只需要同样的信息,既然参数的值每次都一样,你就应该把它在类里初始化掉,无需接受调用者传入。可以在类里写个静态块从一个属性配置文件读取数据库连接的基本信息。
2.createCon()方法
这个方法有一句Class.forName(driver);用以加载驱动,但驱动只要加载一次即可,所有应该把这句话移到静态块中执行。
3.createStatement() 和 createResultSet()方法
在调用createResultSet()方法时你得保证在这之前已经调用了createStatement() 方法,而你又得保证在这之前调用了createCon()方法,但是按设计类的原则来说你不能保证外部会按照你想的顺序调用。这几个方法不能互相独立,所以要重新设计。

还有很多要改进的地方,最好的方式就是把这个类删了,好好再学学面象对象的思想,如何设计一个即正确又高效又优雅又明确的类及接口。然后再重新写
ABCatai 2007-02-05
  • 打赏
  • 举报
回复
tong yi lou shang
szm880828 2007-02-03
  • 打赏
  • 举报
回复
错了。是con = DriverManager.getConnection(链接方法,用户,密码);
你用的这个getDriver() 方法就不是链接用的。返回的是Driver 是选择相应的驱动程序的。素以你用错了
martinyuan 2007-02-03
  • 打赏
  • 举报
回复
应该是con=DriverManager.getConnection(url,username,password);吧
s1t05002 2007-02-03
  • 打赏
  • 举报
回复
我觉得 con=DriverManager.getDriver(url,username,password);
好像有点问题,getDriver()方法的返回值是Driver类型,能直接给Collection类型吗???

我也刚刚学JAVA,如果说错了,别BS我啊!
简介 ecshop系统logo ECShop是上海商派网络科技有限公司(ShopEx)旗下——B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。 ECShop悉心听取每一位商家的需求与建议,不仅设计了人性化的网店管理系统助商家快速上手,还根据中国人的购物习惯改进了购物流程,实现更好的用户购物体验。 经过近两年的发展,ECShop网店系统无论在产品功能、稳定性、执行效率、负载能力、安全性和SEO支持(搜索引擎优化)等方面都居国内同产品领先地位,成为国内最流行的购物系统之一。 服务 灵活的模版机制 ECShop开发了独有的高效模板引擎(2.15以前版本使用smarty模板引擎),并结合了Dreamweaver的模板和库功能,使得编辑制作模板变得更简单。 开放的插件机制 支付、配送,会员整合都是以插件形式实现。商家可以随时增加或变更的支付方式和配送体系。ecshop支持大部分php开发的论坛系统,包括discuz,phpwind等,只需在后台做简单参数配置,即可完成会员整合。 功能 AJAX 化 ECSHOP 使用流行的 AJAX 技术,批量数据编辑变得更迅速,方便。 促销功能 ECSHOP提供了积分、红包、赠品,夺宝奇兵等多种促销方法。 高效率的代码和执行性能 通过优化代码与数据库结构,配合ecshop独家设计的缓存机制,在不考虑网速的情况下,网店动态页面与纯静态页面访问速度相当。 常规功能的更完善实现 针对常规功能尤其是后台管理和购物流程,ECShop进行了更简洁的设计,实现更好的用户体验。 搜索引擎优化 在 SEO (搜索引擎优化)上,ECShop独家支持两种 URL 重方式,并且是同软件中第一家支持 google / yahoo / microsoft 三家共同发布的 sitemaps 0.9 网站索引规范,能够为站点被搜索引擎收录做到最大限度的支持和助。 内置手机短信网关 ECShop内置手机短信网关,支持会员信息,订单提醒等功能。 多语言支持 支持简体,繁体,英文。 源代码开放 用户可根据自己的需求对ECSHOP进行定制,扩展。 随着3G网络的普及,智能手机的大量使用,手机上网的用户越来越多,使手机购物成为可能,手机购物势必会成为一种趋势,ECshop2.7.2版本新增手机浏览html功能。并且新增商品规格分库存功能,方便商家管理不同规格货品的库存。在商品详情页新增购买记录,提高网店的活跃性。html编辑器上传图片后增加水印功能。改进编辑快递单功能,增加可视化编辑,方便管理员修改打印快递单。商品分页排序按钮变更为更流行的按钮样式,使之更加人性化。上传商品相册图片,使之能够支持外链图片。 历史 ECShop 2005年底,2006年初,高春辉和李梁(时任手机之家总经理),因为在给朋友建网上商城的时候,发现没有一个好用的商城软件,萌生了自己制作一个商城软件的想法。 2006年3月,从零开始招兵买马,组建团队,2006年6月,ECShop推出第一个版本1.0,但因为功能比较单一,最终使用的用户没有超过10个。 2006年6~7月,高春辉开始全面介入ECShop的开发管理工作,大大的加速了ECShop的开发进度,在推出 2.0版本之后,陆续推出了2.0.1,2.1,2.1.1.,2.1.2,2.1.3等版本后,用户群逐步扩大,安装量突破5万。 2007年5~6月,ECShop管理层与康盛世纪接触,最终确定,将ECShop卖给康盛世纪。 2007年6~7月,ECShop完成了一个重要的项目摩托罗拉手机商城。 2007年9月,ECShop团队全部迁至康盛世纪上班,交易完成。 2007年9月,ECShop分为两个团队,ECShop|(买否网), (卖否网);ECMall。 2008年10月10日,ECShop系列软件(包括Ecshop、Ecmall、Maifou等),被上海商派网络科技有限公司(ShopEx)整体收购。 2009年3月,发布2.6.2版本,这是其加入上海商派网络科技有限公司(ShopEx)之后的最新版本。 2010年6月,发布 ECShop v2.7.2 Release 0604。 2012年4月,发布 ECShop v2.7.3 Release 0411。 2012年11月,发布ECShop v2.7.3 Release 1106。 编辑本段 团队介绍 原团队介绍 高春辉 著名第一代互联网人,1989年接触电脑,1997年创建了当时访问量最高的个人主页“ 高春辉的个人网站”,被评为中国十大个人网站第一名。1999年受金山公司邀请,共同发起金山卓越网并担任总经理。2002年创立手机之家。ECShop创始人,ECShop灵魂,主要负

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧