存储过程

DROP PROCEDURE IF EXISTS `addUser`;
CREATE PROCEDURE `addUser`
(in pname VARCHAR(45),in birthday date,in money float,out pid int)
BEGIN
INSERT into `user`(name,birthday,money) VALUES(pname,birthday,money);
SELECT LAST_INSERT_ID() into pid;
END;

java

package jdbc;

import java.sql.*;

public class PsTest {
public static void main(String[] args) throws SQLException {
ps();
} static void ps() throws SQLException {
Connection conn = null;
CallableStatement cs = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
String sql = "{ call addUser(?,?,?,?) }";
cs = conn.prepareCall(sql);
cs.registerOutParameter(4, Types.INTEGER);
cs.setString(1, "ps name");
cs.setDate(2, new java.sql.Date(System.currentTimeMillis()));
cs.setFloat(3, 100.0f);
cs.executeUpdate();
int res = cs.getInt(4);
System.out.println("res= " + res); } finally {
JdbcUtils.free(rs, cs, conn);
}
}
}

api

package jdbc;

import java.sql.*;

public class OtherApi {
public static void main(String[] args) throws SQLException {
int id = create();
System.out.println(id);
} static int create() throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
String sql = "insert into user(name,birthday,money) values('name1','1987-01-01',400)";
ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.executeUpdate();
rs = ps.getGeneratedKeys();
int id = 0;
if (rs.next()) {
id = rs.getInt(1);
}
return id; } finally {
JdbcUtils.free(rs, ps, conn);
}
}
}

JDBC 存储过程的更多相关文章

  1. JAVA JDBC(存储过程和事务管理)

    1.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程 ...

  2. SQLSERVER JDBC 存储过程调用偶尔很慢的原因之一【sp_sproc_columns】

    在对于CallableStatement进行参数赋值或者取值时,建议直接用索引号,避免使用参数名称! 若使用参数名称,每次调用该存储过程时,jdbc会自动执行 exec sp_sproc_column ...

  3. JDBC存储过程调用

    在讨论JDBC Statement教程文章时,我们已经学习了如何在JDBC中使用存储过程. 本教程文章与该部分类似,但它将讲解演示有关JDBC SQL转义语法的其他信息. 就像Connection对象 ...

  4. 数据库操作,jdbc的CRUD

    用Java代码操作数据库,可以用JDBC.首先要加载驱动,之后建立连接,再然后就可以对数据库进行操作. 1.建立连接.此处用的是MySQL数据库 public class DBUtil { publi ...

  5. 转自“脚本之家”!!JDBC之PreparedStatement类中预编译的综合应用解析

    JDK 文档:SQL 语句被预编译并存储在 PreparedStatement 对象中(PreparedStatement是存储在JDBC里的,初始化后,缓存到了JDBC里),然后可以使用此对象多次高 ...

  6. Java学习笔记——JDBC之PreparedStatement类中“预编译”的综合应用

    预编译 SQL 语句被预编译并存储在 PreparedStatement 对象中.然后可以使用此对象多次高效地执行该语句. 预编译的优点 1.PreparedStatement是预编译的,对于批量处理 ...

  7. JDBC中的Statement和PreparedStatement的差别

    以Oracle为例吧 Statement为一条Sql语句生成运行计划, 假设要运行两条sql语句 select colume from table where colume=1; select col ...

  8. [转] JDBC中的Statement和PreparedStatement的区别

    以Oracle为例吧 Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume ...

  9. java:数据库操作JDBC

    JDBC详解:https://www.cnblogs.com/erbing/p/5805727.html JDBC存储过程,事务管理,数据库连接池,jdbc的封装框架:https://www.cnbl ...

随机推荐

  1. for语句处理多维数组

    看C++Primer第三章看到的,记录一下. 下面这段代码非法,因为row指向的是每一行的一个大小为10的一维数组,默认转为指针,即row其实是一个int*类型的指针,显然内层循环就出错了 int a ...

  2. Codeforces Round #579 (Div. 3) 题解

    比赛链接:https://codeforc.es/contest/1203/ A. Circle of Students 题意:\(T\)组询问,每组询问给出\(n\)个数字,问这\(n\)个数字能否 ...

  3. 详解Django中Request对象的相关用法

    原文链接:http://www.jb51.net/article/69624.htm 1.从Request对象中获取数据 我们在第三章讲述View的函数时已经介绍过HttpRequest对象了,但当时 ...

  4. 解决ifarme在ios下无法使用

    在第一层的config 添加 <access origin="*" /><allow-navigation href="*" />< ...

  5. 【转】直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit

    原:https://www.cnblogs.com/baitongtong/p/11248966.html 1 .音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放 ...

  6. springboot笔记-1.自动化配置的关键

    最近发现看过的东西容易忘,但是写一遍之后印象倒是会深刻的多. 总所周知springboot极大的简化了java开发繁琐性,而其最大的优势应该就是自动化配置了.比如要使用redis,我们直接引入相关的包 ...

  7. 搭建第一个django项目

    django是python做web最为强大和全能的后端框架,不会django的python如一条咸鱼... 所以开始学习django框架. 首选得在python中下载django 下载命令: pip ...

  8. js下false情况

    //为false的情况 false null NaN undefined "" 0

  9. Python - for循环的本质,迭代器,可迭代对象

    参考 https://foofish.net/how-for-works-in-python.html for循环可以迭代一个可迭代(iterable)的对象 原理 生成这个可迭代对象(实现了__it ...

  10. 【快学SpringBoot】快速上手好用方便的Spring Cache缓存框架

    前言 缓存,在开发中是非常常用的.在高并发系统中,如果没有缓存,纯靠数据库来扛,那么数据库压力会非常大,搞不好还会出现宕机的情况.本篇文章,将会带大家学习Spring Cache缓存框架. 原创声明 ...