oracle数据库连接实例
pyodbc连接oracle 的connect用法
pyodbc连接oracle 的connect用法全文共四篇示例,供读者参考第一篇示例:在Python编程语言中,pyodbc是一种流行的数据库连接库,它可以帮助开发者在Python代码中连接各种类型的数据库。
在本文中,我们将重点介绍如何使用pyodbc连接Oracle数据库,并详细介绍connect方法的用法。
要使用pyodbc连接Oracle数据库,我们需要安装pyodbc库和Oracle数据库驱动程序。
可以通过pip工具来安装pyodbc库,在命令行中输入以下命令:```pip install pyodbc```接下来,需要安装Oracle数据库驱动程序。
Oracle数据库有多种版本和类型的驱动程序,可以根据具体情况选择合适的版本。
安装驱动程序后,就可以开始使用pyodbc连接Oracle数据库了。
在连接Oracle数据库之前,我们首先需要获取数据库的连接信息,包括数据库的主机地址、端口号、数据库实例名、用户名和密码等。
这些信息都是连接Oracle数据库所必需的。
下面是一个使用pyodbc连接Oracle数据库的示例代码:# 设置数据库连接信息host = 'localhost'port = '1521'database = 'ORCL'user = 'username'password = 'password'# 构建连接字符串conn_str = (r"Driver={{Oracle in OraClient11g_home1}};"r"Server={host}:{port};"r"Database={database};"r"Uid={user};"r"Pwd={password};")# 连接数据库conn = pyodbc.connect(conn_str)# 创建游标cursor = conn.cursor()# 执行查询语句cursor.execute("SELECT * FROM table_name")# 读取结果集for row in cursor:print(row)# 关闭连接conn.close()```在上面的示例代码中,我们首先设置了数据库连接信息,包括主机地址、端口号、数据库实例名、用户名和密码。
oracle 数据库实例的配置方式
oracle 数据库实例的配置方式Oracle数据库是目前全球应用最广泛的关系型数据库之一,其强大的性能和可靠性使得它成为许多企业和组织首选的数据库管理系统。
在使用Oracle数据库之前,需要进行实例的配置,本文将详细介绍Oracle数据库实例的配置方式。
首先,我们需要理解什么是Oracle数据库实例。
Oracle数据库实例是由Oracle数据库软件创建和管理的一个独立运行环境,它包含了操作数据库所需的所有进程和内存结构。
每个Oracle数据库可以同时运行多个实例,每个实例和一个特定的数据库相关联。
接下来,我们将一步一步回答如何配置Oracle数据库实例。
第一步:安装Oracle数据库软件在配置Oracle数据库实例之前,我们需要先安装Oracle数据库软件。
Oracle提供了开发者和企业版两种版本的数据库软件,可以根据实际需求选择合适的版本。
安装过程中需要指定安装目录、数据库实例名称以及数据库系统标识符(SID) 等信息。
第二步:创建初始化参数文件在安装完成后,我们需要创建一个初始化参数文件,它用于描述数据库实例的初始配置参数。
参数文件通常以文本形式存在,并包含了一系列参数和值,用于控制数据库的各个方面。
参数文件通常命名为initSID.ora,其中SID为数据库实例名称。
参数文件中的参数可以分为两类:静态参数和动态参数。
静态参数在启动数据库实例之前必须使用参数文件进行配置,并且只能通过重新启动数据库实例来改变。
而动态参数可以在数据库实例运行过程中通过SQL语句来修改,无需重新启动数据库实例。
第三步:启动数据库实例配置完成参数文件后,我们可以使用Oracle提供的实用程序来启动数据库实例。
在Windows操作系统中,可以使用“OracleServiceSID”服务来启动数据库实例,其中SID为数据库实例名称。
在Linux和UNIX操作系统中,可以使用“sqlplus”命令来连接到数据库实例,并通过“startup”命令来启动数据库实例。
jdbctemplate连接oracle实例
jdbctemplate连接oracle实例要使用JdbcTemplate连接Oracle数据库实例,需要以下步骤:在Spring配置文件中定义数据源。
例如,使用以下代码定义数据源:xml<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" ><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/><property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/><property name="username" value="yourUsername"/><property name="password" value="yourPassword"/></bean>其中,url是Oracle数据库的连接URL,username和password是数据库的用户名和密码。
注入数据源到JdbcTemplate实例中。
例如,使用以下代码注入数据源到JdbcTemplate实例中:java@Autowiredprivate DataSource dataSource;@Autowiredprivate JdbcTemplate jdbcTemplate;使用JdbcTemplate执行SQL查询或更新。
例如,使用以下代码执行SQL查询:javaList<Map<String, Object>> results = jdbcTemplate.queryForList("SELECT * FROM yourTable");其中,"SELECT * FROM yourTable"是SQL查询语句,可以替换成任何需要的SQL语句。
ORACLE数据库与实例的关系
ORACLE数据库与实例的关系1 数据库名1.1 数据库名的概念数据库名(db_nam e)就是一个数据库的标识,就像人的身份证号一样。
如果一台机器上装了多个数据库,那么每一个数据库都有一个数据库名。
在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。
数据库名在$O racle_HOME/admin/db_nam e/pfile/init.ora(或$ORACLE_BASE/admin/db_nam e/pfile/init.ora或$ORACLE_HOME/dbs/SPFILE<实例名>.ORA)文件中############################################ Databa se Identi ficat ion###########################################db_dom ain=""db_nam e=orcl在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。
因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。
假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。
但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。
1.2 数据库名的作用数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的(注意这些时候不能使用s i d,还有alte r databa se时都是使用数据库名)。
有很多Oracle安装文件目录是与数据库名相关的,如:winnt: F:\oracle\produc t\10.2.0\oradat a\DB_NAM E\...又如参数文件p file:winnt: F:\oracle\produc t\10.2.0\admin\DB_NAM E\pfile\init.ora.54200885729如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount方式启动实例,然后以create contro lfile命令创建控制文件,当然这个命令中也要指明D B_NA ME。
Oracle数据库、实例、表空间、用户、数据库对象
Oracle数据库、实例、表空间、⽤户、数据库对象Oracle是⼀种数据库管理系统,是⼀种关系型的数据库管理系统。
通常情况了我们称的“数据库”,包含了物理数据、数据库管理系统、内存、操作系统进程的组合体,就是指这⾥所说的数据库管理系统。
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。
① Oracle数据库是⼀系列物理⽂件的集合;组成Oracle数据库的⽂件可以分成三个类型:数据⽂件(data file)、重做⽇志⽂件(redo log file)和控制⽂件(control file)。
数据⽂件保存数据,Oracle中可以存在任意数量的数据⽂件;重做⽇志⽂件跟SQL Server的事务⽇志⽂件⼀样⽤来保存对数据更改的记录,在系统恢复阶段需要⽤到;控制⽂件是⼀些特别的⼩⽂件,⽤来保存⼀些⾄关重要的关于数据库的信息,没有这个⽂件的话,实例就⽆法打开数据库。
除了数据⽂件、重做⽇志⽂件、控制⽂件之外,数据库还包含参数⽂件(parameter file)、密码⽂件(password file)和可选的归档⽇志⽂件(archive log files)。
② Oracle数据库实例则是⼀组Oracle后台进程/线程以及在服务器分配的共享内存区。
当Oracle启动时,它和SQL Server⼀样要先占⽤⼀些服务器内存⽤于执⾏操作,这个内存区域——SGA(System Global Area)——被分为数个不同的结构,在创建SGA的同时也会启动⼀系列的后台进程⽤于和SGA进⾏交互,在这⾥这些分配的内存空间和后台进程组合起来就是Oracle实例了。
请注意这⾥并没有提到数据库,实际上Oracle实例在没有数据库或是数据库不能访问时也是跑的很好的,在安装Oracle时,我们可以选择只安装软件,完了之后再安装数据库。
Oracle系统启动时,⾸先在内存中创建数据库实例,然后由实例找到保存在磁盘中的数据库,最后打开数据库让⽤户操作。
oracle 连接实例名
oracle 连接实例名Oracle 连接实例名是什么意思呢?这其实是在数据库中,用于标识一个具体的数据库实例的名称。
在Oracle数据库中,每个实例都有一个唯一的实例名,用于区分不同的数据库实例。
下面我将以人类的视角,用丰富多样的词汇来描述Oracle连接实例名的相关内容。
我们来了解一下Oracle数据库。
Oracle数据库是一种关系型数据库管理系统,被广泛应用于企业级应用和大型数据处理。
它具有高度可靠、高性能和可扩展性等特点,被许多企业和组织用于存储和管理大量的数据。
在Oracle数据库中,每个实例都有一个唯一的实例名。
实例名是一个用于标识数据库实例的字符串,一般由字母、数字和下划线组成。
实例名在数据库启动时指定,并在整个数据库生命周期中保持不变。
通过实例名,我们可以在网络中唯一地标识一个特定的Oracle数据库实例。
Oracle连接实例名在数据库开发和管理中起着非常重要的作用。
当我们需要连接到一个Oracle数据库实例时,需要使用实例名来建立连接。
连接实例名是连接字符串的一部分,它告诉数据库驱动程序要连接到哪个数据库实例。
通过连接实例名,我们可以在网络中准确定位一个数据库实例,并与之进行通信。
连接实例名通常由三部分组成:主机名、端口号和实例名。
主机名是指Oracle数据库所在的主机的名称或IP地址。
端口号是指数据库监听器所使用的端口号,用于接收客户端的连接请求。
实例名是用于标识一个具体的数据库实例的名称。
例如,假设我们要连接到一个名为"orcl"的Oracle数据库实例,该实例位于主机名为"localhost"的主机上,监听器使用的端口号为1521。
那么连接实例名可以表示为:"localhost:1521/orcl"。
通过这个连接实例名,我们可以建立与该数据库实例的连接,并进行数据操作。
总结一下,Oracle连接实例名是用于标识一个具体的数据库实例的名称,通过连接实例名,我们可以在网络中准确定位一个数据库实例,并与之进行通信。
Oracle数据库使用基础和实例
Oracle数据库使⽤基础和实例数据库查询实例数据查询语法格式/*distinct:去除重复的查询结果*/select [all|distinct] *|<⽬标列表达式>[别名],...from <表名或视图名>[别名],...where <条件表达式>group by <列1>having <条件表达式>order by <列2>exists/*exists:如果⼦句有返回结果,那么返回true.否则返回falsenot exists:和上⾯相反*/查询有员⼯的部门信息。
select d.* from dept dwhere exists(select empno from emp ewhere d.deptno = e.deptno);模糊查询/*模糊查询:_:匹配⼀个字符。
%:匹配0到多个字符。
*/查询⾝份证中出⽣年份‘1989’的学员信息。
select stuname from studentinfowhere stucard like '______1989%';⼦查询/*⼦查询:在⼀个查询中嵌套另⼀个查询,嵌套的查询语句就是⼦查询,⼦查询的结果可以被本次查询语句使⽤。
单⾏⼦查询:⼦句只会查询出⼀个结果。
多⾏⼦查询:⼦句会查询出多个结果*/查询⼯资⽐JONES⾼的所有员⼯。
select ename from empwhere sal >(select sal from empwhere ename = 'JONES');/*关联查询⽅法*/select e2.ename,e2.sal from emp e1,emp e2where e1.ename = 'JONES' and e2.sal>e1.sal;和⼯资⼤于2000的⼈在同⼀个部门的⼈。
select ename,deptno from empwhere deptno in(select distinct deptno from empwhere sal>2000);/*关联查询⽅法*/select distinct e2.ename,e2.deptno,e2.sal from emp e1,emp e2where e1.sal>2000 and e2.deptno = e1.deptno;分组查询/*分组查询:⼀般情况下分组查询基本都会使⽤到聚合函数。
oracle 数据库database link sql写法
oracle 数据库database link sql写法Oracle数据库中,可以使用数据库链接(Database Link)来连接两个不同实例中的数据库,使得可以在一个数据库中访问另一个数据库中的对象。
数据库链接是一个逻辑连接,允许在一个数据库中以另一个数据库的角度访问对象。
在Oracle中,创建和使用数据库链接需要以下步骤:1. 创建数据库链接要创建数据库链接,可以使用CREATE DATABASE LINK语句。
语法如下:```CREATE DATABASE LINK link_nameCONNECT TO username IDENTIFIED BY passwordUSING 'tns_alias';```其中,link_name是链接的名称,username和password是目标数据库的登录凭证,tns_alias是指向目标数据库的TNS别名。
2. 使用数据库链接创建完数据库链接后,可以使用链接来访问目标数据库中的对象。
可以在SQL语句中使用@符号,后跟链接名称来引用链接,然后在链接名称之后指定要访问的表或视图。
例如:```SELECT * FROM table_name@link_name;```这将在当前数据库中执行SQL查询,访问链接指向的数据库中的表或视图。
3. 约束和限制在使用数据库链接时,需要注意以下约束和限制:- 数据库链接只能用于访问远程数据库上的对象,不能用于执行DDL语句。
- 数据库链接不能跨越数据库实例和版本,即数据库链接只能连接到同一个数据库版本中的对象。
- 数据库链接将使用连接的目标数据库的默认表空间和默认角色。
- 数据库链接的权限继承自目标数据库中的用户。
4. 管理数据库链接可以使用数据库链接的元数据视图来查询和管理数据库链接。
例如,可以使用DBA_DB_LINKS视图来查看当前数据库中的所有数据库链接。
```SELECT * FROM DBA_DB_LINKS;```该视图将返回链接的详细信息,例如链接名称、目标数据库的用户名和密码等。
oracle database link用法(一)
oracle database link用法(一)Oracle Database LinkOracle Database Link是Oracle数据库中用于连接两个不同的数据库实例的工具。
它允许从一个数据库访问另一个数据库的对象,例如表、视图、函数等。
下面是一些关于Oracle Database Link的用法和详细解释:1. 创建Database Link在Oracle数据库中,可以使用CREATE DATABASE LINK语句创建一个数据库链接。
创建链接时需要指定链接的名称、目标数据库的连接信息以及可选的认证信息。
CREATE DATABASE LINK link_nameCONNECT TO username IDENTIFIED BY passwordUSING 'tns_alias';•link_name:链接的名称,在创建链接时必须指定,用于在查询中引用链接。
•username:目标数据库的用户名,链接将使用该用户进行连接。
•password:目标数据库用户的密码。
•tns_alias:目标数据库的TNS别名,用于指定目标数据库的连接信息。
2. 使用Database Link创建好链接后,在查询中就可以使用该链接来访问目标数据库的对象。
通过在查询中添加@符号和链接名称,可以引用链接并访问链接目标数据库的对象。
SELECT column1, column2, ...FROM table_name@link_name;在上述查询中,table_name是目标数据库中的表名,link_name 是之前创建的链接名称。
3. 跨数据库访问使用Oracle Database Link可以实现跨数据库的访问。
如果有两个不同的数据库实例A和B,并且在实例A中创建了一个名为link_name的数据库链接,就可以通过该链接来访问实例B中的对象。
SELECT column1, column2, ...FROM table_name@link_name;这样就可以在实例A中查询实例B中的数据表。
jdbc+代码oracle数据库连接,JDBC连接Oracle数据库代码
jdbc+代码oracle数据库连接,JDBC连接Oracle数据库代码import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class TestOracle {public static void main(String[] args) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {Class.forName("oracle.jdbc.driver.OracleDriver");//实例化oracle数据库驱动程序(建⽴中间件)String url = "jdbc:oracle:thin:@localhost:1521:oar92";//@localhost为服务器名,sjzwish为数据库实例名conn = DriverManager.getConnection(url, "guchao", "jimmy");//连接数据库,a代表帐户,a代表密码stmt = conn.createStatement();//提交sql语句,创建⼀个Statement对象来将SQL语句发送到数据库//查询数据⽤executeQueryrs = stmt.executeQuery("select * from ruby");//执⾏查询,(ruby)为表名while (rs.next()) {//使当前记录指针定位到记录集的第⼀条记录System.out.println(rs.getString("sid") +" "+ rs.getString("sname"));}//1代表当前记录的第⼀个字段的值,可以写成字段名。
oracle用户连接数据库的语句
oracle用户连接数据库的语句(原创实用版)目录1.Oracle 数据库简介2.Oracle 用户连接数据库的方式3.示例:使用 SQL*Plus 连接 Oracle 数据库4.示例:使用 SQL*Plus 命令执行数据库操作5.总结正文一、Oracle 数据库简介Oracle 数据库是甲骨文公司(Oracle)的一款关系型数据库管理系统,其功能强大、性能优越,广泛应用于各个行业的数据管理与处理。
Oracle 数据库提供了多种连接方式,让用户可以方便地对其进行操作。
二、Oracle 用户连接数据库的方式1.使用 SQL*PlusSQL*Plus 是 Oracle 提供的一个命令行工具,用户可以通过它来连接数据库、执行 SQL 语句等。
使用 SQL*Plus 连接 Oracle 数据库的步骤如下:(1)打开命令行窗口(2)输入以下命令并按回车键:```sqlplus <username>/<password>@<hostname>:<port>```其中,`<username>`为用户名,`<password>`为密码,`<hostname>`为主机名,`<port>`为端口号。
(3)根据提示输入用户名和密码(4)成功连接后,会显示数据库版本和连接信息。
此时,用户可以开始执行 SQL 语句。
2.使用其他工具除了 SQL*Plus,用户还可以使用其他工具(如 SQL Developer、Toad 等)连接 Oracle 数据库。
这些工具的使用方法类似,只是界面和操作略有不同。
三、示例:使用 SQL*Plus 连接 Oracle 数据库假设我们有一个名为“orcl”的 Oracle 数据库实例,用户名为“system”,密码为“oracle”,主机名为“localhost”,端口号为“1521”。
我们可以按照以下步骤使用 SQL*Plus 连接该数据库:1.打开命令行窗口2.输入以下命令并按回车键:```sqlplus system/oracle@localhost:1521```3.根据提示输入用户名和密码4.成功连接后,会显示数据库版本和连接信息,如:```Connected to:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bitCopyright (c) 1982, 2017, Oracle. All rights reserved.Enter user-name:```四、示例:使用 SQL*Plus 命令执行数据库操作连接到数据库后,我们可以使用 SQL*Plus 执行各种数据库操作,例如创建表空间、创建表、插入数据、查询数据等。
python操作oracle数据库的简单方法和封装类实例
python操作oracle数据库的简单方法和封装类实例Python提供了多种方法来操作Oracle数据库,包括使用第三方库进行操作和使用标准库中的模块进行操作。
1. 使用cx_Oracle库进行操作:cx_Oracle是Python官方提供的一个Oracle数据库连接库。
可以使用pip命令进行安装。
使用cx_Oracle连接数据库的一般步骤如下:1. 导入cx_Oracle库:import cx_Oracle3. 创建游标对象:cursor = conn.cursor4. 执行SQL语句:cursor.execute('SELECT * FROM 表名')5. 获取查询结果:result = cursor.fetchall6. 关闭游标和连接:cursor.close(; conn.close以下是一个使用cx_Oracle库操作Oracle数据库的示例:```pythonimport cx_Oracledef query_data(:cursor = conn.cursorcursor.execute('SELECT * FROM 表名')result = cursor.fetchallcursor.closeconn.closereturn resultdef insert_data(data):cursor = conn.cursorcursor.execute('INSERT INTO 表名 VALUES (:1, :2)', data)cursor.closeconn.closeresult = query_dataprint(result)insert_data(('值1', '值2'))```2. 封装类操作Oracle数据库:为了方便使用,可以将数据库操作封装成一个类,提供常用的数据库操作方法,例如查询、插入、更新和删除等。
oracle切换数据库连接的实例
一、导言Oracle数据库是一种流行的关系型数据库管理系统,广泛用于企业级应用程序中。
在实际应用中,连接到数据库的实例可以随时发生变化,因此需要了解如何切换数据库连接的实例。
二、什么是数据库连接的实例数据库连接的实例是指在客户端与数据库服务器之间建立的一个连接。
在Oracle数据库中,每个实例都有一个唯一的标识符,称为实例名。
在连接数据库时,需要指定要连接的特定实例。
三、切换数据库连接的实例的方法1.使用Oracle Net Manager工具Oracle Net Manager是一个可视化工具,用于管理Oracle数据库的网络配置。
通过Oracle Net Manager,可以轻松地切换数据库连接的实例。
具体步骤如下:a.打开Oracle Net Manager工具,找到要修改的连接项目;b.在连接项目的属性中,找到“服务名(SID)”字段;c.在该字段中输入要切换的数据库实例名;d.保存更改,并在客户端重新连接数据库即可。
2.使用tnsnames.ora文件在Oracle数据库中,可以通过修改tnsnames.ora文件来切换数据库连接的实例。
具体步骤如下:a.打开tnsnames.ora文件,找到要修改的连接项目;b.在连接项目的配置中,找到“SERVICE_NAME”字段;c.在该字段中输入要切换的数据库实例名;d.保存文件,并在客户端重新连接数据库即可。
3.使用SQL*Plus命令行工具通过SQL*Plus命令行工具,可以直接在命令行中切换数据库连接的实例。
具体步骤如下:a.在命令行中输入“sqlplus 用户名/密码数据库实例名”,连接到指定的数据库实例;b.输入密码后,即可成功切换数据库连接的实例。
四、切换数据库连接的实例的注意事项1.确保连接信息的准确性在切换数据库连接的实例时,需要确保连接信息的准确性,包括实例名、用户名和密码等。
输入错误的连接信息将导致连接失败。
2.避免影响生产环境在切换数据库连接的实例时,需要谨慎操作,避免影响到生产环境的正常运行。
centos oracle12c 添加实例
centos oracle12c 添加实例在CentOS操作系统上添加Oracle 12c实例是一个需要仔细操作的任务。
Oracle数据库是一个强大而复杂的数据库管理系统,通过添加实例可以在同一服务器上运行多个数据库。
本文将详细介绍在CentOS上添加Oracle 12c实例的步骤。
第一:准备工作1.确认Oracle 12c已安装:在开始之前,确保已在CentOS服务器上成功安装Oracle 12c数据库。
安装过程可能涉及到一些配置和环境变量的设置,请确保这些步骤都已正确完成。
2.备份数据库:在进行任何重要的操作之前,请确保对现有的Oracle数据库进行备份,以防意外情况发生。
3.检查系统资源:确保服务器具有足够的内存、磁盘空间和其他资源以支持新的Oracle实例。
第二:创建新的Oracle 12c实例1.登录到Oracle用户:在终端中使用Oracle用户登录到数据库服务器:bashsu -oracle2.设置环境变量:设置新实例所需的环境变量,包括ORACLE_HOME、ORACLE_SID等:bashexport ORACLE_HOME=/path/to/oracle_homeexport ORACLE_SID=new_instance其中,/path/to/oracle_home是Oracle安装的主目录,new_instance是新实例的标识符。
3.创建实例参数文件:在$ORACLE_HOME/network/admin目录下创建一个新的参数文件(init文件),命名为initnew_instance.ora,并编辑它以包含必要的配置信息:sqldb_name=new_instancememory_target=2G # 根据实际需要设置内存4.创建实例密码文件:使用orapwd工具创建一个新的实例密码文件:bashorapwd file=$ORACLE_HOME/dbs/orapwnew_instance password=password entries= 5其中,password是实例密码。
Tomcat 6.0配置oracle数据库连接池
oracle驱动包Tomcat 6.0配置oracle数据库连接池TomCat6.0数据库连接池配置实例(Oracle 11g数据库)TomCat6.0数据库连接池配置有几种方式,在这里我介绍一种常用的方法供大家参考:配置过程分成三个步骤来完成:第一步:在TomCat6.0的目录下找到context.xml配置文件。
(例:D:program Files/apache-tomcat-6.0.14/conf/context.xml)然后打开context.xml,在标签<context>/</context>之间加入如下内容:(为了容易理解,我对配置做了较详细的注释)Resource name="jdbc/DBPool"!--数据源名称,最好起一个有意义的名称--auth="Container"!--这个默认无需修改--type="javax.sql.DataSource"!--这个默认无需修改-- driverClassName="oracle.jdbc.driver.OracleDriver"!--这里用到的是oracle数据库的驱动包。
--url="jdbc:oracle:thin:@localhost:1521:orcl"!--这里是连接到oracle数据库的url,其中url="jdbc:oracle:thin:@"是固定的,如果访问oracle数据库不在本机上应该将localhost改为oracle数据库所在机子的IP地址,zygora是我的oracle数据库的SID。
--username="scott"!--登陆数据库的用户名—password="tiger"!--登陆数据库的密码—maxIdle="5"!--这个默认无需修改—maxWait="5000"!--这个默认无需修改—maxActive="10"!--这个默认无需修改--/第二步:下载oracle驱动包ojdbc14.jar,拷贝到TomCat6.0目录下的lib目录里。
oracle数据库连接
oracle数据库连接Oracle 是⼀个数据库管理系统,是Oracle公司的核⼼产品。
其在数据安全性与安整性控制⽅⾯的优越性能,以及跨操作系统、跨硬件平台的数据操作能⼒。
基于“客户端/服务 器”(Client/Server)系统结构。
主要特点:1.⽀持多⽤户、⼤事务量的事务处理。
2.在保持数据安全性和完整性⽅⾯性能优越。
3.⽀持分布式数据处理。
将公布在不同物理位置的数据库⽤通信⽹络连接起来,组成⼀个逻辑上统⼀的数据库,完成数据处理任务。
4.具有可移植性。
Oracle可以在Windows、Linux等多个操作系统平台上使⽤。
Oracle基本概念:1.数据库。
这⾥的数据库是磁盘上存储数据的集合,在物理上表现为数据⽂件、⽇志⽂件和控制⽂件等。
在逻辑上以表空间形式存在。
必须⾸先创建数据库,然后才能⽤Oracle。
可以在Database Configuation Assistant上创建。
2.全局数据库名。
⽤于区分⼀个数据库的标识。
它由数据库名称和域名构成,类似⽹络中的域名,使数据库的命名在整个⽹络环境中唯⼀。
3.数据库实例。
每个启动的数据库都对应⼀个数据库实例,由这个实例来访问数据库中的数据。
4.表空间。
每个数据库都是由若⼲个表空间构成的,⽤户在数据库中建⽴的所有内容都被存储到表空间中。
⼀个表空间可以由多个数据⽂件组成,但⼀个数据⽂件只能属于⼀个表空间。
5.数据⽂件。
扩展名是.dbf,是⽤于存储数据库数据的⽂件。
⼀个数据⽂件中可能存储很多个表的数据,⽽⼀个表的数据也可以存放在多个数据⽂件中。
数据⽂件和数据库表不存在⼀对⼀的关系。
6.控制⽂件。
技展名.ctl,是⼀个⼆进制⽂件。
控制⽂件是数据库启动及运⾏所必需的⽂件。
存储数据⽂件和⽇志⽂件的名称和位置。
Oracle 11g默认包含三个控制⽂件。
7.⽇志⽂件。
扩展名.log,它记录了数据的所有更改信息,并提供了⼀种数据恢复机制,确保在系统崩溃或其他意外出现后重新恢复数据库。
oracle tns12592解决方法 -回复
oracle tns12592解决方法-回复Oracle TNS-12592解决方法在使用Oracle数据库时,有时你可能会遇到一个TNS-12592错误。
这个错误通常表示无法连接到Oracle数据库实例。
下面将为你详细介绍如何逐步解决这个问题。
1. 理解TNS-12592错误TNS-12592错误指示了一个网络连接问题,它发生在客户端(例如,SQL*Plus)试图连接到Oracle数据库实例时。
这个错误可能是因为无法在网络上找到数据库服务,或者是因为连接请求被拒绝。
2. 确保TNS Listener正在运行首先,你需要检查Oracle数据库服务器上的TNS Listener是否正在运行。
TNS Listener负责接收来自客户端的连接请求,并将其路由到相应的数据库实例。
如果TNS Listener没有运行,客户端将无法与数据库实例建立连接。
你可以通过以下步骤检查TNS Listener的状态:- 打开命令提示符或终端窗口。
- 输入以下命令,以检查TNS Listener的状态:bashlsnrctl status如果TNS Listener正在运行,你将在输出中看到相应的信息。
如果TNS Listener没有运行,你可以使用以下命令启动它:bashlsnrctl start这将启动TNS Listener,并允许客户端连接到数据库实例。
3. 检查Oracle数据库实例名在连接到Oracle数据库时,需要提供正确的数据库实例名。
确保你正在使用正确的实例名,并将其配置在TNS连接描述符(TNSNAMES.ORA 文件)中。
TNS连接描述符是一个文本文件,它包含了数据库实例的网络连接信息。
它通常位于ORACLE_HOME/network/admin目录下。
打开这个文件,确保其中包含正确的实例名和对应的连接信息。
例如,假设你尝试连接到一个名为"ORCL"的数据库实例,你的TNS连接描述符中将有一个类似于以下内容的条目:bashORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))确保你的实例名与TNS连接描述符中的实例名一致。
C#Oracle数据库操作类实例详解
C#Oracle数据库操作类实例详解本⽂所述为C#实现的Oracle数据库操作类,可执⾏超多常⽤的Oracle数据库操作,包含了基础数据库连接、关闭连接、输出记录集、执⾏Sql语句,返回带分页功能的dataset 、取表⾥字段的类型和长度等,同时还有哈稀表⾃动插⼊数据库等⾼级任务。
需要特别指出的是:在执⾏SQL语句,返回 DataReader之前⼀定要先⽤.read()打开,然后才能读到数据,再⽤hashTable对数据库进⾏insert,update,del操作,注意此时只能⽤默认的数据库连接"connstr"。
本⽂所述为C#实现的Oracle数据库操作类,可执⾏超多常⽤的Oracle数据库操作,包含了基础数据库连接、关闭连接、输出记录集、执⾏Sql语句,返回带分页功能的dataset 、取表⾥字段的类型和长度等,同时还有哈稀表⾃动插⼊数据库等⾼级任务。
需要特别指出的是:在执⾏SQL语句,返回 DataReader之前⼀定要先⽤.read()打开,然后才能读到数据,再⽤hashTable对数据库进⾏insert,update,del操作,注意此时只能⽤默认的数据库连接"connstr"。
完整的C# Oracle数据库类实例代码如下:using System;using System.Data;using System.Data.OracleClient;using System.Collections;using System.Reflection;namespace MyOraComm{/// ConnDbForOracle 的摘要说明。
public class ConnForOracle{protected OracleConnection Connection;private string connectionString;public ConnForOracle(){string connStr;connStr = System.Configuration.ConfigurationSettings.AppSettings["connStr"].ToString();connectionString = connStr;Connection = new OracleConnection(connectionString);}#region 带参数的构造函数/// 带参数的构造函数/// 数据库联接字符串public ConnForOracle(string ConnString){string connStr;connStr = System.Configuration.ConfigurationSettings.AppSettings[ConnString].ToString();Connection = new OracleConnection(connStr);}#endregion#region 打开数据库/// 打开数据库public void OpenConn(){if(this.Connection.State!=ConnectionState.Open)this.Connection.Open();}#endregion#region 关闭数据库联接/// 关闭数据库联接public void CloseConn(){if(Connection.State==ConnectionState.Open)Connection.Close();}#endregion#region 执⾏SQL语句,返回数据到DataSet中/// 执⾏SQL语句,返回数据到DataSet中/// sql语句/// ⾃定义返回的DataSet表名/// 返回DataSetpublic DataSet ReturnDataSet(string sql,string DataSetName){DataSet dataSet=new DataSet();OpenConn();OracleDataAdapter OraDA=new OracleDataAdapter(sql,Connection);OraDA.Fill(dataSet,DataSetName);// CloseConn();return dataSet;}#endregion/// Sql语句/// 每页显⽰记录数/// <当前页/param>/// 返回dataset表名/// 返回DataSetpublic DataSet ReturnDataSet(string sql,int PageSize,int CurrPageIndex,string DataSetName){DataSet dataSet=new DataSet();OpenConn();OracleDataAdapter OraDA=new OracleDataAdapter(sql,Connection);OraDA.Fill(dataSet,PageSize * (CurrPageIndex - 1), PageSize,DataSetName);// CloseConn();return dataSet;}#endregion#region 执⾏SQL语句,返回 DataReader,⽤之前⼀定要先.read()打开,然后才能读到数据/// 执⾏SQL语句,返回 DataReader,⽤之前⼀定要先.read()打开,然后才能读到数据/// sql语句/// 返回⼀个OracleDataReaderpublic OracleDataReader ReturnDataReader(String sql){OpenConn();OracleCommand command = new OracleCommand(sql,Connection);return command.ExecuteReader(mandBehavior.CloseConnection);}#endregion#region 执⾏SQL语句,返回记录总数数/// 执⾏SQL语句,返回记录总数数/// sql语句/// 返回记录总条数public int GetRecordCount(string sql){int recordCount = 0;OpenConn();OracleCommand command = new OracleCommand(sql,Connection);OracleDataReader dataReader = command.ExecuteReader();while(dataReader.Read()){recordCount++;}dataReader.Close();//CloseConn();return recordCount;}#endregion#region 取当前序列,条件为seq.nextval或seq.currval////// 取当前序列public decimal GetSeq(string seqstr){decimal seqnum = 0;string sql="select "+seqstr+" from dual";OpenConn();OracleCommand command = new OracleCommand(sql,Connection);OracleDataReader dataReader = command.ExecuteReader();if(dataReader.Read()){seqnum=decimal.Parse(dataReader[0].ToString());}dataReader.Close();// CloseConn();return seqnum;}#endregion#region 执⾏SQL语句,返回所影响的⾏数/// 执⾏SQL语句,返回所影响的⾏数public int ExecuteSQL(string sql){int Cmd=0;OpenConn();OracleCommand command = new OracleCommand(sql,Connection);try{Cmd =command.ExecuteNonQuery(); //ExecuteNonQuery⽅法,返回受影响的⾏数,适⽤于insert/update/delete }catch{}}return Cmd;}#endregion//==⽤hashTable对数据库进⾏insert,update,del操作,注意此时只能⽤默认的数据库连接"connstr"#region 根据表名及哈稀表⾃动插⼊数据库⽤法:Insert("test",ht)public int Insert(string TableName,Hashtable ht){OracleParameter[] Parms=new OracleParameter[ht.Count];IDictionaryEnumerator et = ht.GetEnumerator();DataTable dt=GetTabType(TableName);System.Data.OracleClient.OracleType otype;int size=0;int i=0;while ( et.MoveNext() ) // 作哈希表循环{GetoType(et.Key.ToString().ToUpper(),dt,out otype,out size);System.Data.OracleClient.OracleParameter op=MakeParam(":"+et.Key.ToString(),otype,size,et.Value.ToString()); Parms[i]=op; // 添加SqlParameter对象i=i+1;}string str_Sql=GetInsertSqlbyHt(TableName,ht); // 获得插⼊sql语句int val=ExecuteNonQuery(str_Sql,Parms);return val;}#endregion#region 根据相关条件对数据库进⾏更新操作⽤法:Update("test","Id=:Id",ht);public int Update(string TableName,string ht_Where, Hashtable ht){OracleParameter[] Parms=new OracleParameter[ht.Count];IDictionaryEnumerator et = ht.GetEnumerator();DataTable dt=GetTabType(TableName);System.Data.OracleClient.OracleType otype;int size=0;int i=0;// 作哈希表循环while ( et.MoveNext() ){GetoType(et.Key.ToString().ToUpper(),dt,out otype,out size);System.Data.OracleClient.OracleParameter op=MakeParam(":"+et.Key.ToString(),otype,size,et.Value.ToString()); Parms[i]=op; // 添加SqlParameter对象i=i+1;}string str_Sql=GetUpdateSqlbyHt(TableName,ht_Where,ht); // 获得插⼊sql语句int val=ExecuteNonQuery(str_Sql,Parms);return val;}#endregion#region del操作,注意此处条件个数与hash⾥参数个数应该⼀致⽤法:Del("test","Id=:Id",ht)public int Del(string TableName,string ht_Where,Hashtable ht){OracleParameter[] Parms=new OracleParameter[ht.Count];IDictionaryEnumerator et = ht.GetEnumerator();DataTable dt=GetTabType(TableName);System.Data.OracleClient.OracleType otype;int i=0;int size=0;// 作哈希表循环while ( et.MoveNext() ){GetoType(et.Key.ToString().ToUpper(),dt,out otype,out size);System.Data.OracleClient.OracleParameter op=MakeParam(":"+et.Key.ToString(),et.Value.ToString());Parms[i]=op; // 添加SqlParameter对象i=i+1;}string str_Sql=GetDelSqlbyHt(TableName,ht_Where,ht); // 获得删除sql语句int val=ExecuteNonQuery(str_Sql,Parms);return val;}#endregion// ========上⾯三个操作的内部调⽤函数==================#region 根据哈稀表及表名⾃动⽣成相应insert语句(参数类型的)/// 根据哈稀表及表名⾃动⽣成相应insert语句/// 要插⼊的表名/// 哈稀表/// 返回sql语句int i=0;int ht_Count=ht.Count; // 哈希表个数IDictionaryEnumerator myEnumerator = ht.GetEnumerator();string before="";string behide="";while ( myEnumerator.MoveNext() ){if (i==0){before="("+myEnumerator.Key;}else if (i+1==ht_Count){before=before+","+myEnumerator.Key+")";}else{before=before+","+myEnumerator.Key;}i=i+1;}behide=" Values"+before.Replace(",",",:").Replace("(","(:");str_Sql="Insert into "+TableName+before+behide;return str_Sql;}#endregion#region 根据表名,where条件,哈稀表⾃动⽣成更新语句(参数类型的)public static string GetUpdateSqlbyHt(string Table,string ht_Where,Hashtable ht){string str_Sql="";int i=0;int ht_Count=ht.Count; // 哈希表个数IDictionaryEnumerator myEnumerator = ht.GetEnumerator();while ( myEnumerator.MoveNext() ){if (i==0){if (ht_Where.ToString().ToLower().IndexOf((myEnumerator.Key+"=:"+myEnumerator.Key).ToLower())==-1) {str_Sql=myEnumerator.Key+"=:"+myEnumerator.Key;}}else{if (ht_Where.ToString().ToLower().IndexOf((":"+myEnumerator.Key+" ").ToLower())==-1){str_Sql=str_Sql+","+myEnumerator.Key+"=:"+myEnumerator.Key;}}i=i+1;}if (ht_Where==null || ht_Where.Replace(" ","")=="") // 更新时候没有条件{str_Sql="update "+Table+" set "+str_Sql;}else{str_Sql="update "+Table+" set "+str_Sql+" where "+ht_Where;}str_Sql=str_Sql.Replace("set ,","set ").Replace("update ,","update ");return str_Sql;}#endregion#region 根据表名,where条件,哈稀表⾃动⽣成del语句(参数类型的)public static string GetDelSqlbyHt(string Table,string ht_Where,Hashtable ht){string str_Sql="";int i=0;int ht_Count=ht.Count; // 哈希表个数IDictionaryEnumerator myEnumerator = ht.GetEnumerator();while ( myEnumerator.MoveNext() ){if (i==0){if (ht_Where.ToString().ToLower().IndexOf((myEnumerator.Key+"=:"+myEnumerator.Key).ToLower())==-1) {str_Sql=myEnumerator.Key+"=:"+myEnumerator.Key;}if (ht_Where.ToString().ToLower().IndexOf((":"+myEnumerator.Key+" ").ToLower())==-1){str_Sql=str_Sql+","+myEnumerator.Key+"=:"+myEnumerator.Key;}}i=i+1;}if (ht_Where==null || ht_Where.Replace(" ","")=="") // 更新时候没有条件{str_Sql="Delete "+Table;}else{str_Sql="Delete "+Table+" where "+ht_Where;}return str_Sql;}#endregion#region ⽣成oracle参数////// ⽣成oracle参数/// 字段名/// 数据类型/// 数据⼤⼩/// 值public static OracleParameter MakeParam(string ParamName,System.Data.OracleClient.OracleType otype,int size,Object Value) {OracleParameter para=new OracleParameter(ParamName,Value);para.OracleType=otype;para.Size=size;return para;}#endregion#region ⽣成oracle参数public static OracleParameter MakeParam(string ParamName,string Value){return new OracleParameter(ParamName, Value);}#endregion#region 根据表结构字段的类型和长度拼装oracle sql语句参数public static void GetoType(string key,DataTable dt,out System.Data.OracleClient.OracleType otype,out int size){DataView dv=dt.DefaultView;dv.RowFilter="column_name='"+key+"'";string fType=dv[0]["data_type"].ToString().ToUpper();switch (fType){case "DATE":otype= OracleType.DateTime;size=int.Parse(dv[0]["data_length"].ToString());break;case "CHAR":otype= OracleType.Char;size=int.Parse(dv[0]["data_length"].ToString());break;case "LONG":otype= OracleType.Double;size=int.Parse(dv[0]["data_length"].ToString());break;case "NVARCHAR2":otype= OracleType.NVarChar;size=int.Parse(dv[0]["data_length"].ToString());break;case "VARCHAR2":otype= OracleType.NVarChar;size=int.Parse(dv[0]["data_length"].ToString());break;default:otype= OracleType.NVarChar;size=100;break;}}#endregion#region动态取表⾥字段的类型和长度,此处没有动态⽤到connstr,是默认的!by/⽂少public System.Data.DataTable GetTabType(string tabnale){string sql="select column_name,data_type,data_length from all_tab_columns where table_name='"+tabnale.ToUpper()+"'";OpenConn();return (ReturnDataSet(sql,"dv")).Tables[0];public int ExecuteNonQuery(string cmdText, params OracleParameter[] cmdParms) {OracleCommand cmd = new OracleCommand();OpenConn();cmd.Connection=Connection;mandText = cmdText;if (cmdParms != null){foreach (OracleParameter parm in cmdParms)cmd.Parameters.Add(parm);}int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();//conn.CloseConn();return val;}#endregion}}。
navicat 建oracle 实例
navicat 建oracle 实例摘要:一、Navicat 简介二、Oracle 数据库实例概述三、使用Navicat 创建Oracle 数据库实例四、Navicat 在Oracle 数据库管理中的应用五、总结正文:avicat 是一款非常受欢迎的数据库管理工具,它支持多种数据库,包括Oracle。
Oracle 数据库实例是一个数据库的完整副本,它具有自己的数据文件、日志文件和控制文件。
使用Navicat 创建Oracle 数据库实例可以帮助用户更轻松地管理和操作数据库。
首先,让我们了解一下Navicat。
Navicat 是一款功能强大的数据库管理工具,它支持多种数据库,包括Oracle、MySQL、SQL Server 等。
它提供了丰富的功能,包括数据建模、查询、数据同步、备份等,让用户可以更方便地管理和操作数据库。
接下来,我们来了解一下Oracle 数据库实例。
Oracle 数据库实例是一个数据库的完整副本,它具有自己的数据文件、日志文件和控制文件。
每个数据库实例都是独立的,它们可以拥有不同的数据和配置。
在创建数据库实例时,用户需要指定实例的名称、存储选项、日志选项等。
现在,让我们来看一下如何使用Navicat 创建Oracle 数据库实例。
首先,打开Navicat,选择“Oracle”数据库连接,然后点击“新建”按钮。
在弹出的窗口中,输入数据库实例的名称、存储选项、日志选项等信息,然后点击“确定”按钮。
Navicat 会自动创建数据库实例,并显示在列表中。
一旦创建了Oracle 数据库实例,用户可以使用Navicat 进行各种操作,如创建表、查询数据、备份数据库等。
Navicat 提供了丰富的功能,让用户可以更方便地管理和操作数据库。
总之,Navicat 是一个功能强大的数据库管理工具,它支持多种数据库,包括Oracle。
使用Navicat 创建Oracle 数据库实例可以帮助用户更轻松地管理和操作数据库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
System.out.println(toOracle);
String userName =username_input;
String pwds = password_input;
con = DriverManager.getConnection(toOracle, userName, pwds);
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
judge=true;
}
PreparedStatement ps = null;
ResultSet rs = null;
ResultSetMetaData rsmd;
try {
ps = JdbcOracle.con.prepareStatement(temp);
ername_input.getText(),upper.password_input.getText());
}
});
lower.input.addActionListener(new ActionListener() {
@Override
for (int i = 1; i <= number; i++) {
String tempagain = rs.getString(rsmd
.getColumnName(i));
currentrows.addElement(tempagain);
JLabel port = new JLabel("PORT:");
JLabel db = new JLabel("DB Name:");
JLabel username=new JLabel("USERNAME:");
JLabel password=new JLabel("PASSWORD:");
import java.sql.ResultSetMetaData;
import java.util.Vector;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
setLayout(new GridLayout(3, 0,0,5));
add(upper);
add(lower);
add(jsb);
setSize(400, 400);
lower.connect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(JdbcOracle.con==null){
rmation.setText("请先连接数据库!");
return;
}
String temp = Lower.input.getText().trim();
System.out.println(temp);
if (ps.execute()) {
System.out.println("查询");
rs = ps.getResultSet();
rsmd = rs.getMetaData();
}
} catch (Exception ex) {
rmation.setText("操作数据库失败!");
}
}
});
}
public void paint(Graphics g){
Dimension d=size();
Lower lower = new Lower();
Upper upper = new Upper();
JTable jt = new JTable();
JScrollPane jsb = new JScrollPane();
Visualize() {
setTitle("Demo");
Border etched=BorderFactory.createEtchedBorder();
jsb.setBorder(etched);
add(jsb);
validate();
Lower.input.requestFocus();
int number = rsmd.getColumnCount();
Vector colums = new Vector();
Vector rows = new Vector();
for (int i = 1; i <= number; i++) {
import java.sql.Statement;
import javax.swing.*;
import javax.swing.border.Border;
public class OracleConnectionTool {
public static void main(String[] args) {
g.drawRect(0,0,d.width-1,d.height-1);
}
public Insets insets() {
return new Insets(35, 5, 5, 5); }
}
class Upper extends JPanel {
JLabel ip = new JLabel("IP:");
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.TextField;
import java.awt.event.ActionEvent;
rmation.setText("操作数据库成功!");
}
else {
System.out.println("执行");
Lower.input.requestFocus();
rmation.setText("操作数据库成功!");
colums.addElement(rsmd.getColumnName(i));
}
// rows.addElement(colums);
if(judge==false){
while (rs.next()) {
Vector currentrows = new Vector();
}
rows.addElement(currentrows);
}
}
remove(jsb);
jt = new JTable(rows, colums);
jsb = new JScrollPane(jt);
@Override
public void actionPerformed(ActionEvent e) {
JdbcOracle jd = new JdbcOracle(upper.ip_input.getText(),
upper.port_input.getText(), upper.db_input.getText(),
static JTextField username_input = new JTextField("scott");
static JPasswordField password_input = new JPasswordField("tiger");
Upper() {
Border etched=BorderFactory.createEtchedBorder();
} catch (Exception e) {
rmation.setText("数据库连接失败!");
}
}
public static id main(String[] args) {
}
}
class Visualize extends JFrame {
Visualize vis = new Visualize();
vis.setVisible(true);
Lower.input.requestFocus();
vis.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class JdbcOracle {
Lower.input.requestFocus();
rmation.setText("");
rmation.setText("数据库连接成功!");
// System.out.println(Lower.input.getText());
temp=temp.substring(0,temp.length()-1);