【Java】 # 使用java调用MySQL的函数、存储过程
1. 存储过程
1.1 创建函数(代码创建)
-- 修改 MySQL 默认的语句结束符号
delimiter $-- 创建函数
CREATE FUNCTION add_sum(num1 INT, num2 INT) RETURNS INT
BEGINDECLARE res INT;SET res = num1 + num2;RETURN res;
END;-- 改回默认的结束符号
delimiter ;
1.2 调用函数
String sql = "select add_sum(?,?) as res";
selFunc(sql);/*** 使用 java 调用 MySQL 函数* @param sql SQL语句*/
public static void selFunc(String sql) {try {// 反射的机制Class.forName("com.mysql.jdbc.Driver");// 使用配置文件中的数据库配置参数Properties prop = new Properties();// Main为当前类的类名, jdbc.properties为配置文件的名称prop.load(Main.class.getClassLoader().getResourceAsStream("jdbc.properties"));String url = prop.getProperty("jdbc.url");String username = prop.getProperty("jdbc.username");String pwd = prop.getProperty("jdbc.password");// 连接数据库Connection conn = DriverManager.getConnection(url, username, pwd);PreparedStatement ps = conn.prepareStatement(sql);// 设置函数的参数ps.setInt(1, 12);ps.setInt(2, 23);ResultSet rs = ps.executeQuery();while (rs.next()) {System.out.println(rs.getInt("res"));}rs.close();ps.close();conn.close();} catch (ClassNotFoundException e1) {e1.printStackTrace();} catch (IOException e2) {e2.printStackTrace();} catch (SQLException e3) {e3.printStackTrace();}
}
2. 存储过程
2.1 创建存储过程
delimiter $CREATE PROCEDURE proc_sum(IN num1 INTEGER, IN num2 INTEGER, OUT addSum INTEGER)
BEGINSET addSum = num1 + num2;
END;delimiter ;
2.2 调用存储过程
String sql = "{call proc_sum(?, ?, ?)}";try {Class.forName("com.mysql.jdbc.Driver");Properties prop = new Properties();prop.load(PileNoUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"));String url = prop.getProperty("jdbc.url");String username = prop.getProperty("jdbc.username");String password = prop.getProperty("jdbc.password");Connection conn = DriverManager.getConnection(url, username, password);CallableStatement cst = conn.prepareCall(sql);cst.setInt(1, 10);cst.setInt(2, 20);cst.registerOutParameter(3, Types.INTEGER);cst.execute();int res = cst.getInt(3);System.out.println(res);
} catch (ClassNotFoundException e1) {e1.printStackTrace();
} catch (IOException e2) {e2.printStackTrace();
} catch (SQLException e3) {e3.printStackTrace();
}
【Java】 # 使用java调用MySQL的函数、存储过程相关推荐
- C mysql带参数存储过程_C# 调用Mysql 带参数存储过程
使用C#调用Mysql 带参数的存储过程: 1.创建带参数的存储过程:USP_Temp_Test 2.两个参数:IN 参数为 P_XML , OUT 参数为 P_ErrorOut 3.C#代码调用该存 ...
- mysql c api 函数 linux下 mysql_query_Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据...
标签: Title:Linux C 调用MYSQL API 函数mysql_escape_string()转义插入数据 --2013-10-11 11:57 #include #include #in ...
- Java使用JDBC调用Mysql函数和存储过程
文章目录 前言 一.举例说明 二.主要代码如下 前言 之前使用过mybatis和mybatis plus来调用数据库函数和存储过程,这也是目前使用比较广泛和流行的方法,但是今天遇到一个要求就是在一个项 ...
- MySql 自定义函数,存储过程,游标的使用
首先整理一下mysql内置的一些函数 MySQL内置函数 一.字符函数 (1)CONCAT()//字符连接 (2)CONCAT_WS()//使用指定的分隔符进行字符连接 (3)FORMAT()//数字 ...
- php调用mysql加密函数_PHP MySQL应用中使用XOR运算加密算法分享
XOR算法原理 从加密的主要方法看,换位法过于简单,特别是对于数据量少的情况很容易由密文猜出明文,而替换法不失为一种行之有效的简易算法. 从各种替换法运算的特点看,异或运算最适合用于简易加解密运算,这 ...
- C++调用mysql自定义函数
1.测试用表: 2.使用可视化工具Navicat在mysql数据库中创建一个函数,函数实现:输入id,返回对应的name: CREATE FUNCTION getNameFunc(N int) RET ...
- Java调用mysql的存储过程
在之前写过一篇博客是如何mysql如何创建存储过程,在这一节中,我们是在原来的基础上来进一步的学习,如何在Java程序中使用Java代码来调用mysql存储过程. mysql创建存储过程:http:/ ...
- java native函数库_Java 层调用 Native 层函数的两种方式
概述 Java 层如何调用Native层函数,大家都应该知道使用JNI(Java 本地接口). 通过在java层声明native方法,然后遵守JNI规范命名Native函数,即可建立Java层nati ...
- pb 调用mysql过程_pb调用mysql函数或存储过程异常
pb调用mysql函数或存储过程异常.尤其是mysql函数带传入传出参数时,pb调用时候无法正常执行,提示SQLSTATE=37000错误. 在pb程序中正常更新mysql表中字段或读取mysql表中 ...
最新文章
- 生动的解释下什么是 MySQL 的“回表”?
- 如果乔布斯还在,今天他65岁了
- python_0基础开始_day05
- c/c++ 时间函数总结 linux-转
- Kafka安装之一 Zookeeper
- 前后端分离导出excel_Vue + .NetCore前后端分离的快速发开框架
- 东农计算机网络技术离线作业,东农16秋《电力系统分析》在线作业
- VMware 12 许可密钥
- 【设计模式】-工厂模式->工厂方法模式(源码与类图解析)
- 1、Android APP开发基础
- 一文带你了解Unity Shader-小飞侠轻功(径向模糊)
- Linux和Ubuntu的区别详解
- 超能陆战队中的微型机器人现已实现!
- Skia API的简单应用
- Word中公式变量解释时破折号对齐方法
- 新一代人工智能发展规划发布
- asp.net动态设置CSS等
- 物联网(Iot)台灯设计完整教程(长图文)
- 关于TCP同时打开-无需Listener的TCP连接建立过程
- 字符编码笔记:ASCII,Unicode 和 UTF-8(转帖、留着自己学习)