JAVA编程:JAVA:数据库操纵封装
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。封装|数据|数据库packagecreator.common.db;importjava.io.InputStream;
importjava.sql.*;
importjavax.sql.*;
importjavax.naming.*;
/**
*
*<p>Title:dbBean.java</p>
*<p>Description:</p>
*<p>Copyright:Copyright(c)2004</p>
*<p>Company:</p>
*@authorTanBo
*@version1.0
*/
publicclassDbBean{
publicjava.sql.Connectionconn=null;//connectionobject
publicResultSetrs=null;//resultsetobject
publicStatementstmt=null;//statementobject
publicPreparedStatementprepstmt=null;//preparedstatementobject
privateStringdrivers=null;//connectionparameter:drivers
privateStringurl=null;//connectionparameter:url
privateStringuser=null;//connectionparameter:user
privateStringpassword=null;//connectionparameter:password
privateStringjndi_name=null;//connectionpoolparameter:jndiname
/**
*init()
*/
publicDbBean(){
try{
//parameterinit
drivers=creator.config.ConfigBundle.getString("drivers");
url=creator.config.ConfigBundle.getString("url");
user=creator.config.ConfigBundle.getString("user");
password=creator.config.ConfigBundle.getString("password");
jndi_name=creator.config.ConfigBundle.getString("jndi_name");
//dbconnectionpoolinit
//InitialContextenv=newInitialContext();
//javax.sql.DataSourcepool=(javax.sql.DataSource)env.lookup(jndi_name);
//conn=pool.getConnection();
//dbconnectioninit
Class.forName(drivers);
conn=DriverManager.getConnection(url,user,password);
//dbstatementinit
stmt=conn.createStatement();
}catch(Exceptione){
System.out.println("dbBean:initerror!"+e.toString());
}
}
/**
*@functionprepareStatement
*@paramsqlString
*@throwsSQLException
*/
publicvoidprepareStatement(Stringsql)throwsSQLException{
prepstmt=conn.prepareStatement(sql);
}
/**
*@functionprepareStatement
*@paramsqlString
*@paramresultSetTypeint
*@paramresultSetConcurrencyint
*@throwsSQLException
*/
publicvoidprepareStatement(Stringsql,intresultSetType,intresultSetConcurrency)
throwsSQLException{
prepstmt=conn.prepareStatement(sql,resultSetType,resultSetConcurrency);
}
/**
*@functionexecuteQuery
*@paramsqlString
*@throwsSQLException
*@returnResultSet
*/
publicResultSetexecuteQuery(Stringsql)throwsSQLException{
if(stmt!=null){
returnstmt.executeQuery(sql);
}elsereturnnull;
}
/**
*@functionexecuteQuery
*@throwsSQLException
*@returnResultSet
*/
publicResultSetexecuteQuery()throwsSQLException{
if(prepstmt!=null){
returnprepstmt.executeQuery();
}elsereturnnull;
}
/**
*@functionexecuteUpdate
*@paramsqlString
*@throwsSQLException
*/
publicvoidexecuteUpdate(Stringsql)throwsSQLException{
if(stmt!=null)
stmt.executeUpdate(sql);
}
/**
*@functionexecuteUpdate
*@throwsSQLException
*/
publicvoidexecuteUpdate()throwsSQLException{
if(prepstmt!=null)
prepstmt.executeUpdate();
}
/**
*@functionexecuteUpdate
*@throwsSQLException
*/
publicvoidexecuteBatch()throwsSQLException{
if(prepstmt!=null)
prepstmt.executeBatch();
}
/**
*@functionaddBatch
*@paramvalueString
*@throwsSQLException
*/
publicvoidaddBatch(Stringvalue)throwsSQLException{
prepstmt.addBatch(value);
}
/**
*@functionsetString
*@paramindexint
*@paramvalueString
*@throwsSQLException
*/
publicvoidsetString(intindex,Stringvalue)throwsSQLException{
prepstmt.setString(index,value);
}
/**
*@functionsetInt
*@paramindexint
*@paramvalueint
*@throwsSQLException
*/
publicvoidsetInt(intindex,intvalue)throwsSQLException{
prepstmt.setInt(index,value);
}
/**
*@functionsetBoolean
*@paramindexint
*@paramvalueboolean
*@throwsSQLException
*/
publicvoidsetBoolean(intindex,booleanvalue)throwsSQLException{
prepstmt.setBoolean(index,value);
}
/**
*@functionsetDate
*@paramindexint
*@paramvalueDate
*@throwsSQLException
*/
publicvoidsetDate(intindex,Datevalue)throwsSQLException{
prepstmt.setDate(index,value);
}
/**
*@functionsetLong
*@paramindexint
*@paramvaluelong
*@throwsSQLException
*/
publicvoidsetLong(intindex,longvalue)throwsSQLException{
prepstmt.setLong(index,value);
}
/**
*@functionsetFloat
*@paramindexint
*@paramvaluefloat
*@throwsSQLException
*/
publicvoidsetFloat(intindex,floatvalue)throwsSQLException{
prepstmt.setFloat(index,value);
}
/**
*@functionsetBytes
*@paramindexint
*@paramvaluebyte[]
*@throwsSQLException
*/
publicvoidsetBytes(intindex,byte[]value)throwsSQLException{
prepstmt.setBytes(index,value);
}
/**
*@functionsetBinaryStream
*@paramindexint
*@paramvalueInputStream
*@paramlenint
*@throwsSQLException
*/
publicvoidsetBinaryStream(intindex,InputStreamvalue,intlen)throwsSQLException{
prepstmt.setBinaryStream(index,value,len);
}
/**
*@functionsetTimestamp
*@paramindexint
*@paramtimestampTimestamp
*@throwsSQLException
*/
publicvoidsetTimestamp(intindex,Timestamptimestamp)throwsSQLException{
prepstmt.setTimestamp(index,timestamp);
}
/**
*@functionsetAutoCommit
*@paramvalueboolean
*@throwsSQLException
*/
publicvoidsetAutoCommit(booleanvalue)throwsSQLException{
if(this.conn!=null)
this.conn.setAutoCommit(value);
}
/**
*@functioncommit
*@throwsSQLException
*/
publicvoidcommit()throwsSQLException{
this.conn.commit();
}
/**
*@functionrollback
*@throwsSQLException
*/
publicvoidrollback()throwsSQLException{
this.conn.rollback();
}
/**
*@functionclose
*@throwsException
*/
publicvoidclose(){
try{
if(rs!=null){
rs.close();
rs=null;
}
}catch(Exceptione){
System.out.println("dbBeancloserserror!");
}finally{
try{
if(stmt!=null){
stmt.close();
stmt=null;
}
}catch(Exceptione){
System.out.println("dbBeanclosestmterror!");
}finally{
try{
if(prepstmt!=null){
prepstmt.close();
prepstmt=null;
}
}catch(Exceptione){
System.out.println("dbBeancloseprepstmterror!");
}finally{
try{
if(conn!=null){
conn.close();
conn=null;
}
}catch(Exceptione){
System.out.println("dbBeancloseconnerror!");
}
}
}
}
}
}
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包...... Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 是一种为 Internet发展的计算机语言 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
页:
[1]
2