- 浏览: 3445758 次
- 性别:
- 来自: 珠海
-
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
mytables.sql
要用StringBuffer来存放匿名块文件的代码,读取每一行的时候,记得加上回车符号。
然后:
PreparedStatement st = conn.prepareStatement(sb.toString());
st.execute();
调用匿名块是运行参数的,具体看API
declare num int:=0; begin dbms_output.PUT_LINE('--------------------start pro[OracleTools]-----------------------'); --getStrBeforeLine select count(*) into num from mytables where dict_id=10; if num>0 then update mytables set STATE='001',DESCRIPTION='',DISPLAY_INDEX=1,EDIT_USER=NULL,LAST_OPER_ID=NULL,CREATE_USER='admin',EDIT_DATE=NULL,DICT_NAME='文本',DICT_CODE='001',CREATE_DATE=NULL,DICT_TYPE_CODE='BSC_ANALYSIS_ITEM_TYPE',VERSION_NUM=NULL where dict_id=10; else insert into mytables(STATE,DESCRIPTION,DISPLAY_INDEX,EDIT_USER,LAST_OPER_ID,CREATE_USER,EDIT_DATE,DICT_NAME,DICT_CODE,CREATE_DATE,DICT_TYPE_CODE,DICT_ID,VERSION_NUM) values('001','',1,NULL,NULL,'admin',NULL,'文本','001',NULL,'BSC_ANALYSIS_ITEM_TYPE',10,NULL); end if; --getStrAfterLine --getStrBeforeLine select count(*) into num from mytables where dict_id=30; if num>0 then update mytables set STATE='001',DESCRIPTION='',DISPLAY_INDEX=2,EDIT_USER=NULL,LAST_OPER_ID=NULL,CREATE_USER='admin',EDIT_DATE=NULL,DICT_NAME='日期',DICT_CODE='002',CREATE_DATE=NULL,DICT_TYPE_CODE='BSC_ANALYSIS_ITEM_TYPE',VERSION_NUM=NULL where dict_id=30; else insert into mytables(STATE,DESCRIPTION,DISPLAY_INDEX,EDIT_USER,LAST_OPER_ID,CREATE_USER,EDIT_DATE,DICT_NAME,DICT_CODE,CREATE_DATE,DICT_TYPE_CODE,DICT_ID,VERSION_NUM) values('001','',2,NULL,NULL,'admin',NULL,'日期','002',NULL,'BSC_ANALYSIS_ITEM_TYPE',30,NULL); end if; --getStrAfterLine ...... ...... ...... dbms_output.PUT_LINE('--------------------end pro[OracleTools]-----------------------'); commit; exception WHEN others THEN dbms_output.PUT_LINE('--------------------exception-----------------------'); dbms_output.PUT_LINE(sqlerrm); rollback; end;
要用StringBuffer来存放匿名块文件的代码,读取每一行的时候,记得加上回车符号。
然后:
PreparedStatement st = conn.prepareStatement(sb.toString());
st.execute();
调用匿名块是运行参数的,具体看API
package com.geosun.main; import java.io.BufferedReader; import java.io.FileReader; import java.sql.Connection; import java.sql.PreparedStatement; import com.geosun.conf.DBUtils; public class ProcessUnNameSQL { public static StringBuffer readFile(String filePath){ BufferedReader reader = null; StringBuffer sb = new StringBuffer(); try { reader = new BufferedReader(new FileReader(filePath)); String line = reader.readLine(); while(line!=null){ sb.append(line+"\n"); line = reader.readLine(); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } System.out.println(sb.toString()); return sb; } public static void process(Connection conn, String filePath){ StringBuffer sb = readFile(filePath); try { conn.setAutoCommit(false); PreparedStatement st = conn.prepareStatement(sb.toString()); System.out.println("Start Process"); st.execute(); conn.commit(); System.out.println("Process success."); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); throw new RuntimeException(e); } } public static void main(String[] args) { // TODO Auto-generated method stub try { Connection conn = DBUtils.getNewConn("jdbc:oracle:thin:@localhost:1521:orcl", "aaa", "aaa", "oracle.jdbc.driver.OracleDriver"); String filePath="D:\mytables.sql"; process(conn, filePath); conn.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
发表评论
-
全局唯一ID设计方案
2016-06-28 09:42 1250在分布式系统中,经常需要使用全局唯一ID查找对应的数据。产生这 ... -
MYSQL中取当前周/月/季/年的第一天与最后一天
2016-06-27 17:34 3027http://my.oschina.net/zx0211/bl ... -
按周,按月,按日,按小时分组统计数据
2016-06-27 17:07 3297http://my.oschina.net/mjRao/blo ... -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句区别
2016-06-27 16:27 1034http://my.oschina.net/MiniBu/bl ... -
Java Comparable和Comparator
2016-06-26 08:52 720http://my.oschina.net/android52 ... -
Java集合框架之fastutil & koloboke
2016-06-23 14:04 2490Java集合框架之fastutil http://rensan ... -
CitusDB logo基于 PostgreSQL 的集群数据库 CitusDB
2016-06-20 11:43 1095http://www.oschina.net/p/citusd ... -
ehcache 分布式支持
2016-06-05 22:26 1118原文 http://my.oschina.net/glenxu ... -
MYSQL级联查询,包括向上向下的级联
2016-05-31 11:47 2262http://my.oschina.net/u/178116/ ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2907原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1563http://my.oschina.net/wjme/blog ... -
MySQL全文索引
2016-05-11 17:21 1006MySQL全文索引Match Against与Like比较 h ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3481http://www.guokr.com/blog/47576 ... -
Java集合: Queue和Deque
2016-05-09 09:49 1881Queue http://my.oschina.net/kev ... -
使用gzip优化web应用(filter实现)
2016-05-07 01:45 1043使用gzip优化web应用(filter实现) http:// ... -
Druid使用起步—在javaWeb项目中配置监控
2016-05-06 11:41 3286Druid使用起步—在javaWeb项目中配置监控: http ... -
基于spring,Atomikos,mybatis的分布式动态数据源JTA实现
2016-04-27 16:37 1094原文;http://www.blogjava.net/zuxi ... -
Byteman 3.0.5 发布,Java 字节码注入工具
2016-04-23 10:29 1784Byteman 3.0.5 发布,Java 字 ... -
用Haproxy来做PostgreSQL的负载均衡
2016-04-22 09:48 1621http://my.oschina.net/Kenyon/bl ... -
RandomStringUtils的说明和生成随机汉字
2016-04-20 15:21 1430更多参考: http://my.oschina.net/wil ...
相关推荐
3. **异常处理**:Java使用try-catch-finally结构来捕获和处理异常,finally块确保关键代码始终被执行。 4. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等是常用的集合类,它们提供了存储和操作数据的...
1. **JDBC基本操作**:连接数据库、创建Statement或PreparedStatement、执行SQL、处理结果集。 2. **事务管理**:理解ACID特性,手动控制事务的提交和回滚。 3. **批处理**:提高性能的批量操作,通过addBatch()和...
匿名块可以直接在SQL*Plus或其他数据库工具中执行,而子程序和包则可以被多次调用,提高代码复用性。 PLSQL与Java的交互: PLSQL可以通过Java Database Connectivity (JDBC) API与Java进行交互。Java应用程序可以...
- **块结构**:PL/SQL程序由一个或多个块组成,包括匿名块(直接在SQL*Plus或应用中执行的代码)、过程、函数、包等。 - **数据类型**:包括数值型(NUMBER、BINARY_INTEGER、INTEGER等)、字符型(VARCHAR2、CHAR...
5. **PL/SQL块**:包括匿名块(standalone blocks)和命名块(如PROCEDURE和FUNCTION)。匿名块可以用于测试代码片段,而命名块则可以重复使用并作为数据库对象。 6. **游标**:游标用于逐行处理查询结果集。它们在...
比如,一个简单的PLSQL匿名块可能如下所示: ```sql DECLARE var1 NUMBER; BEGIN SELECT column1 INTO var1 FROM table1 WHERE condition; -- 执行其他业务逻辑 EXCEPTION WHEN OTHERS THEN -- 处理异常 ...
在SWT中,事件监听通常通过实现`org.eclipse.swt.events.Listener`接口或使用匿名内部类来完成。 5. 获取数据下标作为ID: 在描述中提到,此示例使用数据行的下标作为ID进行操作。这可能意味着在表格中,每一行有一...
这需要理解JDBC的基本概念,如Connection、Statement、PreparedStatement、ResultSet等对象,以及如何进行数据库连接配置、SQL语句执行等。 综上所述,Java7不仅在语言层面带来了诸多改进,还提升了与外部系统如...
存储过程通常在PL/SQL块中调用,如匿名块(BEGIN...END;): ```sql DECLARE result VARCHAR2(50); BEGIN my_procedure(10, result); DBMS_OUTPUT.PUT_LINE('Result: ' || result); END; ``` 4. **在应用...
程序块包括匿名块(即直接在SQL*Plus或PL/SQL Developer中执行的代码)和命名块(如存储过程、函数、包)。 4. **PL/SQL与SQL的区别**:SQL是用于查询和操作数据库的标准语言,而PL/SQL是Oracle特有的扩展,增加了...
JDBC是Java连接数据库的标准API,包括加载驱动、建立连接、创建Statement或PreparedStatement、执行SQL语句、处理结果集等步骤。预编译的PreparedStatement可以防止SQL注入,提高性能。事务管理也是数据库操作的关键...
在这个例子中,我们声明了三个变量来存储新用户的信息,然后在匿名块中调用`AddNewUser`存储过程。 - **直接方式**: ```sql EXEC AddNewUser('008', 'zhou', 'xingxing'); ``` 直接使用`EXECUTE`关键字调用...
存储过程是存储在数据库中的SQL代码块,它可以接受输入参数并返回输出结果。在Java中,通常使用`CallableStatement`接口来调用存储过程。该接口继承自`PreparedStatement`,并提供了额外的方法来处理输入/输出参数。...
静态块是一段在类加载时执行的代码,用于初始化静态变量。 JDBC(Java Database Connectivity)是Java访问数据库的标准API,允许程序员用SQL语句操作数据库,它包含一组接口和类,可以实现跨数据库平台的应用。接口...
- **数据库操作**:通过JDBC执行SQL语句,实现数据的增删改查操作。 ### 并发编程 - **多线程**:线程的基本概念、创建方式以及同步机制(synchronized关键字、wait()与notify()方法等)。 - **并发工具类**:介绍...
方法是Java程序中实现特定功能的代码块,函数则通常指返回值的特定类型的方法。数组和字符串是处理数据的基本工具。继承、多态、抽象类、接口是面向对象编程的四大特征。继承允许类拥有父类的属性和方法,多态是同一...
2. **利用PL/SQL程序**:编写PL/SQL存储过程或者匿名块,通过Oracle的DBMS_LOB和UTL_FILE包读取Excel文件内容,逐行处理并插入到数据库中。这种方法灵活性高,可以处理复杂的转换逻辑,但需要一定的编程技能。 3. *...
在Oracle中,PL/SQL块可以是匿名块(直接在SQL*Plus或其他客户端执行)或命名块(存储在数据库中供以后调用)。学习PL/SQL还包括理解如何创建和管理存储过程、函数、包,这些是数据库应用程序的重要组成部分。 Java...