JAVA编程:Jsp 毗连 mySQL、Oracle 数据库备忘(Wi...
有了这样一个呼声:让java代替C语言成为基本语言。这些足以说明java简单易学的这个优点。其次,java的功能强大,前面我也提到了,EJB3.0的推出使java成为了大型项目的首选。js|mysql|oracle|window|数据|数据库Jsp情况今朝最盛行的是Tomcat5.0。Tomcat5.0本人包括一个Web服务器,假如是测试,就没需要把Tomcat与IIS或Apache集成起来。在Tomcat自带的Web服务器下能够举行Jsp测试。安装Tomcat5.0前必要安装JDK(假如是Windowsserver2003就必需安装JDK,由于Windowsserver2003是不带JVM的-Windowsserver2003刊行时MS和SUN恰好闹别扭呢)。安装完后,要设置几个情况变量:JAVA_HOME=E:j2sdk1.4.2_04
CLASSPATH=E:j2sdk1.4.2_04lib;E:j2sdk1.4.2_04lib ools.jar
Path中加.;E:j2sdk1.4.2_04in;
CATALINA_HOME=E:Tomcat5.0
TOMCAT_HOME=E:Tomcat5.0
注释以下:我的JDK版本是1.4.2,安装在E:j2sdk1.4.2_04文件夹下。
情况变量JAVA_HOME和CATALINA_HOME是必定要加的(最少参考材料都是这么说的)。CLASSPATH也说要加,可是我没加仿佛也没甚么影响。Path中加“.;E:j2sdk1.4.2_04in;”也一样,我不加jsp也能运转起来,可是在DOS窗口动手工编译.java类到.class文件有影响,由于找不到javac.exe编译命令文件。至于path中加的谁人点“.”,我本来在resin下是必要的,在Tomcat下还没断定它是否是必需的。
人人还发明CATALINA_HOME和TOMCAT_HOME的值是一样的,我估量TOMCAT_HOME是Tomcat的旧版本利用的,如今用的都是CATALINA_HOME。不外这2个好象并非不相容的,都加上,大概加个中恣意一个,Jsp都不手影响。不外我倡议用一个CATALINA_HOME就算了。
Tomcat5.0设置假造路径对照便利了,由于能够在Web情况下办理。http://:8080/admin能够进进办理界面(办理员admin暗码在Tomcat安装过程当中能够设置),在TomcatServer-Service(Catalina)-Host(localhost)下能够增加Context,相似于IIS
里的假造路径:DocumentBase指的是从实践E:Tomcat5.0webappsROOT为出发点的文件路径,Path指的是从假造“/”入手下手的假造路径名,如“/mytest”。这里Tomcat好象计划的有点不完美,只需加了新的Context,保留,再点“CommitChanges”按钮,再点Context往看时,界面就会退到登录界面,可是偶然页面就堕落了,必需再次手工进进http://:8080/admin。加了Context,ApacheTomcat服务必需“封闭/启动”一下(在Windows办理把持台的服务里)。有材料说在http://localhost:8088/manager办理界面下能够Start和Stop来从头启动对应的Context,可是我Stop后就是Start不起来。点了一下Undeploy,就把Context删除,注重:把Context对应的物理文件夹也给删除!!就是说你做了个使用,移到这里,假如不当心,就给删了-比病毒还凶猛。当心啊!!
上去我说一下Jsp毗连mySQL的成绩。假如用Jsp往毗连Access,我感到就是把裙子穿在汉子身上。Access和ASP才是神工鬼斧的一对。Jsp毗连mySQL大概Oracle才算通情达理。缘故原由我以为是:用Jsp做开辟,其上风就是跨OS平台,假如用Jsp+Access组合,跨平台的上风就没有了。ASP和Access已事情的很好了,也复杂,你何须要别扭的往用Jsp开辟?固然,假如您对Jsp十分熟习(大概对Asp十分不熟习),大概十分喜好Jsp(大概十分不喜好Asp),大概您有大批的数据堆集在Access里,您要用Jsp+Access在手艺上也不是不可的。
mySQL的安装十分复杂,基础安装终了都能一般利用,创建数据库,设置用户,都能够在mySQL的情况下完成。就是对用惯了GUI界面的人,感到不伏手。网上能下载到一些mySQL的图形用户界面的办理工具,但好象不是收费的。
用Jsp毗连mySQL数据库,从内外取数据,写一段代码测试一下:
程序代码1:
<!--起首导进一些需要的packages-->
<%@pageimport="java.io.*"%>
<%@pageimport="java.util.*"%>
<!--告知编译器利用SQL包-->
<%@pageimport="java.sql.*"%>
<!--设置中文输入-->
<%@pagecontentType="text/html;charset=GB2312"%>
<html>
<head>
<title>mySQLtest</title>
</head>
<body>
<%
Connectioncon;
Statementstmt;
ResultSetrs;
//加载驱动程序,上面的代码为加载MySQL驱动程序
Class.forName("com.mysql.jdbc.Driver");
//注册MySQL驱动程序
DriverManager.registerDriver(newcom.mysql.jdbc.Driver());
//用得当的驱动程序毗连到数据库
//StringdbUrl="jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=GB2312";
//StringdbUser="root";//用户名
//StringdbPwd="abcd1001";//暗码
//创建数据库毗连
//con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
StringdbUrl="jdbc:mysql://localhost:3306/mysql?user=root&password=abcd1001&useUnicode=true&characterEncoding=gb2312";
con=DriverManager.getConnection(dbUrl);
//创立一个JDBC声明
stmt=con.createStatement();
//增添新纪录
//stmt.executeUpdate("INSERTINTObooks(id,name,title,price)VALUES(999,Tom,TomcatBible,44.5)");
//查询纪录
rs=stmt.executeQuery("select*fromuser");
//输入查询了局
out.println("<tableborder=1width=400>");
while(rs.next())
{
Stringcol1=rs.getString(1);
Stringcol2=rs.getString(2);
Stringcol3=rs.getString(3);
Stringcol4=rs.getString(4);
//打印所显现的数据
out.println("<tr><td>"+col1+"</td><td>"+col2+"</td><td>"+col3+"</td><td>"+col4+"</td></tr>");
}
out.println("</table>");
//封闭数据库保持
rs.close();
stmt.close();
con.close();
%>
</body>
</html>
程序代码2:
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<html>
<body>
<%
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Stringurl="jdbc:mysql://localhost/chclyb?user=root&password=abcd1001&useUnicode=true&characterEncoding=8859_1";
//testDB为你的数据库名
Connectionconn=DriverManager.getConnection(url);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="select*fromtest";
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){%>
第一个字段内容为:<%=rs.getString(1)%>
第二个字段内容为:<%=rs.getString(2)%><br>
<%}%>
<%out.print("数据库操纵乐成,祝贺你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
我的以上2段代码都能事情。注重以上2段代码的Class.forName(…)部分的分歧:
Class.forName("com.mysql.jdbc.Driver");//在程序代码1中
Class.forName("org.gjt.mm.mysql.Driver").newInstance();//在程序代码2中
程序代码2中的代码是为了兼容mySQL的老版本而保存的,如今都用Class.forName("com.mysql.jdbc.Driver");驱动了。
以上的代码拷贝到Tomcat的假造路径下能乐成实行吗?生怕不可。由于另有个主要的事变没有做:必要给Tomcat5.0安装mySQL的JDBC驱动程序!这个成绩,网上的年夜多半文章都没讲,给贴一段毗连mySQL的代码,就让我们往毗连数据库了,连不上的!
mySQL的驱动必要从网高低载,下载终了,拷贝到E:Tomcat5.0commonlib路径下(我下载上去文件名是mysql-connector-java-3.2.0-alpha-bin.jar),把Tomcat服务来个Stop/start安装就停止了。文件名能够改的,不影响利用,由于这是个紧缩包,Tomcat能主动熟悉到包里的内容,并把有关类注册出去。后面说的Class.forName(…)部分的分歧能够在包里找到谜底,由于包里正有com/mysql/jdbc/Driver和org/gjt/mm/mysql/Driver2个路径,上面放的类文件是一样的。
用Jsp毗连Oracle数据库测试,就好说了,可是一样必需在E:Tomcat5.0commonlib路径下拷贝和注册Oracle的JDBC驱动,这个驱动文件没需要在网上到处探听,显得很菜的模样(我现在就是如许!),这个文件在Oracle的E:oracleora90jdbclib路径下,文件名是classes12.jar。我的示例代码以下:
程序代码3:
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<html>
<body>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");//.newInstance();
Stringurl="jdbc:oracle:thin:@10.0.1.1:1521:mydb";//mydb为数据库的SID,10.0.1.1为数据库服务器IP
Stringuser="system";
Stringpassword="abcd1001";
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="select*fromtest";//test是表名,要先创建这个表,再送几笔记录
ResultSetrs=stmt.executeQuery(sql);
while(rs.next())
{
%>
第一个字段内容为:<%=rs.getString(1)%>
第二个字段内容为:<%=rs.getString(2)%><br>
<%
}
out.print("数据库操纵乐成,祝贺。");
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
关于Oracle数据库:我安装的是Oracle9i企业版(Windowsserver2003下),安装终了后,Oracle将占用80端口运转自带的Apache1.3Web服务器,还占用8080端口运转TNSLSNR服务(TNSLSNR.EXE文件在X:oracleora90BIN下),供应一些log及文档。以是倡议安装Oracle的呆板就不要安装IIS了,假如IIS先启动起来,Oracle的http服务就不克不及启动了。也不克不及占用8080端口。成绩是假如还安装Tomcat,Tomcat默许恰好用的是8080端口,以是安装Tomcat时最好把端口设成其余值,如8088。
Oracle里创建表,必需先创建表空间,还能够加一个数据文件(也能够不加,由于创建表空间时默许已建了一个数据文件。今后能够视必要再增加)。再创建一个用户(今后的“计划”名和用户名一样)。创建表时,要选择表空间和计划名,最好把表创建在对应的计划下,把他们对应起来,今后好办理。假如把表创建在其余“计划”下,用SQL*plus语句会见时要用[计划].[表名]的格局。
密密麻麻说了这么多,是我的一些条记类的工具。有些工具真的不太懂的,由于方才打仗了一些非Microsoft的工具。但愿妙手指出我说的和了解不合错误的中央。老手也不要完整吸收我的工具,多想一下,看在您的情况下,我说的能不克不及调试乐成。
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包...... 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种将安全性(Security)列为第一优先考虑的语言 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 是一种突破用户端机器环境和CPU 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
页:
[1]