

使用Myeclipse软件演示通过ODBC,JDBC,及JSP中连接数据库输出数据,使用to_date函数插入变化格式的日期到数据库
注:以下演示均使用MyEclipse软件用java语言连接数据库
注:如果运行出错,请检查有没引包,有没发布,有没占用端口,运行前右击清空错误提示窗口方便看提示。
一、演示加载ODBC驱动连接oracle数据库输出数据
注:使用ODBC连接oracle数据库,没有配IP,只能本地连接
1.建一名为testMYOracle的工程,工程下建一名为com.sp的包,包下建名为TestOra的类
2.配置ODBC数据源,类似mssql,
1)控制面板——管理工具——数据源——用户DSN——添加,选“Oracle in OraHome92” 点完成
2)输入数据源名,如testsp,在TNS Service Name选择Oracle数据库,如ORACLE1
3)点test connection输入用户名和密码测试一下,最后点OK配置好数据源,记录这里的数据源名,在java中要调用
3.下面TestOra.java类下的全部代码
package com.sp; //包名称
import java.sql.*; //引sql
//演示 如何使用jdbc_odbc桥连接方式
public class TestOra {
public static void main(String[] args) { //主函数
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //1.加载驱动
Connection ct=DriverManager.getConnection("jdbc:odbc:testsp","scott","tiger"); //2.得到连接,testsp为数据源名称,scott为登录用户名,tiger为密码
//从下面开始和sql server一模一样
Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select * from emp");
while(rs.next()){
System.out.println("用户名:"+rs.getString(2)); //这里要取第2个字段所以是2
}
rs.close();
sm.close();
ct.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
注:要在主函数前引sql包import java.sql.* ,否则出错
5.加入关闭打开资源的代码
rs.close();
sm.close();
ct.close();
6.运行java程序
二、演示加载JDBC驱动连接oracle数据库输出数据
1.同上面的ODBC连接的区别是这里要引入一个jdbc的驱动包
Oracle的JDBC驱动包就在oracle的安装目录下:D:\oracle\ora92\jdbc\lib 我用的是classes12.jar,注:D:\oracle为oracle的安装位置
引入方法:在左边栏右击工程名testMYOracle——Properties——Java Build Path——Libraries——Add External JARs...,选择Classes12.jar点打开即可,也可点菜单栏的Project——Properties——Java Build Path——Libraries
2.在前面的com.sp包下新建一名为TestOra2的类,下面为TestOra2类的代码:
package com.sp;
import java.sql.*;
public class TestOra2 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); //1.加载驱动,只有这句和下面那句同ODBC不一样,其它一样
Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORACLE1","scott","tiger"); //2.得到连接,127.0.0.1:1521为数据库iP和端口
Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select * from emp");
while(rs.next()){
System.out.println("用户名:"+rs.getString(2)); //这里要取第2个字段所以是2
}
rs.close();
sm.close();
ct.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
3.运行前要引入一个名为“classes12.jar”oracle的JDBC驱动包。引包方法见前面,类似Delphi:项目——属性——libraries——添加
三、在JSP网页连接oracle数据库并分页显示数据数据的案例及代码
需要建工程,建jsp文件,引包2个,配置与运行tomcat,并更改其端口,加入代码,总署测试代码
1.新建一名为TestOracleFenye的Web Project,
2.在左边栏树型图框展开新建的工程TestOracleFeney,右击WebRoot,新建JSP文件,文件名为Mytest.jsp
3.<body></body>中间加入如下代码
<h2>oracle 分页案例 </h2>
<table>
<tr><td>用户名</td><td>薪水</td></tr>
<%
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); //1.加载驱动,只有这句和下面那句同ODBC不一样,其它一样
Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORAL1","scott","tiger"); //2.得到连接,127.0.0.1:1521为数据库iP和端口,注:ORAL1在公司虚拟机上是ORACLE1
Statement sm=ct.createStatement();
//接收pageNow
String s_pageNow=(String)request.getParameter("pageNow"); //这里的String的S不能小写,否则出错
int pageNow=1;
if (s_pageNow!=null){
pageNow=Integer.parseInt(s_pageNow);
}
//查询总页数
int pageCount=0; //总共有多少条记录
int rowCount=0; //共有几条几录
int pageSize=4; //每页显示几条几录
ResultSet rs=sm.executeQuery("select count(*) from emp");
if (rs.next()){
rowCount=rs.getInt(1);
if (rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
}
rs=sm.executeQuery
("select * from (select a1.*,rownum rn from (select * from emp) a1 where rownum<="+pageNow*pageSize+") where rn>="+((pageNow-1)*pageSize+1)+"");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getString(2)+"</td>"); //这里要取第2个字段所以是2
out.println("<td>"+rs.getString(6)+"</td>"); //这里要取第2个字段所以是2
out.println("</tr>");
}
//打印总页数
for (int i=1;i<=pageCount;i++){
out.println("<a href=Mytest.jsp?pageNow="+i+"> [" +i+"] </a>");
}
rs.close();
sm.close();
ct.close();
}catch (Exception e) {
e.printStackTrace();
}
%>
</table>
4.引包,在第一行import="java.util.*" 这引号中加入:java.sql.*,例:import="java.util.*,java.sql.*"
4.1.还要将pageEncoding="ISO-8859-1"改为pageEncoding="gbk"
5.加入驱动包:依次展开TestOracleFenye--WebRoot--WEB-INF--lib,右击lib--Import...--General,双击File System,点击Browse浏览到驱动包所在的目录,在下面框里勾选上要引入的驱动包classes12.jar,点完成即可
6.这里要用到Apache出品的Tomcat来调试JSP文件,功能类型IIS服务器,但是调试jsp的,MyEclipse自带个简化的版tomcat一般情况是用不了,需要自己下载tomcat,然后集成到MyEclipse里去
这里以集成tomcat-6.0.29到MyEclipse为例
1)下载tomcat并解压到一个目录
2)点MyEclipse菜单栏的Windows--Preferences,在左上角框中输入tomcat搜索
3)搜出的第一个Tomcat为MyEclipse自带的,将其设为Disable
4)后面的是Tomcat 4.x/5.x/6.x根据你下载的版本选择要集成那个版,这里选Tomcat 6.x
5)然后分别点击Browse..把Tomcat的home和base目录设为tomcat的解压目录,这里是D:\soft\apache-tomcat-6.0.29,把temp设为tomcat解压目录下的temp目录,
6)最后点Enable激活其在ME中的应用,再点Apply即可。
7.保存Mytest.jsp,点工具栏上的部署(deploy)按钮--Add,在Server中选择Tomcat 6.x,再点完成将其添加到部署窗口
8.最后点Redeploy(重新部署)按钮重新发面一下
9.点工具栏的服务器图标(在部署按钮旁)旁的下接箭头,选择Tomcat 6.x--Start,启动Tomcat
10.点 “Open MyEclipse web Browser”按打开一个浏览器,
11.在其地址栏输入Mytest.jsp的地址:http://localhost:8081/TestOracleFenye/Mytest.jsp 查看结果
注:oracle默认为占用8080端口,所以要把Tomcat的web端口改为8081
编辑tomcat安装目录Server.xml文件,我的位置:(D:\soft\apache-tomcat-6.0.29\conf\server.xml)
不要为默认的记事本改,会乱码,可以notopad2,将里的8080改为8081保存即可
6.这里的每次修改后都要发布运行
四、使用to_date函数插入自定义格式的日期到数据库
错误格式:insert into emp values(9993,'xiaohone','manager',7782,'1988-11-11',78.9,55.33,10) //此法不能插入数据
默认格式:insert into emp values(9993,'xiaohone','manager',7782,'11-11月-1988',78.9,55.33,10)
格式一:insert into emp values(9994,'xiaohone','manager',7782,to_date('1988-11-11',‘yyyy-mm-dd’),78.9,55.33,10)
格式二:insert into emp values(9994,'xiaohone','manager',7782,to_date('1988/11/11',‘yyyy/mm/dd’),78.9,55.33,10)