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的函数、存储过程相关推荐

  1. C mysql带参数存储过程_C# 调用Mysql 带参数存储过程

    使用C#调用Mysql 带参数的存储过程: 1.创建带参数的存储过程:USP_Temp_Test 2.两个参数:IN 参数为 P_XML , OUT 参数为 P_ErrorOut 3.C#代码调用该存 ...

  2. 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 ...

  3. Java使用JDBC调用Mysql函数和存储过程

    文章目录 前言 一.举例说明 二.主要代码如下 前言 之前使用过mybatis和mybatis plus来调用数据库函数和存储过程,这也是目前使用比较广泛和流行的方法,但是今天遇到一个要求就是在一个项 ...

  4. MySql 自定义函数,存储过程,游标的使用

    首先整理一下mysql内置的一些函数 MySQL内置函数 一.字符函数 (1)CONCAT()//字符连接 (2)CONCAT_WS()//使用指定的分隔符进行字符连接 (3)FORMAT()//数字 ...

  5. php调用mysql加密函数_PHP MySQL应用中使用XOR运算加密算法分享

    XOR算法原理 从加密的主要方法看,换位法过于简单,特别是对于数据量少的情况很容易由密文猜出明文,而替换法不失为一种行之有效的简易算法. 从各种替换法运算的特点看,异或运算最适合用于简易加解密运算,这 ...

  6. C++调用mysql自定义函数

    1.测试用表: 2.使用可视化工具Navicat在mysql数据库中创建一个函数,函数实现:输入id,返回对应的name: CREATE FUNCTION getNameFunc(N int) RET ...

  7. Java调用mysql的存储过程

    在之前写过一篇博客是如何mysql如何创建存储过程,在这一节中,我们是在原来的基础上来进一步的学习,如何在Java程序中使用Java代码来调用mysql存储过程. mysql创建存储过程:http:/ ...

  8. java native函数库_Java 层调用 Native 层函数的两种方式

    概述 Java 层如何调用Native层函数,大家都应该知道使用JNI(Java 本地接口). 通过在java层声明native方法,然后遵守JNI规范命名Native函数,即可建立Java层nati ...

  9. pb 调用mysql过程_pb调用mysql函数或存储过程异常

    pb调用mysql函数或存储过程异常.尤其是mysql函数带传入传出参数时,pb调用时候无法正常执行,提示SQLSTATE=37000错误. 在pb程序中正常更新mysql表中字段或读取mysql表中 ...

最新文章

  1. 生动的解释下什么是 MySQL 的“回表”?
  2. 如果乔布斯还在,今天他65岁了
  3. python_0基础开始_day05
  4. c/c++ 时间函数总结 linux-转
  5. Kafka安装之一 Zookeeper
  6. 前后端分离导出excel_Vue + .NetCore前后端分离的快速发开框架
  7. 东农计算机网络技术离线作业,东农16秋《电力系统分析》在线作业
  8. VMware 12 许可密钥
  9. 【设计模式】-工厂模式->工厂方法模式(源码与类图解析)
  10. 1、Android APP开发基础
  11. 一文带你了解Unity Shader-小飞侠轻功(径向模糊)
  12. Linux和Ubuntu的区别详解
  13. 超能陆战队中的微型机器人现已实现!
  14. Skia API的简单应用
  15. Word中公式变量解释时破折号对齐方法
  16. 新一代人工智能发展规划发布
  17. asp.net动态设置CSS等
  18. 物联网(Iot)台灯设计完整教程(长图文)
  19. 关于TCP同时打开-无需Listener的TCP连接建立过程
  20. 字符编码笔记:ASCII,Unicode 和 UTF-8(转帖、留着自己学习)

热门文章

  1. 关于阅读ROS的源代码
  2. 科学种草 | 破解小红书素人爆文的奥秘
  3. JAVA基础第二章 面向对象进阶
  4. 大数据时代,Wyn Enterprise和您一起探讨CIO的困境和出路 ZT
  5. 移动固态硬盘中安装VMware+Ubuntu失败原因
  6. 【rdma_cm】rdma_cm API
  7. 编译优化之 - 向量化优化入门
  8. Docker学习之基础篇
  9. EMC硬件设计规范与滤波器使用注意事项
  10. Java开发 - 问君能有几多愁,Spring Boot瞅一瞅。