-- 创建表
CREATE TABLE sys_user(
ID NUMBER PRIMARY KEY,
USERNAME VARCHAR2(20) NOT NULL,
PASSWORD VARCHAR2(20) NOT NULL,
SEX VARCHAR2(20) NOT NULL,
STATUS VARCHAR2(20) NOT NULL
);
-- 创建存储过程(新增一条用户信息)
CREATE OR REPLACE PROCEDURE P_USER_ADD(
P_ID IN NUMBER,
P_USERNAME IN VARCHAR2,
P_PASSWORD IN VARCHAR2,
P_SEX IN VARCHAR2,
P_STATUS IN VARCHAR2
)
BEGIN
INSERT INTO SYS_USER VALUES(P_ID,P_USERNAME,P_PASSWORD,P_SEX,P_STATUS);
END;
-- 创建存储过程(删除一条用户信息)
CREATE OR REPLACE PROCEDURE P_USER_DEL
(
P_ID IN NUMBER
, X_OUT_ID OUT NUMBER
) AS
BEGIN
DELETE SYS_USER WHERE ID=P_ID;
X_OUT_ID:=0;
EXCEPTION
WHEN OTHERS THEN
X_OUT_ID:=-1;
END;
-- 创建存储过程(查询全部用户信息)
CREATE OR REPLACE PROCEDURE P_USER_ALL(
X_OUT_RECORD OUT NUMBER,
X_OUT_CURSOR OUT SYS_REFCURSOR
) AS
BEGIN
OPEN x_out_cursor FOR
SELECT * FROM SYS_USER;
x_out_record := 0;
EXCEPTION
WHEN OTHERS THEN
x_out_record := -1;
END;
package com.ac.procedure.core.dm;
/**
* 用户实体
* @author Yan
* @date 2012-6-13 上午11:26:31
*/
public class SysUsers {
// 编号
public int id;
// 用户名
public String username;
// 密码
public String password;
// 性别
public String sex;
// 状态
public String struts;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getStruts() {
return struts;
}
public void setStruts(String struts) {
this.struts = struts;
}
}
package com.ac.procedure.core.util;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
/**
* 连接DB工具类
* @author Yan
* @date 2012-6-13 上午11:37:20
*/
public class BaseDao {
// 连接DB 驱动
public static String DRIVER="oracle.jdbc.driver.OracleDriver";
// 连接DB URL
public static String URL="jdbc:oracle:thin:@localhost:1521:orcl";
// 用户名
public static String USERNAME="scott";
// 密码
public static String PASSWORD="tiger";
/**
* 加载信息,连接DB
* @return Connection
*/
public Connection getConnection() {
Connection conn=null;
try {
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭DB连接
* @param conn DB连接对象
* @param call 调用储存过程对象
* @param rs 结果集对象
*/
public void closeAll(Connection conn,CallableStatement call,ResultSet rs){
try {
if (rs != null) {
rs.close();
}
if (call != null) {
call.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.ac.procedure.core.dao;
import java.util.List;
import com.ac.procedure.core.dm.SysUsers;
/**
* 用户接口
* @author Yan
* @date 2012-6-13 上午11:29:24
*/
public interface SysUsersDao {
/**
* 新增一条用户信息
* @param users 用户对象
* @return success or failure
*/
public String saveUsers(SysUsers users);
/**
* 删除一条用户信息
* @param id 编号
* @return success or failure
*/
public String deleteUsers(int id);
/**
* 查询全部用户信息
* @return List
*/
public List<SysUsers> getUserAll();
}
package com.ac.procedure.core.dao.impl;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.List;
import oracle.jdbc.driver.OracleTypes;
import com.ac.procedure.core.dao.SysUsersDao;
import com.ac.procedure.core.dm.SysUsers;
import com.ac.procedure.core.util.BaseDao;
/**
* 用户接口实现(调用存储过程)
* @author Yan
* @date 2012-6-13 上午11:52:58
*/
public class SysUsersDaoImpl extends BaseDao implements SysUsersDao {
// 连接DB 对象
private Connection conn;
// 存储过程 对象
private CallableStatement call;
// 结果集 对象
private ResultSet rs;
/*
* 新增一条用户信息(non-Javadoc)
* @see com.ac.procedure.core.dao.SysUsersDao#saveUsers(com.ac.procedure.core.dm.SysUsers)
*/
@Override
public String saveUsers(SysUsers users) {
String flag="success";
try {
String sql="{CALL P_USER_ADD(?,?,?,?,?)}";
conn=this.getConnection();
call=conn.prepareCall(sql);
call.setInt(1, users.getId());
call.setString(2, users.getUsername());
call.setString(3, users.getPassword());
call.setString(4, users.getSex());
call.setString(5,users.getStruts());
call.execute();
} catch (SQLException e) {
e.printStackTrace();
flag="failure";
} finally{
this.closeAll(conn, call, null);
}
return flag;
}
/*
* 删除一条用户信息(non-Javadoc)
* @see com.ac.procedure.core.dao.SysUsersDao#deleteUsers(int)
*/
@Override
public String deleteUsers(int id) {
String flag="success";
try {
String sql="{CALL P_USER_DEL(?,?)}";
conn=this.getConnection();
call=conn.prepareCall(sql);
call.setInt(1, id);
call.registerOutParameter(2, Types.INTEGER);
call.execute();
} catch (Exception e) {
e.printStackTrace();
flag="failure";
} finally{
this.closeAll(conn, call, null);
}
return flag;
}
@Override
public List<SysUsers> getUserAll() {
List<SysUsers> list=new ArrayList<SysUsers>();
SysUsers users=null;
try {
String sql="{CALL P_USER_ALL(?,?)}";
conn=this.getConnection();
call=conn.prepareCall(sql);
call.registerOutParameter(1, Types.INTEGER);
call.registerOutParameter(2, OracleTypes.CURSOR);
call.execute();
rs=(ResultSet) call.getObject(2);
while(rs.next()){
users=new SysUsers();
users.setId(rs.getInt(1));
users.setUsername(rs.getString(2));
users.setPassword(rs.getString(3));
users.setSex(rs.getString(4));
users.setStruts(rs.getString(5));
list.add(users);
}
} catch (Exception e) {
e.printStackTrace();
list=null;
} finally{
this.closeAll(conn, call, rs);
}
return list;
}
}
package com.ac.procedure.core.dao.impl;
import java.util.List;
import org.junit.Test;
import com.ac.procedure.core.dm.SysUsers;
public class SysUsersDaoImplTest {
SysUsersDaoImpl sysusers=new SysUsersDaoImpl();
@Test
public void testSaveUsers() {
SysUsers users=new SysUsers();
users.setId(1000000000);
users.setUsername("闫小甲");
users.setPassword("123456");
users.setSex("男");
users.setStruts("启用");
String result = sysusers.saveUsers(users);
System.out.println("保存用户:"+result);
}
@Test
public void testDeleteUsers() {
String result= sysusers.deleteUsers(1000000000);
System.out.println("删除用户:"+result);
}
@Test
public void testGetUserAll() {
List<SysUsers> list=sysusers.getUserAll();
for (SysUsers sysUsers : list) {
System.out.println("编号:"+sysUsers.getId()
+"\t用户名:"+sysUsers.getUsername());
}
}
}
- 大小: 16.5 KB
分享到:
相关推荐
Oracle存储过程是数据库管理系统中的一种重要程序设计组件,它允许用户在数据库中执行复杂的操作序列,而不仅仅局限于简单的SQL查询。在Oracle中,存储过程是由一个或多个SQL语句和PL/SQL块组成的,可以被封装起来并...
本文将介绍如何在Windows平台上利用VFP调用Oracle存储过程,以及实现Oracle数据库内容向VFP数据表的自动转换。 首先,我们来了解Oracle数据库。Oracle数据库是一种基于SQL的大型关系型数据库系统,它以支持多用户、...
Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL语句和PL/SQL块,并将它们作为一个单元来执行。这极大地提高了代码的重用性和数据库操作的效率。下面我们将深入探讨Oracle存储过程...
### Oracle存储过程开发基本规范详解 #### 一、概述 Oracle存储过程作为一种强大的数据库编程工具,在企业级应用中被广泛采用。为了确保存储过程的质量、可读性和可维护性,制定一套合理的编码规范至关重要。本文将...
Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL语句和PL/SQL块,形成可重复使用的代码单元。这篇博客“oracle存储过程-帮助文档”可能提供了关于如何创建、调用和管理Oracle存储过程...
Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、Java 等。存储过程可以封装复杂的业务逻辑,提高数据库的安全性和性能。 二、CallabledStatement ...
在介绍使用Java编写Oracle存储过程之前,我们首先需要了解存储过程的基本概念以及使用它们的好处。存储过程是存储在数据库中的一段预编译和优化过的代码,可以包含复杂的业务逻辑。它们在第一次执行后被编译并存储在...
标题中的“pb中执行oracle存储过程脚本”指的是在PowerBuilder(简称PB)环境中调用Oracle数据库的存储过程。PowerBuilder是一种可视化的开发工具,常用于构建数据驱动的应用程序。Oracle存储过程则是在Oracle数据库...
Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列SQL和PL/SQL代码,以实现特定的功能。在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别...
### Oracle存储过程 存储过程是在数据库中预编译的一组SQL语句,用于执行复杂的业务逻辑或数据操作。它们可以接受输入参数,执行一系列数据库操作,并返回结果。在Oracle中,存储过程使用PL/SQL编写,可以在数据库...
Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重复使用的程序单元。这个“Oracle存储过程案例”提供了丰富的学习材料,帮助用户从入门到精通掌握...
本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...
在Java开发中,Oracle存储过程常被用于后端数据库操作,与Java应用程序进行交互,实现业务逻辑。 首先,理解存储过程的概念是必要的。存储过程是一组预先编译的SQL语句,它们以函数的形式存储在数据库中,可以接受...
Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL和PL/SQL语句,形成一个可重用的程序单元。存储过程在数据库中预先编译并存储,这样在执行时能提高效率,因为它避免了每次调用时的重新...
Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许开发者编写一系列的SQL和PL/SQL语句,形成一个可重用的代码块。这个"Oracle存储过程学习经典(实例)"资源显然是为初学者设计的,旨在帮助他们掌握如何...
Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL和PL/SQL语句,形成一个可重用的程序单元。存储过程的概念类似于高级编程语言中的模块,通过参数传递来实现数据的交互,体现了模块...
4. **编写事件处理程序**:双击`Button1`,在`Button1Click`事件处理程序中编写代码以调用Oracle存储过程。 #### Delphi中调用Oracle存储过程 以下是完整的Delphi代码示例,用于调用上述创建的Oracle存储过程: `...
标题 "pb源码编写执行oracle存储过程的程序" 涉及到的主要知识点是使用PowerBuilder(pb)作为开发工具,来与Oracle数据库交互并执行存储过程。在Oracle数据库中,存储过程是一组预编译的SQL语句和PL/SQL代码,可以...
Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写包含了一系列SQL和PL/SQL语句的程序单元,用于执行特定的任务。在数据库管理、数据处理和业务逻辑实现方面,存储过程扮演着不可或缺的角色...