Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构
Oracle安装
Navicat for Oracle配置
Oracle JDBC连接(增删改查)
Oracle安装
环境windows 7 64位
安装版本:oracle 11g(64位)
下载地址
- 点击oracle安装文件,根据其默认的模式进行安装。
- Oracle--windows环境
这个环境配置与java的环境配置类似,计算机右击-》高级系统设置-》高级-》环境变量-》在系统变量中新建:
(1) 配置ORACLE_HOME,
变量名 ORACLE_HOME
变量值 E:\Oracle\product\11.2.0\dbhome_1
说明:这里的变量值是你自己安装的Oracle数据库的安装路径,路径中你会找到project然后依次找到dbhome_1,然后将路径复制到环境变量值中。
(2)配置TNS_ADMIN
变量名 TNS_ADMIN
变量值 E:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
说明:这里配置的是Oracle的监听,监听配置不正确会出问题的。
(3)配置 NLS_LAN。
变量名 NLS_LANG。
变量值 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
说明:建议大家直接复制上面的变量值。这里的意思就是统一编码格式。(GBK)
http://jingyan.baidu.com/article/e73e26c0c20f1a24adb6a73e.html
3. 监听配置
(1)右击“计算机”,打开“管理”,点开左边菜单“服务与进程”下的“服务”,手动启动“OracleOraDb11g_home1TNSListener”
(2)点击net manager,在本地》监听程序》LISTENER,添加监听机器的ip地址
(3)在窗口右栏下拉选项中的“数据库服务”,点击添加数据库按钮,添加全局数据库名和SID
http://www.cnblogs.com/kane1990/p/OracleNetManager.html
4.数据库创建,按默认配置,定义数据库的全局变量
http://www.it165.net/database/html/201306/3974.html
- SQL Developer配置
启动SQL Developer可能会出现:
原因:oracle 11g中安装的Oracle SQL Developer是32位的,而我们现在给他指定的java.exe却是64位的,所以会出现这种错误。
解决方法:oracle11g自带sqldeveloper是32位的,可以再官网下载64位的sqldeveloper替换掉dbhome_1下的sqldeveloper文件夹。
- 登陆及命令
(1)本地登陆:
C:\users\administrator>sqlplus / as sysdba //以sysdba的权限登录
C:\users\administrator>sqlplus / as sysdba //以sysdba的权限登录
SQL>conn user_name/password; //连接用户
SQL>show user; //显示当前用户
SQL>startup force; //启动
SQL>shutdown immediate; //关闭
SQL> grant dba to scott; //将sysdba权限授予scott用户
SQL> revoke dba from scott; //收回scott权限
SQL> create user 用户名 identified by "密码"; //创建用户
(2)远程登陆:通过端口登陆
sqlplus user/password@ip:port/service_name
开启监听器:计算机——管理——服务——oracle*Listener
程序——Oracle——Net Manager
(3)登录数据库并创建用户
C:\users\administrator>sqlplus / as sysdba //以sysdba的权限登录
>conn sys@orcl as sysdba (不用口令)
>create user kang identified by "123456";
> grant dba to kang; //将sysdba权限授予scott用户
>conn kang/123456;
>sqlplus kang/123456d@192.168.0.110:1521/orcl


Navicat for Oracle配置
Navicat破解版32位
下载地址:http://download.csdn.net/detail/streetmilk/5701651
下载插件:
instantclient-basic-nt-12.1.0.1.0.zip
instantclient-sqlplus-win32-11.2.0.1.0.zip
解压到navicat安装目录,打开navicat
工具——>选项——>OCI
分别为:
D:\Navicat Premium\instantclient_12_1\oci.dll
D:\Navicat Premium\instantclient_12_1\instantclient-sqlplus-win32-11.2.0.1.0\instantclient_11_2\sqlplus.exe
连接oracle:
连接上即可,如果连不上可能是端口和权限的问题。
Oracle JDBC连接
在navicat中测试成功后,再用jdbc连接
通用数据连接:以后碰到mysql、sqlserver、informix都是类似的
sqlplus kang/123456d@192.168.0.110:1521/orcl
其中数据库名称对应service_name:orcl ,数据库主机对应计算机名(可选),IP和port对应IP地址和端口,用户密码必选,SID和service_name一样
获取连接
package com.hidata.generalDBconfig; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* @author 刘兀
* @category 数据库连接 针对数据源的不同,获取相关参数后构造连接。
*
*/
public class OracleDBConnection { private static Connection conn = null; /*创建数据库连接方法
public synchronized static Connection getConnection()
{
try
{
Class.forName(JDriver);//装载数据库驱动类
}
catch(ClassNotFoundException e)
{
e.getStackTrace();
}
System.out.println("url " + url);
System.out.println("user " + user);
System.out.println("password " + password);
try{
conn = DriverManager.getConnection(url, user, password);
}catch (Exception e) {
e.printStackTrace();
System.out.println("加载数据库引擎失败");
System.exit(0);
}
//System.out.println("数据库驱动成功");
return conn;
} //conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:abc", "wu", "123456");
/*创建连接Oracle方法*/
public synchronized static Connection getConnection()
{
String JDriver = "oracle.jdbc.driver.OracleDriver";
try
{
Class.forName(JDriver);//装载数据库驱动类
}
catch(ClassNotFoundException e)
{
e.getStackTrace();
} String url = "jdbc:oracle:thin:@192.168.0.101:1521:abc";
String user="wu";
String password="123456"; System.out.println("url " + url);
System.out.println("user " + user);
System.out.println("password " + password);
try{
conn = DriverManager.getConnection(url, user, password);
}catch (Exception e) {
e.printStackTrace();
System.out.println("加载数据库引擎失败");
System.exit(0);
}
System.out.println("数据库驱动成功");
return conn;
} //关闭数据库连接方法
public synchronized static void closeConection(Connection conn,
Statement st, ResultSet rs) { if (rs != null) {
try {
rs.close();
rs = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st != null) {
try {
st.close();
st = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
conn = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void main(String args[]){
OracleDBConnection.getConnection();
} }
SQL操作
package com.util.DBtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import com.hidata.generalDBconfig.OracleDBConnection;
import com.util.entity.Oracle_Table_Structure; public class JDBC_Test {
// 创建静态全局变量
static Connection conn;
static Statement st;
public static void main(String[] args) {
// create();
// insert(); //插入
// update(); //更新
// delete(); //删除
// query(); //查询
String tableName = "Kang";
List<Oracle_Table_Structure> list = queryTableStruct(tableName);//查询表结构
}
/*查询表结构*/
public static List<Oracle_Table_Structure> queryTableStruct(String tableName) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; List<Oracle_Table_Structure> result = new ArrayList<Oracle_Table_Structure>(); conn =OracleDBConnection.getConnection(); // 首先要获取连接,即连接到数据库
try {
String sql = "select * from user_tab_columns where Table_Name='Kang'";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Oracle_Table_Structure struct = new Oracle_Table_Structure();
struct.setTable_name(rs.getString("Table_name"));
struct.setData_type(rs.getString("Data_type"));
struct.setData_length(rs.getString("Data_length"));
struct.setColumn_name(rs.getString("Column_name"));
struct.setColumn_id(rs.getString("Column_id"));
struct.setChar_length(rs.getString("Char_length"));
System.out.println(struct.getTable_name()+" " + struct.getColumn_name() + " " + struct.getData_type() + " "+ struct.getData_length());
result.add(struct);
}
OracleDBConnection.closeConection(conn, ps, rs);
} catch (SQLException e) {
System.out.println("查询数据失败");
}
return result; } /* 创建表*/
public static void create() {
// TODO Auto-generated method stub
conn =OracleDBConnection.getConnection();
String sql = "create table kangtest(id number(9) not null primary key,name varchar2(40) not null)"; // 插入数据的sql语句
try {
st = (Statement) conn.createStatement();
st.executeUpdate(sql);
conn.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("创建表成功");
} /* 插入记录*/
public static void insert() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; conn =OracleDBConnection.getConnection();
int num = 0;
try {
String sql = "INSERT INTO kangtest(id, name)"
+ " VALUES (?,?)";
ps = conn.prepareStatement(sql);
ps.setLong(1, num);
ps.setString(2, "wufan");
ps.executeUpdate();
System.out.println("insert success");
OracleDBConnection.closeConection(conn, ps, rs);
} catch (SQLException e) {
System.out.println("insert failed" + e.getMessage());
}
} /* 更新记录*/
public static void update() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; conn =OracleDBConnection.getConnection();
int num = 0;
try {
String sql = "update kangtest set name='liuping' where id = '1'";
ps = conn.prepareStatement(sql);
ps.executeUpdate();
System.out.println("update success");
conn.close();
OracleDBConnection.closeConection(conn, ps, rs);
} catch (SQLException e) {
System.out.println("update failed" + e.getMessage());
}
} /* 查询记录*/
public static void query() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; conn =OracleDBConnection.getConnection(); // 首先要获取连接,即连接到数据库
try {
String sql = "select * from staff";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
int name = rs.getInt("name");
System.out.println(id + " " + name);
}
OracleDBConnection.closeConection(conn, ps, rs);
} catch (SQLException e) {
System.out.println("查询数据失败");
}
} /* 删除记录*/
public static void delete() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; conn =OracleDBConnection.getConnection();
try {
String sql = "delete from staff where name = 'lili'";
st = (Statement) conn.createStatement();
int count = st.executeUpdate(sql); OracleDBConnection.closeConection(conn, ps, rs);
} catch (SQLException e) {
System.out.println("删除数据失败");
}
}
}
获取表主键
select * from user_cons_columns where constraint_name=(select constraint_name from user_constraints where table_name ='TEST' and constraint_type ='P'); )
Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构的更多相关文章
- MySql 、Oracle 获取表结构和字段信息
1.MySql获取表结构信息 SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA ...
- 【Navicat】获取表结构的DDL语句以及获取更新表字段的操作的DDL
1.获取表结构的DDL语句 2.获取修改表结构某一字段的DDL语句 设计表-修改表字段(记住不要保存)-SQL预览
- Greenplum获取表结构
最近在折腾greenplum,遇到一个蛋疼的问题,那就是获取表结构,也就是建表语句.大家都知道在MySQL里面是非常easy的,show create table table_name 就搞定了,在g ...
- Sql中获取表结构(字段名称,类型,长度,说明)
Sql中获取表结构(字段名称,类型,长度,说明) SELECT TableName = OBJECT_NAME(c.object_id), ColumnsName = c.name, Descript ...
- Oracle 获取表结构信息
通过Oracle中的user_tab_cols, user_col_comments, user_constraints, user_cons_columns表联合查询. user_tab_cols用 ...
- Oracle安装和配置Oracle数据库快速指南
Oracle安装12C要求参考文档 汇总 中文版:在 Unix AIX,HP-UX,Linux,Solaris 和 MS Windows 操作系统上安装和配置 Oracle 数据库(RDBMS)的要求 ...
- 【Oracle安装卸载】oracle卸载
Oracle卸载比较麻烦,不能简单卸载就完成了,有时没有卸载完整,下次安装不能很好的安装: 当然Oracle卸载也没有那么难,只是步骤比较多.Oracle10g还是Oracle11g卸载步骤都是一样的 ...
- Oracle安装过程中Oracle Database Configuration Assistant失败问题解决
今天在安装Oracle的过程中出现了oracle Database Configuration Assistant问题,我解决该问题的方法是将我的计算机用户名更改了一下,改成了pc1.之后再在orac ...
- Oracle安装部署之 oracle 11g install linux
#!/bin/bash#Purpose:Create and config oracle install.#Usage:Log on as the superuser('root') #1.creat ...
随机推荐
- ssm web.xml配置解析
以下为web.xml的配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi=& ...
- EL表达式和JSTL核心标签库
1 EL表达式 1.1 EL的概述 EL,全名为Expression Language. 主要作用: ①EL表达式主要用于替换jsp页面中的脚本表达式,以便于从各种类型的web域中检索java对象(某 ...
- 【Shell脚本学习指南笔记】重定向文件描述符 2>&1
如: make > results 2>&1 重定向 > results让文件描述符1(标准输出)作为文件results,接下来的重定向2>&1有两个部分.2& ...
- 蓝桥杯练习系统— 算法训练 Beaver's Calculator
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0".它非常特别,并且被计划使用在各种各样 ...
- 04_Python Data Structures
Python数据结构 数据结构:数据个体的存储 和 数据个体与个体之间关系的存储. Python中有:1.序列 2.映射类型 3.无序集合 序列:成员有序排列.通过下标偏移量进行访问.元组.字符串.列 ...
- Linux history命令
history命令主要用于显示历史命令, 重新执行历史命令. Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_ ...
- 51NOD 1821 最优集合 [并查集]
传送门 题意: 一个集合S的优美值定义为:最大的x,满足对于任意i∈[1,x],都存在一个S的子集S',使得S'中元素之和为i. 给定n个集合,对于每一次询问,指定一个集合S1和一个集合S2,以及一个 ...
- Android开发常用的插件及工具
1.GitHub,这个不管是做安卓还是其他,只要是开发就必上的网站,也是天朝没有墙掉为数不多的网站 2.Stack OverFlow,这个和上面一样,国外非常著名的问答网站,在上面基本上很多问题都可以 ...
- MessagePack简析
一.MessagePack是什么 先看官方的定义:MessagePack是一种高效的二进制序列化格式.它允许您像JSON一样在多个语言之间交换数据.但是,它更快并且更小. 从官方定义中,可以有如下的结 ...
- 几个重要的shell命令:diff patch tar find grep
diff diir_1.0/ dir_2.0/ -urNB > dir_2.0.patch u:union以合并的格式来输出文件的差异信息 r:递归的对比所有的子目录下的文件 U:将不存在的文件 ...