翼度科技»论坛 编程开发 mysql 查看内容

ssm框架如何调用mysql存储过程

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
1.建表
  1. /*
  2. Navicat MySQL Data Transfer
  3. Source Server         : localMysql
  4. Source Server Version : 50628
  5. Source Host           : 127.0.0.1:3306
  6. Source Database       : testmysql
  7. Target Server Type    : MYSQL
  8. Target Server Version : 50628
  9. File Encoding         : 65001
  10. Date: 2017-06-19 09:29:34
  11. */
  12. SET FOREIGN_KEY_CHECKS=0;
  13. -- ----------------------------
  14. -- Table structure for t_user
  15. -- ----------------------------
  16. DROP TABLE IF EXISTS `t_user`;
  17. CREATE TABLE `t_user` (
  18.   `id` bigint(11) NOT NULL AUTO_INCREMENT,
  19.   `user_name` varchar(255) DEFAULT NULL COMMENT '用户名',
  20.   `user_phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  21.   `user_email` varchar(255) DEFAULT NULL COMMENT '邮箱地址',
  22.   `user_pwd` varchar(32) DEFAULT NULL COMMENT '加盐后用户密码',
  23.   `pwd_salt` varchar(6) DEFAULT NULL COMMENT 'MD5盐',
  24.   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  25.   `modify_time` datetime DEFAULT NULL COMMENT '最后修改时间',
  26.   `is_delete` tinyint(4) DEFAULT NULL COMMENT '是否删除,0-未删除;1-已删除',
  27.   PRIMARY KEY (`id`)
  28. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户登录表';
  29. -- ----------------------------
  30. -- Records of t_user
  31. -- ----------------------------
  32. INSERT INTO `t_user` VALUES ('1', '子了a', '13285250574', '1045221654@qq.com', '05126a423a9379d529e4ee61a212fa55', 'KJUYT5', '2016-07-15 23:38:56', '2016-07-15 23:39:09', '0');
  33. INSERT INTO `t_user` VALUES ('2', 'bbbb', '159852505743', '1198224554@qq.com', '98bd3a1bebde01ad363d3c5a0d1e56da', '656JHU', '2016-07-15 23:39:01', '2016-07-15 23:39:13', '0');
  34. INSERT INTO `t_user` VALUES ('3', '王尼玛', '13685250574', '1256221654@qq.com', '5470db9b63c354f6c8d628b80ae2f3c3', '89UIKQ', '2016-07-15 23:39:05', '2016-07-15 23:39:16', '0');
复制代码
2.创建存储过程
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `UPDATE_USER`(IN `in_id` integer,IN `in_user_name` varchar(20),OUT `out_user_phone` varchar(20))
  2. BEGIN
  3. update t_user set user_name = in_user_name WHERE t_user.id = in_id;  
  4.   select user_phone INTO out_user_phone from t_user where id = in_id;  
复制代码
3.service调用
  1. package cn.demo.service;
  2. import cn.demo.dao.AccountDao;
  3. import cn.demo.model.Account;
  4. import org.junit.Test;
  5. import org.junit.runner.RunWith;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.test.context.ContextConfiguration;
  8. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. import static junit.framework.TestCase.assertEquals;
  13. /**
  14. * Created by Administrator on 2017/3/22.
  15. */
  16. @RunWith(SpringJUnit4ClassRunner.class)
  17. //这个是用来加载写好的配置文件,传入的值是数组形式多个配置文件如下 {"····","·······"}
  18. @ContextConfiguration({"classpath:spring/spring-dao-config.xml"})
  19. public class AccountServiceTest {
  20.     @Autowired
  21.     private AccountDao accountDao;
  22. //    @Test
  23.     public void getAllAccount() throws Exception {
  24.         List<Account> accountList = accountDao.getAllAccount();
  25.         System.out.println("accountList=" + accountList.toString());
  26.     }
  27.     @Test
  28.     public void testGetNamesAndItems() {
  29.         Map<String, Object> parms = new HashMap<String, Object>();
  30.         parms.put("in_id", 1);
  31.         parms.put("in_user_name", "子了");
  32.         parms.put("out_user_phone", new String());
  33.         accountDao.updateUser(parms);
  34.         assertEquals("13285250574", parms.get("out_user_phone"));
  35.     }
  36. }
复制代码
4.dao层
  1. package cn.demo.dao;
  2. /**
  3. * Created by chengcheng on 2017/6/2 0002.
  4. */
  5. import cn.demo.model.Account;
  6. import org.springframework.stereotype.Repository;
  7. import java.util.List;
  8. import java.util.Map;
  9. /**
  10. * Created by Administrator on 2017/3/22.
  11. */
  12. @Repository
  13. public interface AccountDao {
  14.     String updateUser(Map<String, Object> parms);
  15. }
复制代码
5.xml文件
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="cn.demo.dao.AccountDao">
  6.     <select id ="updateUser" parameterType= "map" statementType="CALLABLE" >
  7.         <!--注明statementType="CALLABLE"表示调用存储过程-->
  8.         {call UPDATE_USER(
  9.         #{in_id, jdbcType=INTEGER, mode=IN},
  10.         #{in_user_name, jdbcType= VARCHAR, mode=IN},
  11.         #{out_user_phone, mode=OUT, jdbcType= VARCHAR}
  12.         )}
  13.         <!--传入传出参数要注明mode=IN/OUT 并要注明jdbcType(在网上可以查询mybatis支持哪些jdbcType类型),返回参数要注明对应的resultMap-->
  14.     </select >
  15. </mapper>
复制代码
6.接下来运行junit就可以了

如果是在直接在应用中使用,把juinit内容直接放入service就可以了
到此这篇关于ssm框架调用mysql存储过程的文章就介绍到这了,更多相关ssm框架mysql存储过程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/database/320631s44.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具