JDBC连接Oracle的几个例子

1、批量执行

package com.oracle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class pichuliConnection {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/ORCL","scott","123456");
    PreparedStatement ps=null;
	try {
		String sql="update emp set sal=sal+100 where empno=?";
		ps=conn.prepareStatement(sql);
		ps.setInt(1,7499);        //参照的是emp表
		ps.addBatch();      
		
		ps.setInt(1,7369);
		ps.addBatch();
		
		int[] ret=ps.executeBatch();      //executeBatch()返回的值是一个int类型
		System.out.println("修改成功");
	} catch (Exception e) {
		System.out.println("出错..."+e.getMessage());
	}
	finally {
		if(ps!=null)
			ps.close();
		if(conn!=null)
			conn.close();
	}
	
    }
}

 

2、使用事物转账

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class accountConnection {
  public static void main(String[] args) throws ClassNotFoundException, SQLException {
	  Class.forName("oracle.jdbc.driver.OracleDriver");
  	//获取连接
  Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/ORCL","scott","123456");
  conn.setAutoCommit(false);     //因为在默认状态下,执行成功的语句会默认的提交,所以事先设置为不自动提交。
  PreparedStatement ps=null;
  try {
	String sql1="update account set balance=balance+1000 where id=?";
	  String sql2="update account set balance=balance-1000 where id=?";
	  ps=conn.prepareStatement(sql1);
	  ps.setString(1, "111111");
	  int ret1=ps.executeUpdate();
	  
	  ps=conn.prepareStatement(sql2);
	  ps.setString(1, "222222");
	  int ret2=ps.executeUpdate();
	  conn.commit();         // 如果两个语句都执行成功,就让语句提交,
	  System.out.println("chenggong");
} catch (Exception e) {
	conn.rollback();       //否则就让他回滚到执行2条语条前的状态   
	System.out.println("shibai"+e.getMessage());
}finally {
	if(ps!=null) {
		ps.close();
	}
	if(conn!=null) {
		conn.close();
	}
}
  
}
}

事物处理在ORACLE数据库中

3、sql注入登录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自己写的数据库装载工具,平时工作中用于装载大文本文件到数据库表,也能直接装载excel,不过excel只能使用第一个sheet,且不支持合并的单元格。 jdk要求版本1.6及以上。 使用方法: java -jar lynload.jar,即可看到中文命令行参数(unix下需设置gbk字符集环境才能看中文,没gbk环境不能看中文,但不影响导入数据)。 特色: 1.同时支持多个数据库. 2.支持任意字符作为列分隔符,什么竖线逗号或者十六进制字符及任意组合字符都行 3.支持任意字符作为每行分隔符,例如\r,\r\n,或者十六进制字符或任意指定的字符(例如可实现把整个日志文件装入数据库的单个clob字段). 4.支持任意大小的文本,装入几十GB都试过没问题。 5.明确到每一行的错误信息.(装载时会生成一个.err文件,里面有装载出错的每一行错误原因(少字段还是格式不符合要求等等)。 6.可以作为库使用在jsp等后台直接调用,将整个jar作为库,使用 OraLoad类的int ProcLoad(Connection in_conn, String args[])函数就可以实现类似功能了。例如 new OraLoad.ProcLoad( null, "-u test -p testpwd -i 127.0.0.1 -s ora10 -f test.txt -t tmp_test -c , -e gbk"); 具体参数如下: Usage: -db database type 1或者oracle, oracle数据库,不区分大小写,默认1,需java1.5及以上版本 2或者sqlserver, mssqlserver数据库,不区分大小写,需java1.6及以上版本 3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者sybase, sybase数据库,不区分大小写(暂未测试) -url 数据库连接的url.默认空字符 如果有url参数,则-i-p-s-dn参数全无效。 如果没有url参数,则必须提供-i-p-s参数,程序里面好拼凑url 例如: jdbc:sqlserver://localhost:1433; DatabaseName=sample -i ip address:port ip地址和端口,中间用冒号隔开 url不为空则此参数无效 如果不带端口,系统根据数据库类型采用默认端口 oracle数据库: 默认为1521端口 sqlserver数据库: 默认为1433端口 mysql数据库: 默认为3306端口 sybase数据库: 默认为5000端口 例如: 127.0.0.1:1521 例如: 192.168.0.1 -s serviceid or database name oracle服务名或者其他数据库的数据库名 url不为空则此参数无效 -u username 用户名,必输 -p Password 登录密码,必输 -t TableName 要插入的表名,可以带用户,必输 例如: scott.emp 或者 emp都行 -f FileName 来源的文件名,必输 -ff FileName format 来源的文件名类型:txt,文本文件;xls:Excel2003或2007文件),默认是txt 对于Excel文件的导入,仅导入第一个sheet的内容,其他sheet的内容忽略 -e Encoding 文件的编码,默认gbk -c Cut split string 分隔字符,可以是多个字符组合,默认竖线 -r commit rows 每插入多少行提交一次,-1表示不提交,默认-1,如果设置了ac参数为1,则此参数无效。 注意:如果设置了此参数,每到此行数会执行一次commit,如果是外部调用此过程要注意所有数据会被提交 -ac all commit 0.插入成功的都提交,失败的登记文本,默认0; 1.全部插入成功后才提交(有失败则回滚并结束) -a column flag 第一行的类型 0.没有列名行,默认0。此值为0则it参数不生效。 1.第一行是逗号分隔的包括列类型的列信息,例如NAME VARCHAR2(30),注意,区分大小写 2.第一行是列分隔符分隔的列名(不包括列字段信息),注意,列名区分大小写 -it insert type 1.导入的列需要跟数据库列名个数及名称完全相同,顺序无所谓,默认1 2.仅导入文件字段名与数据库字段名完全相同的数据,顺序无所谓 3.第一行是列信息,按此列信息创建新表导入数据(暂不用) 4.忽略第一行,无论第一行是什么数据全部忽略,从第二行按列字段顺序匹配装载 必须在-a 参数 > 0时才生效,否则无意义 -d date formate 日期格式,参考java的SimpleDateFormate类参数,默认自动识别 可识别格式:yyyyMMdd, yyyy-MM-dd, yyyy/MM/dd, yyyyMMdd:HHmmss(等于oracle的yyyymmdd:hh24miss) yyyy年,MM月,dd日,HH 24小时制时,hh 12小时制时,mm 分, ss秒 -l line end string 每条记录结尾的分隔符,默认是 \r\n回车换行符,支持前面-c参数说的转义符 oracle例子: 登陆scott用户,裝载a.txt的逗号分隔的gbk编码文本内容到scott.emp java -jar xxx.jar -i 127.0.0.1 -p 1521 -s ora10 -u system -p manager -t scott.emp -f a.txt -c , sqlserver例子: 登陆11.8.126.181数据库的test用户,裝载f: est.xlsx的excel数据到tmp_i表 java -jar -db sqlserver -i 11.8.126.181 -s abcd -u test -w test -f f: est.xlsx -t tmp_i -ff xls mysql例子: 登陆本机数据库的root用户,裝载a.txt的文本数据到tmp_i表,不提交 java -jar xxx.jar -db mysql -i 127.0.0.1 -s gjjgj -u root -w root -f a.txt -t tmp_i
你可以使用Java中的JDBC(Java Database Connectivity)来连接Oracle数据库。首先,你需要确保已经安装了Oracle数据库,并且已经下载并安装了OracleJDBC驱动程序(也称为JDBC jar文件)。 接下来,在Java代码中,你需要导入相关的JDBC类和包,然后使用以下代码来建立与Oracle数据库的连接: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class OracleJDBCExample { public static void main(String[] args) { // JDBC连接信息 String url = "jdbc:oracle:thin:@localhost:1521:XE"; String username = "your_username"; String password = "your_password"; // 注册Oracle JDBC驱动程序 try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { System.out.println("Oracle JDBC驱动程序未找到"); e.printStackTrace(); return; } // 建立连接 Connection connection = null; try { connection = DriverManager.getConnection(url, username, password); System.out.println("成功连接Oracle数据库"); // 在这里可以执行数据库操作 } catch (SQLException e) { System.out.println("连接Oracle数据库失败"); e.printStackTrace(); } finally { try { if (connection != null) { connection.close(); System.out.println("已关闭与Oracle数据库的连接"); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 在上面的代码中,你需要将`url`变量中的`localhost:1521:XE`替换为你自己的Oracle数据库的连接信息。`username`和`password`变量分别是你的Oracle数据库的用户名和密码。 一旦连接成功,你就可以在`connection`对象上执行各种数据库操作,比如执行SQL查询、插入、更新等。 请注意,上述代码仅供参考,你可能需要根据你自己的具体情况进行适当的修改。另外,记得在代码中处理异常情况,保证代码的健壮性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值