Linux——Cent-OS下Eclipse使用JDBC连接Oracle 11g

操作的环境:

  1. Cent-OS 6.5
  2. jdk-8u101-linux-x64.gz
  3. Eclipse 4.2 版本 代号Luna(eclipse-jee-luna-SR2-linux-gtx-x86_64.tar.gz)
  4. Oracle 11gR2

操作的顺序:

本次安装的软件是在先安装好的CentOs-6.5的VM-WorkStation下的,个人建议操作的时候尽量root操作。

  1. 先下载好对应的linux版本的jdk|Eclipse|Oracle
  2. 解压jdk到相对应的路径下,配置环境变量
  3. 解压Eclipse到相对应的路径下,创建快捷方式
  4. 这一步最重要:先创建一个账户,在该用户创建相对应的文件夹,配置相关的文件,然后解压Oracle到刚刚创建的目录下.

一、安装Jdk

1.下载好jdk
2.创建目录 mkdir /usr/java 然后进入桌面,cp jdk-8u101-linux-64.gz /usr/java 表示把文件copy到/usr/java下。
3.解压,进入/usr/java目录下,tar -zxvf jdk-8u101-linux-x64.gz
4.配置:vi etc/profile 在这文件加入(纯手打):

export JAVA_HOME=/home/ly/usr/java/jdk1.8.0_101
export PATH=JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5.测试:java -version
以上是安装JDK1.8


二、安装Eclipse

1.参考解压jdk方式,解压Eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz 到/usr/java 目录下
2.创建快捷方式:(1)使用命令创建(自己上网找),(2)右击桌面->创建启动器->浏览 usr/java/eclipse/eclipse,图标也在那目录
快捷方式截图
3.打开eclipse,写个HelloWorld.java吧


三、安装Oracle

请参考本博主亲测成功
以下Oracle安装说明是
另外一个
所以读者可以自己选择我亲测的连接,或者网上找

1、升级软件包
yum -y install binutils “compat-libstdc++” elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++ make “pdksh” sysstat unixODBC unixODBC-devel

yum -y install compat-libstdc++-33 ksh

yum -y install libio.i686 glibc.i686 compat-libstdc++-33.i686 libaio-devel.i686 libgcc.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686

2、添加oracle用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle

3、更改内核参数,在/etc/sysctl.conf后面增加如下参数

#Modify for Oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
#kernel.shmmax = 2147483648
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_default=262144 
net.core.wmem_max=1048586

/sbin/sysctl -p 确认更改

4、更改oracle用户的shell 限制
cat /etc/security/limits.conf
vi /etc/security/limits.conf

在/etc/security/limits.conf后面增加如下行
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

5、在/etc/pam.d/login 后面增加如下行
session required pam_limits.so

6、在 /etc/profile 后面增加如下行

#lidt update
if [ $USER = "oracle" ]; then 
        if [ $SHELL = "/bin/ksh" ]; then 
                ulimit -p 16384 
                ulimit -n 65536 
        else 
                ulimit -u 16384 -n 65536 
        fi 
fi

7、创建Oracle 安装目录
oracle 安装在了/opt/oracle/
Inventory 目录在?/opt/oraInventory/

mkdir -p /opt/oracle/
ll /opt/
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/
mkdir -p /opt/oraInventory/
chown -R oracle:oinstall /opt/oraInventory/
chmod -R 775 /opt/oraInventory/

8、更改Oracle 用户的 .bash_profile
以Oracle 用户登录,运行

#lidt add
umask 022
ORACLE_BASH=/opt/oracle
ORACLE_SID=lidt;
export ORACLE_BASH ORACLE_SID
#unset ORACLE_HOME
#unset TNS_ADMIN


ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME
#ORACLE_TERM=xterm;
#export ORACLE_TERM
PATH=$ORACLE_HOME/bin:$PATH;
export PATH

更改完成后,退出oracle用户,重新登录,用以下命令检查是否更改成功
umask
env | more

至此,环境配置完毕,可以开始安装Oracle了

9、用root用户登录,执行
xhost +

10、oracle用户登录先把两个下载的zip文件,复制oracle目录下,用unzip命令把zip的内容解接压缩
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip

11、开始安装
cd database/
./runInstaller

12、安装过程中check说我的ksh没有装,忽略后继续安装

13、执行2个root 的的脚本,https:///localhost:11158/em便可访问了

14、#设置防火墙,远程可访问
vi /etc/sysconfig/iptables

添加如下两行

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1158 -j ACCEPT

重启防火墙

/etc/init.d/iptables restart

如果要关闭防火墙

/etc/init.d/iptables stop

关闭SELINUX

vi /etc/selinux/config
SELINUX=disabled

15、启动em命令:emctl start dbconsole
关闭em命令emctl stop dbconsole

16、修复emctl不能启动

[oracle@BoxCentOS6 ~]$ emctl start dbconsole
OC4J Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_BoxCentOS6_lidt not found. 
[oracle@BoxCentOS6 ~]$ mv /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_localhost_lidt/ /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_BoxCentOS6_lidt
[oracle@BoxCentOS6 ~]$ emctl start dbconsole
EM Configuration issue. /opt/oracle/product/11.2.0/dbhome_1/BoxCentOS6_lidt not found. 
[oracle@BoxCentOS6 ~]$ mv /opt/oracle/product/11.2.0/dbhome_1/localhost_lidt/ /opt/oracle/product/11.2.0/dbhome_1/BoxCentOS6_lidt
[oracle@BoxCentOS6 ~]$ emctl start dbconsole

如果还不能启动,就要修复
给用户解锁、设置密码

alter user dbsnmp account unlock;
alter user dbsnmp identified by dbsnmp;


alter user sysman account unlock;
alter user sysman identified by sysman;

请先开启数据库

[oracle@BoxCentOS6 ~]$ emca -config dbcontrol db -repos recreate
EMCA 开始于 2011-11-4 10:52:14
EM Configuration Assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。

以上安装Oracle是按网上相关人员的:http://blog.csdn.net/lidongtang/article/details/6935979

进入 conn scott/tiger,查询emp
这里写图片描述


四、Eclipse使用JDBC连接Oracle

1.下载 ojdbc14.jar ,放到Eclipse,
2.编写代码:
ConnectOracle .java

package test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnectOracle {

    private static Connection conn = null;
    private static Statement stmt = null;
    private static ResultSet rs = null;

    private String user = "scott";
    // private String user = "sys as sysdba";
    private String password = "tiger";
    private String className = "oracle.jdbc.driver.OracleDriver";
    private String url = "jdbc:oracle:thin:@localhost:1521:orcl";

    public ConnectOracle() {
    try {
        Class.forName(className);
        System.out.println("加载数据库驱动成功!");
    } catch (ClassNotFoundException e) {
        System.out.println("加载数据库驱动失败!");
        e.printStackTrace();
    }
    }

    /** 创建数据库连接 */
    public Connection getCon() {
    try {
        conn = DriverManager.getConnection(url, user, password);
        System.out.println("创建数据库连接成功!");
    } catch (SQLException e) {
        System.out.print(conn);
        System.out.println("创建数据库连接失败!");
        conn = null;
        e.printStackTrace();
    }
    return conn;
    }

    public void closed() {
    try {
        if (conn != null)
        conn.close();
        if (stmt != null)
        stmt.close();
        if (rs != null)
        rs.close();
    } catch (SQLException e) {
        System.out.println("关闭con对象失败!");
        e.printStackTrace();
    }
    }

    public static void main(String[] args) {
    ConnectOracle c = new ConnectOracle();
    conn = c.getCon();
    String sql = "select * from emp";
    try {
        stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
        System.out.println("学号\t姓名");
        while (rs.next()) {
        System.out.println(rs.getString(1) + "\t" + rs.getString(2)
            + "\t" + rs.getString(3) + "\t" + rs.getString(4)
            + "\t" + rs.getString(5));// 入如果返回的是int类型可以用getInt()
        }

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    c.closed();

    }

}

3.终端su - oracle(你自己当时定义的用户名),
启动Oracle

lsnrctl start
           //sqlplus sys/oracle as sysdba;
           sqlplus /nolog 
           conn sys/oracle as sysdba
           startup

4.运行Java
Eclipse运行截图

注意:
1.Eclipse的版本与JDK版本两者的版本或高或低,有可能导致Eclipse启动不了。
2.本人在安装Oracle时,参考的博主不是那个链接,有可能在配置文件致后面的用户名或者相关的命名不一样,方式是一样的。
3.本人在安装相关程序时,记录自己遇到的问题及相关解决方案

   1.按oracle的启动顺序应该是先启动回话监听,也就是[oracle@oracle ~]$ lsnrctl start,记住这里一定要在oracle用户的权限下执行

   2、oracle启动,windows下通常在服务里启动oracle,一般情况下同时启动相关实例,但也可以设置启动oracle时,不

启动任何指定实例,这样oracle的启动速度相当快。

  3、设定我们需要启动的相关实例。在console窗口中,输入 set oracle_sid=xxx (unix环境下用export命令)

  4、用/nolog方式,进入sqlplus。 在console窗口中,输入 sqlplus /nolog ,然后回车,则进入sqlplus环境。

  5、输入命令 connect sys as sysdba 回车后,提示输入口令,直接回车,则以sysdba的角色连接到oracle的空闲实例

。

  6、输入命令 startup nomount 回车,则启动了xxx实例,由set oracle_sid=xxx设置。

  7、输入命令 alter database mount 回车,则将相应的数据库挂接到xxx实例。

  8、输入命令 alter database open 回车,则打开了相应数据库。

  9、输入命令 shutdown,则关闭数据库、卸载数据库、关闭实例。
---------------------------------------------
oracle操作系统不同的启动顺序:
linux\Unix 下oracle的启动过程
           lsnrctl start
           //sqlplus sys/oracle as sysdba;
           sqlplus /nolog 
           conn sys/oracle as sysdba
           startup

windows   下oracle的启动过程
           lsnrctl start;
           oradim -startup -sid orcl;
--------------------------------------
sqlplus sys/oracle as sysdba;

select * from v$pwfile_users;//特权用户
---------------------------------------
数据库用户登录:
connect scott/tiger;
connect system/manager
connect sys/change_on_install as sysdba;//最高权限

create user abc
2 identified by abc
3 default tablespace users   //存放用户数据
4 Temporary Tablespace Temp  //临时数据放入Temp  临时表空间不能有限额.
5 Quota 50M on users
6 ;

alter user 用户名 Account Lock      //用户加锁
alter user 用户名 Account Unlocak   //用户解锁
alter User 用户名 Password Expire   //用户口令即刻失效
Drop user 用户名 cascade //强制删除 用户和用户下的对象一起删除

-------------------------------------------------------------------------------------------------------
SELECT * FROM ALL_TABLES WHERE OWNER='USER_NAME' 

----------------------解决方案:Connected to an idle instance.----------------------
ERROR: ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit
1 先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:
cmd的命令行窗口下,输入lsnrctl start,回车即启动监听。

2 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“abc”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=abc

3 再输入sqlplus  /nolog,回车
再输入 conn / as sysdba;回车

4 再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。

--------------------------------------------------------------------------------------------------
显示当前的显示条数(默认是14):
show pagesize;
设置显示条数为100跳:
set pagesize 100;
显示当前的显示列数:
show linesize;
设置显示列数为100:
set linesize 100;
------------------------------------------------------------------------------------------------
进入某个用户:查询其所有的表
select table_name from user_tables;
----------------------------修改主机名----------------------------------------------
永久修改主机名:
redhat/centos上永久修改

[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.10.1

修改network的HOSTNAME项。点前面是主机名,点后面是域名。没有点就是主机名。

[root@localhost ~]# vi /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master

这个是永久修改,重启后生效。目前不知道怎么立即生效。

想立即生效,可以同时采用第一种方法。

还有一个修改是:----------------------------

/etc/hosts

127.0.0.1              localhost.localdomain

127.0.0.1后面的那一部分。
--------------------配置jdk--------------------
JAVA_HOME=/home/gcs/user/java/jdk1.7.0_67
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
----------------------安装Oracle-----------------
http://www.cnblogs.com/pengineer/p/4351370.html
在安装图形界面Oracle时,如果出现乱码,请上网找,我当时忘记记录了
如果有时主机名变成bogon,有可能会连接不了(我也不懂为什么),请更改主机名

May-The-Good-Luck-Be-With-You

猜你喜欢

转载自blog.csdn.net/u014229282/article/details/52403873