`

mysql 5.5 Java调用存储过程

阅读更多
Sql代码 复制代码 收藏代码
  1. # 创建并选择数据库   
  2. create database mydata;   
  3. use mydata   
  4.   
  5. # 显示数据库   
  6. show databases;   
  7. # 显示表   
  8. show tables;   
  9. # 查看表   
  10. desc 表的名字;   
  11.   
  12. # 客户表   
  13. create table customers   
  14. (   
  15. cust_id int primary key, #主键   
  16. cust_name varchar(20),   
  17. cust_emil varchar(50)   
  18. );   
  19.   
  20. # 订单表   
  21. create table orders   
  22. (   
  23. orders_num int primary key,   
  24. orders_date datetime,   
  25. cust_id int, #客户id 外键   
  26. foreign key (cust_id) references customers(cust_id)   
  27. );   
  28.   
  29. insert into prod values (1, 'm''apq''20''1998-02-28');   
  30. commit;   
  31.   
  32. select * from prod;   
  33.   
  34. # 删除表   
  35. drop table orders;   
  36.   
  37. # 删除表数据   
  38. delete from orders where orders_num=100; #删除一行   
  39. delete from orders; #删除表里的所有数据   
  40.   
  41. # 自动递增字段   
  42. create table article   
  43. (   
  44. id int primary key auto_increment,   
  45. title varchar(10)   
  46. );   
  47.   
  48. # 自动递增字段表里插入数据   
  49. insert into article (title) values('a');   
  50. insert into article (title) values('b');   
  51. +----+-------+   
  52. | id | title |   
  53. +----+-------+   
  54. |  1 | a     |   
  55. |  2 | b     |   
  56. +----+-------+   
  57.   
  58. select * from prod limit 0,2;   
  59. select * from prod order by prod_id desc limit 3,2;   
  60.   
  61. # 日期格式化   
  62. select date_format(now(), '%y-%m-%d %h:%i:%s');   
  63.   
  64. 可以显示数据库的编码   
  65. show create table table_name;   
  66.   
  67. 在写SQL语句之前,请加上这一句,以保证前台和后台的编码一致   
  68. set names gbk;   
  69. MySql安装目录下,请找到my.ini文件,在[mysql]下面把编码改成gbk, 在[mysqld]下面   
  70. 编码改成utf8 这样以后就不用写set names gbk了!!之后重启MYSql   
  71. [mysql]   
  72. # 客户端的编码   
  73. default-character-set=gbk   
  74. [mysqld]   
  75. # 服务器端的编码   
  76. default-character-set=utf8  
# 创建并选择数据库
create database mydata;
use mydata

# 显示数据库
show databases;
# 显示表
show tables;
# 查看表
desc 表的名字;

# 客户表
create table customers
(
cust_id int primary key, #主键
cust_name varchar(20),
cust_emil varchar(50)
);

# 订单表
create table orders
(
orders_num int primary key,
orders_date datetime,
cust_id int, #客户id 外键
foreign key (cust_id) references customers(cust_id)
);

insert into prod values (1, 'm', 'apq', '20', '1998-02-28');
commit;

select * from prod;

# 删除表
drop table orders;

# 删除表数据
delete from orders where orders_num=100; #删除一行
delete from orders; #删除表里的所有数据

# 自动递增字段
create table article
(
id int primary key auto_increment,
title varchar(10)
);

# 自动递增字段表里插入数据
insert into article (title) values('a');
insert into article (title) values('b');
+----+-------+
| id | title |
+----+-------+
|  1 | a     |
|  2 | b     |
+----+-------+

select * from prod limit 0,2;
select * from prod order by prod_id desc limit 3,2;

# 日期格式化
select date_format(now(), '%y-%m-%d %h:%i:%s');

可以显示数据库的编码
show create table table_name;

在写SQL语句之前,请加上这一句,以保证前台和后台的编码一致
set names gbk;
MySql安装目录下,请找到my.ini文件,在[mysql]下面把编码改成gbk, 在[mysqld]下面
编码改成utf8 这样以后就不用写set names gbk了!!之后重启MYSql
[mysql]
# 客户端的编码
default-character-set=gbk
[mysqld]
# 服务器端的编码
default-character-set=utf8


Sql代码 复制代码 收藏代码
  1. # 创建存储过程(不带参数的)   
  2. delimiter //   
  3. create procedure user_avg()   
  4. begin  
  5.     select avg(money) as avg_money from user;   
  6. end //   
  7. delimiter ;   
  8.   
  9. # 调用存储过程   
  10. call user_avg();   
  11.   
  12. # 删除存储过程   
  13. drop procedure if exists user_avg;   
  14.   
  15. -------------------------------------   
  16. # 创建存储过程(带参数的), out是输出值   
  17. delimiter //   
  18. create procedure proce(   
  19.     out low decimal(8, 2),   
  20.     out high decimal(8, 2),   
  21.     out average decimal(8, 2)   
  22. )   
  23.   
  24. begin  
  25.     select min(money) from user into low;   
  26.     select max(money) from user into high;   
  27.     select avg(money) from user into average;   
  28. end //   
  29. delimiter ;   
  30.   
  31. # 调用存储过程   
  32. call proce(@low, @high, @average);   
  33.   
  34. # 检索   
  35. select @low;   
  36. select @high;   
  37. select @average;   
  38. select @low, @high, @average;   
  39.   
  40. -------------------------------------   
  41. # 创建存储过程(带参数的), in是输入值   
  42. create table products   
  43. (   
  44.     id int primary key auto_increment,   
  45.     name varchar(30),   
  46.     price float,   
  47.     quantity int  
  48. );   
  49.   
  50. insert into products(name, price, quantity) values('umbrella', 20.0, 5);   
  51. insert into products(name, price, quantity) values('knife', 200.0, 10);   
  52. insert into products(name, price, quantity) values('trousers', 300.0, 20);   
  53.   
  54. delimiter //   
  55. create procedure ordertotal(   
  56.     in number int,   
  57.     out total decimal(8, 2)   
  58. )   
  59. begin  
  60.     select sum(price * quantity) from products where id = number into total;   
  61. end //   
  62. delimiter ;   
  63.   
  64. call ordertotal(1, @sum);   
  65. select @sum;   
  66.   
  67. -------------------------------------   
  68. # 显示所有存储过程   
  69. show procedure status;   
  70. # 删除存储过程   
  71. drop procedure if exists ordertotal;   
  72. -------------------------------------   
  73.   
  74. -------------------------------------   
  75. # \. D:\\SQL\\procedure.sql   
  76. -------------------------------------   
  77.   
  78. public class Procedure {   
  79.   
  80.     public static void main(String[] args) throws Exception {   
  81.         orderTotal("umbrella", 1); //umbrella: 100.0   
  82.         orderTotal("knife", 2); //knife: 2000.0   
  83.         orderTotal("trousers", 3); //trousers: 6000.0   
  84.     }   
  85.        
  86.     static void orderTotal(String nameint id) throws Exception {   
  87.         Connection conn = null;   
  88.         CallableStatement cs = null;   
  89.         ResultSet rs = null;   
  90.         try {   
  91.             conn = JdbcUtils.getConnection();   
  92.             //创建语句   
  93.             String sql = "{ call ordertotal(?,?) }";   
  94.             cs = conn.prepareCall(sql);   
  95.             //注册输出参数   
  96.             cs.registerOutParameter(2, Types.DECIMAL);   
  97.             cs.setInt(1, id);   
  98.             cs.executeUpdate();   
  99.                
  100.             //拿出输出参数   
  101.             float total = cs.getFloat(2);   
  102.             System.out.println(name + ": " + total);   
  103.         } finally {   
  104.             JdbcUtils.free(rs, cs, conn);   
  105.         }   
  106.     }   
  107.   
  108. }  
分享到:
评论

相关推荐

    ssm + mysql5.5 + navicat11.2.7

    SSM + MySQL5.5 + Navicat11.2.7 是一套常见的Java Web开发技术组合,适用于构建各类Web应用程序,尤其是企业级项目。在这个毕业设计中,开发者使用了Spring、SpringMVC和MyBatis(简称SSM)作为后端框架,MySQL5.5...

    毕业设计,房产销售管理系统,数据库版本当时使用mysql5.0,上传的sql文件在mysql5.5也可用.zip

    数据库版本提及的是“mysql5.0”,这是MySQL数据库的一个早期版本,具有良好的稳定性和性能,而“上传的sql文件在mysql5.5也可用”表明该系统的数据库脚本兼容性较好,可以在更新的MySQL 5.5版本上运行,这意味着...

    mysql-connector-java-5.1.27

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而`mysql-connector-java-5.1.27`则是MySQL官方为Java开发者提供的一个关键组件,用于在Java应用程序中与MySQL数据库进行交互。这个驱动包允许Java程序通过JDBC...

    整合Flash Builder4.0+MyEclipse 8.6+BlazeDS+Sping 3.0+Hibernate3.3+MySQL5.5+Tomcat+JDK1.6.pdf

    9. **MySQL 5.5**: MySQL是一款广泛使用的开源关系型数据库管理系统,这里用于存储和管理应用的数据。 10. **JDBC驱动**: JDBC(Java Database Connectivity)是Java连接数据库的标准接口,需要对应的MySQL JDBC...

    MySql 5数据库驱动包

    MySQL驱动包还包含了一些高级特性,如连接池支持、事务处理、批处理操作、存储过程调用等。例如,使用连接池如C3P0或HikariCP可以更高效地管理数据库连接,避免频繁创建和关闭连接的开销。此外,驱动包还提供了处理...

    MySQL驱动包.zip

    8. **存储过程和函数调用**:允许执行MySQL的存储过程和函数,并处理返回的结果。 9. **元数据获取**:提供方法获取数据库和表的元数据信息,便于动态构建SQL语句或进行数据库版本检查。 10. **错误处理和日志记录...

    lucene5.5demo

    《深入理解Lucene 5.5:基于Spring MVC与MySQL的实战示例》 Lucene是一个高性能、全文本检索库,被广泛应用于各种搜索引擎的开发。在这个“lucene5.5demo”项目中,开发者利用Lucene 5.5版本,结合Spring MVC框架和...

    mysql-connector-java-8.0.19_Java8_MYSQL_源码

    MySQL Connector/J 8.0.19 是MySQL数据库与Java应用程序之间的重要桥梁,它是一个用于连接Java应用程序到MySQL服务器的JDBC驱动程序。这个压缩包包含的“mysql-connector-java-8.0.19.jar”是这个驱动的实现文件,...

    mysql-connector-java-5.1.48.tar.gz

    8. 支持存储过程和函数:可以通过CallableStatement接口调用MySQL的存储过程和函数。 9. 集成其他Java框架:MySQL Connector/J可以无缝集成到Spring、Hibernate等Java开发框架中,简化数据库操作。 10. 分页查询:...

    mysql-connector-java-5.1.18.rar )

    4. 支持新的数据库特性:如分区表、存储过程、触发器等MySQL的新特性。 5. 支持Java 6:对于当时的主流Java版本提供了全面支持。 在Java应用中使用MySQL Connector/J的步骤通常如下: 1. 添加依赖:将“mysql-...

    mysql-connector-java-5.1.36

    这个版本的驱动适用于与 MySQL 5.5 和 5.6 服务器版本进行通信,是Java开发人员在处理MySQL数据库时不可或缺的组件。下面将详细介绍该驱动的一些关键知识点: 1. JDBC(Java Database Connectivity):JDBC 是 Java...

    mysql-5.5.21-win32.msi的安装软件,及mysql-connector-java-5.0.8-bin.jar

    MySQL 5.5的主要改进: - 性能提升:优化了查询执行引擎,提高了InnoDB存储引擎的性能。 - InnoDB存储引擎增强:支持自适应哈希索引、更快的插入操作、更少的磁盘I/O。 - 二进制日志增强:支持压缩二进制日志,减少...

    mysql-connector-java-5.1.22-bin.jar

    - 支持存储过程的调用和结果集的处理。 - 支持自动重连和故障恢复,提高系统的可用性。 - 支持多种数据库特性,如事务处理、索引、视图等。 5. 兼容性: MySQL Connector/J 5.1.22 适用于 Java SE 5 及以上版本...

    mysql连接驱动包

    它提供了与MySQL 5.x版本数据库的连接功能,包括基本的CRUD操作、事务处理、存储过程调用等。然而,由于版本较旧,可能不包含某些新特性,比如对MySQL 8.x新特性的支持,或者对新安全标准的遵循。 2. **mysql-...

    mysql-connector-java-6.0.2.jar

    `mysql-connector-java`是MySQL提供的JDBC驱动,版本6.0.2代表这是一个较新的稳定版本,发布于2016年,提供了对MySQL 5.5至5.7版本的支持,并具备了更好的性能和安全性。 **一、mysql-connector-java的作用** 1. **...

    jsp网上在线购物系统(采用MVC模式 环境myeclipse和mysql)

    环境配置包括**MyEclipse**作为开发工具,以及**MySQL**作为数据库管理系统。 **MVC模式**是一种软件设计模式,用于分离应用程序的数据、业务逻辑和用户界面。在这个项目中,**Model**负责处理数据和业务逻辑,例如...

    mybatis+mysql驱动.rar

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...

    mysql-connector-java-5.1.46.zip

    - **兼容性**:支持MySQL的各种特性,如存储过程、触发器、视图等,同时兼容多种Java应用服务器。 **MySQL Connector/J 5.1.46版本特性:** - 提供了对MySQL 5.5至5.7版本的支持。 - 包含了一些性能优化和错误修复...

    Mysql的学习笔记01

    比如mysql的Java的JDBC驱动程序——mysql-connector-java-5.1.26-bin.jar。再比如.net平台的操作数据库的规范ADO。 模块2:连接池,Mysql自身有个连接池,为了连接线程的复用,Mysql将其进行了池化。将连接资源进行...

    mysql jdbc驱动

    MySQL JDBC驱动,全称为MySQL Connector/J,是MySQL官方提供的用于Java应用程序与MySQL数据库进行交互的驱动程序。它遵循Java Database Connectivity (JDBC) API规范,使得开发者能够在Java平台上方便地执行SQL语句...

Global site tag (gtag.js) - Google Analytics