一、首先按装oracle10g步奏:
请先大概的看一遍步奏,再一步步安装。
Oracle Database 10gfor Windows安装
一、操作系统
l Windows Server 2003
l Windows 2000 SP1
l Windows XP Professional
l Windows NT Server4.0
二、下载软件
http://www.oracle.com/technology/global/cn/software/index.html
论坛ftp上面也有
三、安装
1.运行setup.exe出现图1所示的“Oracle Database 10g安装”画面。
图 1 Oracle Database 10g安装
画面中网格背景寓示了10g的卖点Grid Computing“网格计算”。
l 选中“高级安装”,以便为SYS、SYSTEM设置不同的口令,并进行选择性配置。
2.“下一步”进入“Oracle Universal Installer:指定文件位置”,见图2。
图 2 指定文件位置
l 设置源“路径”、“名称”和目的“路径”,见图3所示。
n “名称”对应ORACLE_HOME_NAME环境变量
n “路径”对应ORACLE_HOME环境变量
图 3 设置源“路径”、“名称”和目的“路径”
3.“下一步” 进入“Oracle Universal Installer:选择安装类型”,见图4。
图 4 选择安装类型
4.保持默认值,下一步,进入“Oracle Universal Installer:选择数据库配置”,见图5。
图 5 选择数据库配置
5.保持默认值,下一步,进入“Oracle Universal Installer:指定数据库配置选项”,见图6。
图 6 指定数据库配置选项
l 指定“全局数据库名”和“SID”,对这两个参数的指定一般相同,例如:oract。
l 也可以将“全局数据库名”设置为域名。例如:oract.abc.com
l 如果选择“创建带样本方案的数据库,OUI会在数据库中创建HR、OE、SH等范例方案(sample schema)
6.下一步,进入“Oracle Universal Installer:选择数据库管理选项”,见图7。
图 7 选择数据库管理选项
7.保持默认值,下一步,进入“Oracle Universal Installer:指定数据库文件存储选项”,见图8。
图 8 指定数据库文件存储选项
8.保持默认值,下一步,进入“Oracle Universal Installer:指定备份和恢复选项”,见图9。
图 9 指定备份和恢复选项
9.保持默认值,单击“下一步”,进入“Oracle Universal Installer:指定数据库方案的口令”,如图10所示。
图 10 指定数据库方案的口令
l 对不同的帐户设置不同的口令。
10.单击“下一步”,继续安装,进入“Oracle Universal Installer:概要”,如图11所示。
图 11概要
12.单击“安装”,开始安装过程,大约半小时。
13.数据库创建完成时,显示“Database Configuration Assistant”窗口,如图12所示。
图 12 DatabaseConfiguration Assistant
14.单击“口令管理”,进入“口令管理”窗口,如图13所示。
图 13 口令管理
15.解锁用户HR、OE和SCOTT,输入HR和OE的口令,SCOTT的默认口令为tiger。
16.单击“确定”返回“Database Configuration Assistant”窗口。
17.在图15所示窗口单击“确定”,进入“Oracle Universal Installer:安装 结束”窗口,如图14所示。
图 14 安装结束
18.检查,单击“退出”,完成安装。
19.在自动打开的浏览器中以sys账户sysdba身份登录10g的企业管理器。
第一次要接受license,单击Iagree,以后就不用了。
四、查看安装情况
1.目录结构
图 15 oracle目录结构
l 默认ORACLE_BASE
n 在Windows中,默认的ORACLE_BASE目录是:
D:\oracle\product\10.1.0
n 在UNIX中,默认的ORACLE_BASE目录是:
/pm/app/oracle/10.1.0
所有的ORACLE软件文件和数据库文件都位于ORACLE_BASE下面的子目录中。
l 默认ORACLE_HOME
n 在Windows中,默认的ORACLE_HOME目录是:
D:\oracle\product\10.1.0\dbct
n 在UNIX中,默认的ORACLE_HOME目录是:
/pm/app/oracle/10.1.0/dbct
ORACLE_HOME是访问所有ORACLE软件的路径。
l Admin文件夹,存储初始化文件和日志文件
l Oradata\oract文件夹,存储数据库数据文件.dbf、控制文件.ctl、重做日志文件.log
图 16 Oradata\oract文件夹
2.查看“服务”管理器中相关的Oracle服务。
图 17Oracle服务
l OracleCSService服务
在做10G RAC的時候才會有。CSS(Cluster Synchronization Service)
3.注册表
图 18 注册表
图 19 注册表相关键值
l 语言的设置
名称 数据
NLS_LANG SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
其中:SIMPLIFIED CHINESE表示简体中文
CHINA表示中文日期格式
ZHS16GBK表示编码
NLS_LANG格式:NLS_LANG=language_territory.charset
有三个组成部分(语言、地域和字符集),每个组成成分控制了NLS子集的特性。三个成分可以任意组合,例如:
AMERICAN_AMERICA.US7SCII
JPANESE_JAPAN.JA16EUC
其中:language 指定服务器消息的语言。
territory 指定服务器的日期和数字格式。
Charset 指定字符集
还有一些子集可以更明确定义NLS_LANG参数:
NLS_DATE_FORMAT 缺省的日期格式
NLS_DATE_LANGUAGE 缺省的语言
NLS_NUMBERIC_CHARACTERS 小数字符和组分隔开
NLS_CURRENCY 本地货币字符
NLS_ISO_CURRENCY ISO货币字符
NLS_SORT 字符排序序列
如果使用英文,将NLS_LANG的值改为:
AMERICAN_AMERICA.WE8ISO8859P1
或
englishi_America.US7SCII
在SQL/PLUS中,运行下面的SQL语句,检查所连接数据库的字符集:
SQL> selectuserenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
4.PATH环境变量
D:\oracle\product\10.1.0\dbct\bin;D:\oracle\product\10.1.0\dbct\jre\1.4.2\bin\client;D:\oracle\product\10.1.0\dbct\jre\1.4.2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
5.开始> 所有程序 中增加Oracle - OraDb10g_home文件夹
6.oracle10g 更改8080端口号(如果需要)
在sqlplus下执行:
calldbms_xdb.cfg_update(updateXML( dbms_xdb.cfg_get()
, '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
, 9000))
/
commit;
五、测试安装好的Oracle 10g是否能正常运行
在安装过程中,OUI会在 <ORACLE_HOME>\install下创建两个文件:
readme.txt:记录各种Oracle应用程序的URL与端口。
Portlist.ini:记录Oracle应用程序所使用的端口。
1.登录EnterpriseManager 10g Database Control
与以前的版本不同,Oracle企业管理器只有B/S模式。在Web浏览器中输入下列URL:
http://<Oracle服务器名称>:5500/em
进入Enterprise Manager 10g登录窗口。用SYS帐户,以SYSDBA身份登录Oracle数据库。
图 20 sys登录Enterprise Manager 10gdatabase Control
如果是第一次登录时,先进入Oracle 10g版权页。
图 21 Oracle 10g版权声明
单击右下方的“I Agree”按钮,进入EnterpriseManager 10g。
图 22 在Database Control中查看数据库配置信息
现在我们可以用来管理Oracle数据库了。
2.使用iSQL*Pls登录Oracle数据库
iSQL*Plus是B/S模式的客户端工具。在Web浏览器中输入下列URL:
http://<Oracle服务器名称>:5560/isqlplus
例如:http://localhost:5560/isqlplus
进入iSQL*Plus登录窗口。用hr帐户登录Oracle数据库。
图 23 Oracle 10g的iSQL*Plus登录页面
注:如果不知道HR的口令,现用sys登录,修改HR的口令,例如,将HR的口令改为hr:alter user hr identified by hr;
登录进入iSQL*Plus工作区后,可以在工作区输入SQL*Plus指令、SQL语句与PL/SQL语句。
图 24 在iSQL*Plus工作区执行SELECT语句
图 25 在iSQL*Plus中查看SELECT语句的执行结果
3.使用SQL*Pls登录Oracle数据库
SQL*Plus是C/S模式的客户端工具程序。
l 单击“开始” > “所有程序” > “Oracle – Oracle10g_home” > “Application Development” > “SQL*Plus”
l 在登录窗口中输入hr帐号与口令
图 26 在SQL*Plus中执行SELECT语句
4.使用命令行SQL*Pls登录Oracle数据库
传统的SQL*Plus是一个命令行客户端程序。在命令窗口中输入图27中所示的命令进行测试。
图 27 在命令行SQL*Plus中执行SELECT语句
六、结语
Oracle 10g提供了高性能与高稳定性的企业级数据存储方案,也对Windows操作系统提供了更好的支持。借助Windows操作系统以线程为基础的服务模式,Oracle 10g可以提供更高的执行性能、更稳定的执行环境,以及更具扩展性的平台。在WindowsServer 2003上安装64位版本的Oracle 10g数据库,更能发挥Oracle强大的数据处理能力。
附:
在Windows操作系统下安装Oracle 10g数据库以后,计算机的运行速度明显降低,所以在不使用数据库时,可将Oracle 10g数据库服务关闭,如图28所示。
图 28 停止 Oracle服务
要使用数据库时,根据应用情况只启动必要的服务,必须启动的服务如图29所示。
图 29 启动必须的 Oracle服务
Oracle 数据库监听器的默认端口是1521。可以在:
ORACLE_HOME\network\admin\listener.ora文件中查看监听器端口。
二、若第一次安装失败
NT环境下:
1、以NT的Administrator 登陆
2、通过控制面版-〉服务,停掉所有ORACLE服务
3、打开注册表(REGEDIT命令),删除HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
4、打开注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services删除以ORACLE开头的所有服务
5、删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application下以ORACLE开头的所有服务
6、关闭REGEDIT
7、打开控制面版-〉系统-〉环境变量
8、如果ORACLE安装了JRE,就删除%ORACLE_HOME%\BIN和JRE路径。比如 \ORACLE\ORA81\BIN;G: \Program Files\Oracle\jre\1.1.7\bin
9、删除\Winnt\Profiles\All Users\Start Menu\Programs\Oracle 和\Winnt\Profiles\All Users\Start Menu\Programs\Oracle
10、删除\Program Files\Oracle
11、重新启动机器
12、删除所有ORACLE目录(在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOMES下)
在 Windows 95 / Windows 98:
1. 打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.
2.删除前面步骤中的第3步中的ORACLE
3. 删除AUTOEXEC.BAT 中的 %ORACLE_HOME%\bin 和 JRE
4. 删除所有ORACLE目录
5. \Program Files\Oracle
6. \Windows\Start Menu\Programs\Oracle - <HOME>\Windows\StartMenu\Programs\Oracle
7. 重新启动
三,接下来就是Myeclipse连接oracle了
为在MyEclipse中设置连接Oracle数据库,在Eclipse中选择Window→Show View→Other→MyEclipse Database→DB Browser选项。右击DB Browser视图的空白部分,选择New选项,如图2 3所示。
图2 3 选择New选项 |
在弹出的窗口中,输入连接Oracle数据库所需要的相应参数,以及Oracle驱动类库的文件名与位置。单击Next按钮,如图2 4所示。
图2 4 输入连接Oracle数据库的参数 |
接下来为连接源代码:
1.新建_TestOOP_JDBC工程
2.工程下面建四个包,分别为com.szy.DAO,com.szy.DO,com.szy.IDAO,com.szy.Test
3.将jar包到如工程下面的lib里(lib在WEB-INF下)
4.在oracle里建Student表,并且插入数据
5.下面为完整代码
package com.szy.DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DBHelper {
private static final String DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";
private static final String URL = "jdbc:oracle:thin:@localhost:1521:chenrq";
private static final String USER_NAME = "system";
private static final String PASS = "chenrq";
public static Connection getConnection() {
Connection connection = null;
try {
Class.forName(DRIVER_CLASS);
connection = DriverManager.getConnection(URL, USER_NAME, PASS);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
public static void closeAll(Connection connection, Statement statement,
ResultSet rs) {
try {
if (rs != null)
rs.close();
if (statement != null)
statement.close();
if (connection != null && !connection.isClosed())
connection.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
package com.szy.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import com.szy.DO.Student;
import com.szy.IDAO.IStudentDAO;
public class StudentDAO implements IStudentDAO {
public void addStudent(Student student) {
Connection connection = null;
PreparedStatement statement = null;
try {
connection = DBHelper.getConnection();
String sql = "insert into student(name,pass,age) values(?,?,?)";
statement = connection.prepareStatement(sql);
statement.setString(1, student.getName());
statement.setString(2, student.getPass());
statement.setInt(3, student.getAge());
int a = statement.executeUpdate();
System.out.println(a);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public int deleteStudentById(int id) {
List<Student> lt = new ArrayList<Student>();
Connection connection = null;
PreparedStatement stament = null;
int a = 0;
try {
connection = DBHelper.getConnection();
String sql = "delete from student where id=?";
stament = connection.prepareStatement(sql);
stament.setInt(1, id);
a = stament.executeUpdate();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
DBHelper.closeAll(connection, stament, null);
}
return a;
}
public List<Student> findStudent() {
List<Student> lt = new ArrayList<Student>();
return lt;
}
public int updateStudent(Student student) {
return 0;
}
public boolean login(String name, String pass) {
// TODO Auto-generated method stub
if ("accp".equals(name)) {
return true;
} else
return false;
}
}
package com.szy.DO;
public class Student {
private int id;
private String name;
private String pass;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(int id, String name, String pass, int age) {
super();
this.id = id;
this.name = name;
this.pass = pass;
this.age = age;
}
public Student( String name, String pass, int age) {
super();
this.name = name;
this.pass = pass;
this.age = age;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
}
package com.szy.IDAO;
import java.util.List;
import com.szy.DO.Student;
public interface IStudentDAO {
public void addStudent(Student student);
public int deleteStudentById(int id);
public int updateStudent(Student student);
public List<Student> findStudent();
public boolean login(String name,String pass);
}
package com.szy.Test;
import com.szy.DAO.StudentDAO;
import com.szy.DO.Student;
public class TestStudent {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StudentDAO studentDAO = new StudentDAO();
Student student = new Student("ttt", "123", 22);
studentDAO.addStudent(student);
// List<Student> lt = studentDao.findStudent();
// System.out.prinltn(lt.size());
}
}
6.在oracl中查看是否插入一行数据
ID NAME PASS AGE
ttt 123 22
(完)。记得留下脚印,谢谢!