新闻资讯

新闻资讯

实时气象信息

气象信息

今日明日油价

明日油价

航班起降信息

航班信息

TTC动态时刻表

TTC时刻表

超市特价信息

超市特价

商场特价信息

商场特价

中外食谱

中外食谱

技术IT

技术IT

中外名画

中外名画

超强游戏

超强游戏

幽默笑话

幽默笑话

漫画卡通

漫画卡通


jdbc应用–数据库连接全集

主编发表于2010年3月14日 · 发表评论
归档于: J2EE, 技术IT 

作者– joinme
这是一篇基础性文章,主要介绍了jdbc在流行数据库(sql server,oracle)方面的应用。但是都是个人观点,所以不能保证完全正确,仅供参考,如果有不同意见可以在评论中指出,我会做相应的修改。:)
一般情况下,直接用jdbc等东西连数据库时,比较常用连数据库的代码可能是:
private Connection conn
private String poolURL = “”;
private String driverName =”";
private String user=”"
private String pass=”";
private DBConnProxy Proxy; //自己写的class,起控制数据库访问作用
public Object getConn()
{
try
{
Properties prop=new Properties();
prop.setProperty(”user”,user);
prop.setProperty(”password”,pass);
Driver mydriver=(Driver)Class.forName(driverName).newInstance();
conn = mydriver.connect(poolURL,prop);//或者conn = mydriver.connect(poolURL,null);具体什么时候用我还的请教高手。
/*
或者:
Class.forName(driverName);
conn=DriverManager.getConnection(poolURL, user, pass);
*/
}
catch ( Exception e )
{
System.out.println(”打开数据库出错n” + e.getMessage());
}

if(!Proxy.getDB() ){
this.Close()
return null;
}

return conn;
}
其中的 driverName,poolURL,user,pass都可以通过读取 xml文件或普通属性文件获取。而是连sqlserver还是oracle就只是改改配置就可以了。
它们都可以用 sun.jdbc.odbc.JdbcOdbcDriver 来连。对应poolURL=”jdbc:odbc:test”,user,pass略
也可以用自己特有的:
sqlserver:weblogic.jdbc.mssqlserver4.Driver (网上下) 对应poolURL=”jdbc:weblogic:mssqlserver4:ceic@127.0.0.1″ //ceic是数据库名,127.0.0.1是数据源位置,可以是远程的数据库,user,pass略
oracle:oracle.jdbc.driver.OracleDriver (class12.zip,装了oracle就应该有了) 对应jdbc:oracle:thin:scott/tiger@10.1.103.234:1521:sp” scott/tiger连接身份的用户名/密码,10.1.103.234,数据源ip,1521:端口(默认是1521). sp指向数据库名user,pass略
如果用的weblogic配的数据库连接,可以通过
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(”forceicdatasource”); //forceicdatasource是配的datasource.也可以通过和上面统一的方法来调用。
weblogic:weblogic.jdbc.pool.Driver //driverName
对应的poolURL=”jdbc:weblogic:pool:poolname” //poolname是在weblogic中配的jdbc类型的connections pool的名字。user,pass是weblogic用户(administrators用户组中的用户)的用户名和密码。(如果不是用DriverManager就用不上,”conn = mydriver.connect(poolURL,null);”就是在这种情况下可以用。我在weblogic 6.1下测试通过)
综上说的,可以看出,大多数数据库连接都可以通过配置 属性文件 来灵活的获取。(移植起来很是方便,并且对应用基本没有什么影响,当然也可以夸平台)所以我可以通过动态读取属性文件来解决。
private String javaHome = System.getProperty(”java.home”);
private final String FS = System.getProperty(”file.separator”);
private String path = javaHome+FS+”db.properties”; //把db.properties放在系统属性java.home下,一般是jdk目录下的 jre目录里。
public boolean getInfo(){
File file=new java.io.File(path);
Properties pro=new Properties();
boolean readsucced;
try{
InputStream in=new BufferedInputStream(new FileInputStream(file));
pro.load(in);
driverName=pro.getProperty(”driverName”);
poolURL=pro.getProperty(”poolURL”) ;
user=pro.getProperty(”user”) ;
pass=pro.getProperty(”pass”) ;
//自己把它们trim()掉。我就偷懒不写了。
readsucced=true;
}catch(Exception e){System.out.println(”读取属性文件出错”);readsucced=false;}
return readsucced;
}
不过一般只用读一次就可以了。所以可以把它放在 static{}块里,也可以放在构造器里面(然后和放在静态连接池,如果是单独的应用,应该把getInfo()作为静态类和数据库连接类分开)。
public DBConn() {
setDBConnProxy(ProxyFactory.DefaultType );//设定连接proxy,控制数据库连接频率,可能会牺牲效力,不过在防止恶意破坏上有点作用,自己写的毕竟赶不上weblogic的连接池了。所以只好做点小的防范措施.如果是用weblogic配的连接池,可以直接在proxyFactory里面加个什么都不做的proxy.
getInfo();
}
属性文件db.properties内容如下:
driverName=sun.jdbc.odbc.JdbcOdbcDriver
poolURL=jdbc:odbc:test
user=sa
pass=1234Q_Q5678
自己可以耕具实际情况去更改属性文件。
注: getConn()方法返回的是 Object,是不同的数据库连接有不同的扩展应用,比如oracle的就有针对clob,blob的应用(用class12.zip的情况下),普通的connection不能满足,所以可以通过在应用中把getConn()返回的Object转化成OracleConnection来用。(个人观点,不知道有没有更好的解决方法)
上面写的这么多,可能只对新手有点用处,在j2ee风行的今天已经很落伍了,还希望高手指出问题一起讨论(还没有有关于mysql的连接办法,没有做过,希望有人能补充上来)。

转载请注明出处与作者.


本文所属类别其他文章

技术IT:

♦ Google林斌:HTML5将颠覆Web应用
♦ IBM安全报告被Google友情纠正数据
♦ 微软必应吸引玩家 推《魔兽世界》搜索
♦ SYBASE ASE 15.5六大新特性揭秘
♦ IBM世博会上实践“智慧的城市”
♦ IBM:有一双发现用户的眼睛
♦ 开源技术的未来--多领域迎接突破
♦ 浅析SQL Server中如何使用CLR调用.NET
♦ eWeek:亚马逊对谷歌形成挑战的十大原因
♦ 嵌入式开发 硬件软件何者更重要?
♦ 新广告推出 IBM在10月7日有大动作?
♦ 谷歌收购背后:游戏是饵 意在移动互联网
♦ 如何查找SQL Server自增ID不连续记录?
♦ 如何在WordPress的wp-admin界面只显示登录用户的文章?
♦ ASP.NET页面刷新数据重复提交解决方案
♦ 10个非技术人员无法理解的软件概念
♦ 纽约时报:谷歌和甲骨文的开源战争
♦ IBM:智慧信息架构“从无到有”五步论
♦ 编程语言的发展趋势:声明式动态并发
♦ “行”“列”对比 Sybase IQ酷在哪里?
♦ 红帽任命美军退役上将为董事会主席
♦ 博看文思谢伟:基于iPhone应用开发实践
♦ 马万铮:手机网络Android应用开发实践
♦ 刘斌:百度单机及分布式数据库应用实践
♦ 胡研:移动应用软件统一化模型研究设计
♦ 2010 SACC王宝:架构没有最好只有最合适
♦ 巧妙SQL Server设置 备份状态邮件通知
♦ 2010 SACC会场 惊现最小的系统架构师
♦ 细数Infobright的相关数据类型
♦ 自动以管理员身份运行.NET程序详解
♦ 达梦数据库参加第三届中国软件渠道大会
♦ 系统架构师大会开幕 总编分享云报告
♦ 胡研:构建服务于开发商的统一化模型
♦ 马万铮:移动互联网常见问题及解决方法
♦ 移动互联网未来趋势是贴近和还原
♦ 谢伟:做iPhone开发需要发挥个人想象力
♦ 博看文思谢伟:基于iPhone应用开发实践
♦ 马万铮:手机网络Android应用开发实践
♦ 刘斌:百度单机及分布式数据库应用实践
♦ 胡研:移动应用软件统一化模型研究设计
♦ 2010 SACC王宝:架构没有最好只有最合适
♦ 巧妙SQL Server设置 备份状态邮件通知
♦ 2010 SACC会场 惊现最小的系统架构师
♦ 细数Infobright的相关数据类型
♦ 自动以管理员身份运行.NET程序详解
♦ 达梦数据库参加第三届中国软件渠道大会
♦ 系统架构师大会开幕 总编分享云报告
♦ 梁建锋:海量用户游戏框架构思与实践
♦ SQL Server 2008数据库复制且同步备份
♦ 徐超:F5云计算应用交付平台新方案
♦ 调查结果:Android用户更愿意点击广告
♦ Android平台动力不断
♦ ASP.NET MVC路由匹配检测组件方法解析
♦ 张旭:基于大规模集群的运维架构设计
♦ 蔡文胜谈3G门户:Symbian应用应放弃
♦ 中国农业发展银行缘何青睐DB2
♦ Oracle与Google两巨头战争冲击整个硅谷
♦ Adobe更新Web版Photoshop 用户无需注册
♦ 谈谈最近的Oracle与Google之争
♦ 升级成本高 甲骨文遭老客户抛弃的启示
♦ 2010架构师大会 讲师全部来自技术一线
♦ 程序员要有与时俱进的思想意识
♦ 诺基亚命系QT 而非Symbian、Meego
♦ 走进国内顶级Android论坛:机锋网
♦ 《Android平台开发之旅》作者谈Android
♦ 数据挖掘之Intelligent Miner
♦ Silverlight的Action特性应用实例解读
♦ IBM Intelligent Miner解决方案
♦ IBM DB2商业智能在电信行业的成功应用
♦ IBM应对汽车系统的复杂性
♦ IBM嵌入式系统案例
♦ IBM Rational软件介绍
♦ IBM助搜狐构建灵活稳健的内部信息门户
♦ DataStage为ETL过程提供了图形化界面
♦ 数据库中内连接、全连接与左右连接详解
♦ Silverlight自定义控件模板如何管理?
♦ 微软透漏WP7开发路线图 欧洲将最先上市
♦ 微软云首落东莞 低成本剑指中国市场
♦ 开源RBAC产品的利与弊
♦ 谷歌CEO谈未来Android平台的发展
♦ IBM与微软合作:硬软件or软硬件?
♦ IBM中端市场合作战略获成功 将长期执行
♦ 解读微软裁员5000:大象为何急需改变?
♦ Meego时机欠佳 Android不是下一个Linux
♦ Jazz协作支持:下一个发展方向
♦ IBM Jazz统一协同让开发不再孤单
♦ 提高创新力 IBM助力中国银行业智慧转型
♦ Windows Phone 7:真的“不同”了吗?
♦ 基于Silverlight-Caliburn框架六大特性
♦ SQL Server安全管理 恶意攻击自不量力
♦ 微软.NET企业级架构解决方案:业务层
♦ GeForce GT 430将会数周内上市?
♦ 达梦成功中标温州人口信息综合管理系统
♦ 大公司是如何走上开源之路的
♦ 应深入学习的10个Android开源应用项目
♦ 2010年JavaOne大会将于9月举行
♦ 五大免费/开源NAS项目
♦ 微软携手CSIP 提升Dynamics产品操控力
♦ 盘点:最具影响的十大IT收购
♦ 2010系统架构师大会增添移动专场
♦ 梅孝龙:Android平台问题究竟在哪里?
♦ SQL Azure架构分析概述
♦ 谈毅:如何看待Android版本混乱问题
♦ 评论:手机游戏的出路在哪里?
♦ 浅析SQL Server如何链接远程MySQL
♦ VS LightSwitch初体验 定位非专业人员
♦ 谈毅:谷歌统一不了Android3.0的UI界面
♦ MIT为Android智能手机增超级计算能力
♦ 25个令人惊奇的CSS3实验和例子
♦ Ubuntu放弃支持Intel IA64安腾架构
♦ 5件Java性能监控小技巧:应对编程困难
♦ 外媒评论:我的丈夫是个程序员
♦ 大牛对话:万维网已死?
♦ IBM云计算助全球首个3D互联网开发平台
♦ 诺基亚与Android:谁更能抓住用户?
♦ 华为接受印度安全新规提供源代码
♦ 专访微软CIO:Google苹果挑战不足为惧
♦ Linux发行版流行趋势图
♦ 诺基亚收购手机应用分析公司Motally
♦ iPad能否给联通带来一次新机会?
♦ 微软发布SSMA 支持数据库迁移SQL Azure
♦ 越久就越臃肿 Symbian理应速速安乐死
♦ 中国CPU和基础软件90%以上依赖进口
♦ 英特尔宣布将以78.6亿美元收购McAfee
♦ 甲骨文起诉谷歌 微软得渔翁之利
♦ iPhone 4难成中国联通“救命稻草”
♦ 敏捷进行时——专访Scott W. Ambler
♦ PostgreSQL权限提升和拒绝服务漏洞
♦ SQL Azure新特性之数据大容量
♦ 大盘点:2010中国互联网大会十大精彩
♦ Silverlight多项目共享DLL文件方法讨论
♦ 关于ASP.NET MVC表单设计器的简单思路
♦ 英特尔斥巨资收购McAfee 进军软件领域
♦ 阿里巴巴证实其B2B技术部总监溺水身亡
♦ 微软MSN发布深度智能手机BuddyPhone
♦ 微软发布SSMA 支持数据库迁移SQL Azure
♦ 越久就越臃肿 Symbian理应速速安乐死
♦ 中国CPU和基础软件90%以上依赖进口
♦ 英特尔宣布将以78.6亿美元收购McAfee
♦ 甲骨文起诉谷歌 微软得渔翁之利
♦ iPhone 4难成中国联通“救命稻草”
♦ 敏捷进行时——专访Scott W. Ambler
♦ PostgreSQL权限提升和拒绝服务漏洞
♦ 《连线》杂志:Web已死 互联网永生
♦ Ovi减免费用:智能手机回归硬件之争?
♦ 十年程序员 何去何从
♦ 姜饼之后是蜂窝 Android新版本名称曝光
♦ IBM在华推出一体式电子心电图管理系统
♦ 传统应用软件:Android背后的支柱
♦ 详解SQL Azure与SQL Server共性与差异
♦ Oracle 起诉谷歌背后 隐藏的是什么?
♦ 软件从敏捷到超精益开发的10步
♦ 厂商和运营商表态:Android 3.0被误读
♦ IBM XIV助华南电信构建超级邮件系统
♦ Android2.2特性将程序装到卡上是骗局?
♦ 发展有限导致Facebook早期员工大量离职
♦ 兴趣与坚持:程序员从初级到中级
♦ 盘点微软平台上的六大NoSQL数据库
♦ Hunch:Flickr创始人又一个Web2.0奇迹
♦ 苹果主导手机广告市场 Android增长迅猛
♦ 澳统计局将采用IBM软件提高员工协作
♦ iPad不足颇多,Android平板还有机会
♦ 甲骨文PK谷歌背后:开源软件走向何方
♦ IBM助力省农信社数据集中项目
♦ LG公司看好WP7全面超越Android平台
♦ 诺基亚或3年内将MeeGo降至中低端级别
♦ 惊人发现!C#亲Java远离C++
♦ Meego还不是Nokia的那颗救命稻草
♦ IBM的PBC——通透的绩效管理文化
♦ 借助Android平台 探寻谷歌的求索革命
♦ SQL Server配置全攻略 打造SQL最佳性能
♦ 十年的演变:Linux安全的过去与现在
♦ 前瞻:Solaris 11将会带给我们些什么?
♦ VS LightSwitch能否敲开非程序员心门?
♦ 甲骨文告Google侵权一事 令硅谷震惊
♦ Mocha BSM 7.5.0发布 进入“睿智”时代
♦ 浅谈F# 2.0面向.NET Framework运行时
♦ 盘点云时代十大先驱厂商 IBM将登云巅峰
♦ 甲骨文与开源决裂?OpenSolaris被扼杀
♦ 打保密战 甲骨文弃开源项目OpenSolaris
♦ NVIDIA高层称公司未来寄希望于Android
♦ 资深系统管理员给Linux/Unix新人的建议
♦ IBM刀片创新成果推动blade.org生根中国
♦ 预计Windows Phone 7有匹敌Android潜力
♦ 24款让人欲罢不能的免费Linux游戏
♦ Java之父:Java较安全 Solaris前景堪忧
♦ 诺基亚Q2市场份额下降最多 HTC上升最快
♦ 是否应该允许开发人员进入生产环境?
♦ Oracle BPM 11g:让业务人员主导开发
♦ SAP推价值工程计划 帮客户持续产生价值
♦ 常用Java Profiling工具的分析与比较
♦ 快速搞定SQL Server锁定阻塞 远离等待
♦ 智慧的传统医学:IBM的“标准化”中医
♦ 小技巧大能耐 搞定VS2008成功迁移2010
♦ Android会成为下一个Linux?
♦ Meego上网本疯狂体验
♦ Linux 和 Android 不可以合好吗?
♦ Android增语音操作功能可语音发送短信
♦ 惠普通吃:推WebOS和Windows7平板电脑
♦ 最让人郁闷的五种程序注释方式
(请到相应页面或分类阅读全部文章......)


发表评论