[本文介绍] 前面几篇说了那么多,最终还没讲到如何用java连接数据库,本文实用一点,讲讲如何连接数据库. [java连接oracle数据库] 1.导入jdbc驱动:看到这里,就忙着上网找驱动?不,安装了oracle就有自带驱动了,路径在:安装目录\product\11.2.0\dbhome_1\jdbc\lib,下面有多个jar包,选择适合自己的一个(最简单的办法就是导入项目后看看能连接不,能连接的就是适合的驱动) 2.代码: 关于url:@后面是IP:端口,这两个不知道怎么查的请看博文:ht…
package demo; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet; import oracle.jdbc.OracleCallableStatement; import oracle.jdbc.OracleTypes; import org.junit.Test; public class TestOracle { /* * create or replac…
Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws java.lang.Exception { CallableStatement cstmt = null; String procedure = "{call G_IMPORT_CAL.g_entry(?,?,?) }"; cstmt = conn.prepareCall(procedure…
注:本文来源于 <  Java调用oracle存储过程通过游标返回临时表数据   > Java调用oracle存储过程通过游标返回临时表数据 项目开发过程中,不可避免的会用到存储过程返回结果集.特别是选择Oracle做为数据库时,就更麻烦了,因为Oracle存储过程和SQLServer的有点不太一样,直接返回不了结果集,那么怎么才能在使用Oracle的情况下返回结果集,程序代码中怎么获取到那,请看下面几篇: 1.存储过程返回结果集 2.Java中执行存储过程以及多结果集处理 3.返回临时表中数…
SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立连接 Connection conn=null; conn=DriverManager.getConnection();…
1.创建添加存储过程 CREATEORREPLACEPROCEDURE stu_proc(v_id INNUMBER, v_name INVARCHAR2, v_age INNUMBER) AS BEGIN INSERTINTO student(id, sname, age) values (v_id, v_name, v_age); commit; END; JAVA调用添加存储过程 ); //如果第一个结果是ResultSet对象,则返回true:如果第一个结果是更新.添加.修改或者没有结果…
存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天,我们就开始学习java中调用oracle的存储过程. java中调用oracle的存储过程 项目结构如下:…
存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天,我们就开始学习java中调用oracle的存储过程. java中调用oracle的存储过程 项目结构如下:…
//1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立连接 Connection conn=null; conn=DriverManager.getConnection(); //3.使用java.sql.*类 CallableStatement cs=conn.prepareCall(str); //4.传入in值 cs.setInt(1,id); cs.se…
数据库表和增删改的procedure参照(http://www.cnblogs.com/J-wym/p/3292913.html) 1.测试添加数据的procedure public void testProcedure() { Connection con = getConnction(); .测试添加数据的procedure String procedure = "{call users_insert_proc(?,?,?,?) }"; CallableStatement cs =…
以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译一次,但是不好维护   //1.call+包名+存储过程名(传入.传出值用?)      String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立连接 Connection conn=null;  conn=DriverM…
一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)   AS BEGIN INSERT INTO DBO.EMP (ID,NAME) VALUES (PARA1, PARA2); END PRO_1; Java代码: package com.icesoft.service; import java.sql.*; import java.sql.ResultSet; p…
package com.hp.test; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class TestOracleCrud { public static void main(String[] args) { //…
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存储过程为: CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGIN INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2); END TE…
1.jdbc 1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity2) jdbc的本质:在编程时java程序会去连接不同的数据库,而每个数据库的底层的实现原理是不同的,所以我们所编写的程序应该是面向一套规范去编写的,这套java语言连接数据库的规范就是jdbc A.sun公司: jdbc接口是一套由Sun公司制定的一套Class文件规范,用于规范程序员: B.数据库厂商: 编写jdbc接口的实现类,并将这些实现类打成jar包,并发布:这些jar包被…
oracle版本:11g oracle存储过程,使用游标的方式返回多行.多列数据集合: CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT,*/ --传入参数,不需要可注释 O_CUR OUT SYS_REFCURSOR --输出数据,本文重点描述 ) IS BEGIN OPEN O_CUR FOR SELECT * FROM (SELECT 'A', SYSDATE - 1 FROM DUAL UNION ALL SELECT 'B'…
1 //调用存储过程 2 public static void testPro(){ 3 String driver = "oracle.jdbc.OracleDriver"; 4 String url = "jdbc:oracle:thin:@localhost:1521:orcl"; 5 Connection conn = null; 6 CallableStatement cs = null; 7 8 try { 9 Class.forName(driver)…
1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver"); 2.得到连接:(和SQL Server一样) 首先,引用数据包: import java.sql.*; 连接: Connection ct=DriverManager.getConnection("jdbc:odbc:testds","用户名",&quo…
下面将举出JAVA对ORACLE数据库存储过程的调用          ConnUtils连接工具类:用来获取连接.释放资源 复制代码 package com.ljq.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /**  * 连接工具类  * …
Java调用MySQL的存储过程,需要用JDBC连接,环境eclipse 首先查看MySQL中的数据库的存储过程,接着编写代码调用 mysql> show procedure status; +------+-------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------…
SQL> --视图 SQL> create view empinfoview as select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname from emp e,dept d where e.deptno=d.deptno; create view empinfoview 视图已创建. SQL> desc empinfoview 名称 是否为空? 类型 ----------------------------------------- -…
SQL> SQL的类型 SQL> 1.DML(Data Manipulation Language 数据操作语言): select insert update delete SQL> 2.DDL(Data Definition Language 数据定义语言): create table,alter table,truncate table,drop table create/drop view,sequnece,index,synonym(同义词) SQL> 3.DCL(Data…
1.第一个存储过程 打印Hello World 调用存储过程: 1.exec sayhelloworld(); 2.begin sayhelloworld(); sayhelloworld(); end; create or replace procedure sayhelloworld as --说明部分 begin dbms_output.put_line('Hello World'); end; 2.带参数的存储过程 给指定的员工涨100,并且打印涨前和涨后的薪水 create or re…
1.打印Hello World declare --说明部分 begin --程序 dbms_output.put_line('Hello World'); end; 2.引用型变量 查询并打印7839的姓名和薪水 declare --定义变量保存姓名和薪水 --pename varchar2(20); --psal number; pename emp.ename%type; psal emp.sal%type; begin --得到7839的姓名和薪水 select ename,sal in…
练习:查询每一年入职人数及总人数 SQL> select count(*) Total, 2 sum(decode(to_char(hiredate,'yyyy'),'1980',1,0)) "1980", 3 sum(decode(to_char(hiredate,'yyyy'),'1981',1,0)) "1981", 4 sum(decode(to_char(hiredate,'yyyy'),'1982',1,0)) "1982",…
SQL> /* SQL> 查询10和20号部门的员工 SQL> 1. select * from emp where deptno=10 or deptno=20; SQL> 2. select * from emp where deptno in (10,20); SQL> 3. 集合运算 SQL> select * from emp where deptno=10 SQL> 加上 SQL> select * from emp where deptno=2…
SQL> --查询工资比SCOTT高的员工信息 SQL> --1. SCOTT的工资 SQL> select sal from emp where ename='SCOTT'; SAL ---------- 3000 SQL> --2. 查询比3000高的员工 SQL> select * from emp where sal >3000; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ----------…
SQL> --字符函数 SQL> select lower('Hello World') 转小写,upper('Hello World') 转大写,initcap('hello world') 首字母大写 from dual; 转小写 转大写 首字母大写 hello world HELLO WORLD Hello World SQL> --substr(a,b) 从a中,第b位开始取 SQL> select substr('Hello World',4) 子串 from dual;…
SQL> --查询10号部门的员工 SQL> select * from emp where deptno=10; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 7839 KING PRESIDENT 17-11月-81 5000 10 7934 MILLER CLERK 7782 23-1月 -82 1300 10 SQL> --字符串大小写敏感 SQL>…
SQL> --当前用户 SQL> show user SQL> --当前用户下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- DEPT TABLE EMP TABLE BONUS TABLE SALGRADE TABLE SQL> --员工表的结构 SQL> desc emp 名称 是否为空? 类型 ---------…