sql函数设计:

一开始本来是直接用Java的jdbc直接传输操作语句的。但后来学了存储过程发现存储过程可以提高不少的效率。就重构了自己对数据库的操作代码。包括:开启,查找,修改,关闭。

开启:直接使用的构造函数,以后使用的时候可以直接把对象new成一个static的变量,可以一直使用,直到使用关闭函数。

具体操作(查(find),写(write),改(change)):编写的思路是现在mysql数据库里面实现函数和存储过程。

   巨坑提示1,存储过程和函数的区别是,函数必须返回一个数据,return语句必须写,而存储过程可以返回,也可以不返回这个数据。

   一开始我使用的是存储过程,实现find,但是,有个巨坑的东西(mysql的设计缺陷,那就是IN的变量,即存储过程名旁边的参数,不可以直接表示字段,巨坑,还要深入学习动态的sql才可以表示字段),然后我就多写了几个函数,每个函数实现不同字段的查询,比如,findbyemail函数就是通过where email(email是字段)=参数;实现查找。

   然后为了让功能齐全,就设计了多个函数,比如findbyname,findbyphone这些函数存在数据库里。然后数据库编译好。等着Java直接调用(这里比较方便的就是我们的调用直接用的是调用语句 "{call 函数名(?)}",这里的?问号,是指的你的参数。也意味着你的存储过程或者函数有多少参数就必须用多少个问号,然后发送给数据库。性能提高不少)

                              

  巨坑提示2,在发送调用存储过程的sql语句的过程中,有可能会出现引号(')解析错位的尴尬错误,而且我还没办法纠正。比如writeuser存储过程,发送过去的语句被解析错了,就是引号错位。卡了我一上午的时间。然后就使用的函数,放弃使用存储过程。性能影响比较小。还可以返回一个数据可以判断一下。比如我的writeuser函数,我可以这样写,就不会出现这样尴尬的错误了

                                 string  sql = “{?=call writeuser(?????)}”;

 public String WriteUser(String name,String phone,String email,String pwd,String status) throws SQLException {
//使用方法:比如写入用户数据name,phone,email,pwd,status,我们可以这样写write('张三','110','110@qq.com','999','1') String sql = "{? = call writeuser(?,?,?,?,?)}"; CallableStatement cs = connection.prepareCall(sql); cs.registerOutParameter(1,Types.CHAR);//这里实在规定你函数里面返回的数据类型 cs.setString(2,name);//以下都是在向问号里面传递参数 cs.setString(3,phone); cs.setString(4,email); cs.setString(5,pwd); cs.setString(6,status); cs.execute(); String value = cs.getString(1);
if (value=="1"){
cs.close();
return "ok";
}
cs.close();
return "no";
}

  

web项目踩坑过程的更多相关文章

  1. React-Native 踩坑过程

    踩坑过程: 解决方法就是去 SDK Manager 把 23.0.1 的版本下载了 而如果报错信息中含有bintray.com.gradle.org等网址,请***,反复重试,或者去react nat ...

  2. linux上安装redis的踩坑过程

    redis用处很广泛,我不再啰嗦了,我按照网上教程想在linux上安装下,开始了踩坑过程,网上买了一个linux centos7.3,滴滴云的,巨坑无比啊,不建议大家用这家的! redis 为4.0, ...

  3. 使用impala连接hive踩坑过程

    一.打包镜像出错 docker build总是出错,如果你用的是python3.7,可以考虑使用python3.6版本 并且注意:选择thrift-sasl==0.2.1,否则会出现: Attribu ...

  4. 从0开始的InfiniBand硬件踩坑过程

    由于科学计算实验的需求,需要使用InfiniBand做一个持久性内存全互联的分布式存储系统.其中从网卡到交换机使用Mellanox全家桶,而在Mellanox网卡与交换机的使用过程中还是遇到了不少的问 ...

  5. 首个hybird商业项目踩坑总结

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  6. 记一次Docker中部署Asp.Net Core 3.0的踩坑过程

    最近公司打算重构目前直销报单系统到微信小程序中,目前的系统只能在PC上面使用,这两年也搞过App端,但是由于人员流动和公司架构调整最后都不了了之,只留下一堆写了一半的接口.以前的接口依然是使用Asp. ...

  7. electron项目踩坑--A JavaScript error occurred in the main process:document is not defined

    前言 记录electron-vue项目开发中遇到的一个错误,运行时报错如图: 控制台报错如下: ReferenceError: document is not defined at Object.&l ...

  8. Office Web addin 踩坑计:替换后台网站为MVC框架时遇到的问题

    Office Web Addin 模板程序的后台本质上是一个网站,你在调试的时候可以发现它的进程是一个32位的IE进程 所以可以把它替换成Asp.net的网站. 替换方法: 1.点击WordRevie ...

  9. 新检出普通web项目爬坑记【我】

    新检出一个普通 web项目, 1.首先发现需要用到的一些代码包没有加到构建目录, 先加入构建: 2.然后发现项目大面积报错, 随便打开代码看下,发现是因为缺少jar包,因为报错的代码太多了,所以使用 ...

随机推荐

  1. Redis中的Java分布式缓存

    为什么在分布式Java应用程序中使用缓存?今天学习了两节优锐课讲解分布式缓存的内容,收获颇多,分享给大家. 在提高应用程序的速度和性能时,每毫秒都是至关重要的.例如,根据Google的一项研究,如果网 ...

  2. Day 02 作业

    作业 一 什么是编程? 基于编程语言的语法格式将自己脑中里想让计算机做的事,写到文件中. 二 简述计算机五大组成 控制器,运算器,存储器,输入设备,输出设备 三 操作系统有什么用? 操作系统直接与硬件 ...

  3. 【MyBatis-Plus】使用学习

    [MyBatis-Plus]使用学习 ============================================== 1.插入和更新字段空和非空控制 2.插入和更新字段填充策略 ==== ...

  4. 【NodeJS】nvm

    [NodeJS]nvm node多版本管理 NVM_HOME=C:\env\nvm NVM_SYMLINK=C:\env\nodejs 查看版本 nvm v 查看当前使用的node版本 nvm cur ...

  5. 201871010119-帖佼佼《面向对象程序设计(java)》第十三周学习总结

    博客正文开头格式: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nw ...

  6. ansible部署Tomcat

    首先要准备的环境就是免密登录 这是要在ansible-playbook中所写的内容---- hosts: tomcat tasks:   - name: 关闭防火墙     service: name ...

  7. 《Android项目实战--手机安全卫士》读后感

    上学期在学校图书馆看到此书,觉得比较贴近实践,于是寒假研究了一番,也算是体会了一把社会培训机构的模式. 由于时间关系,最后两章还没弄完,但感觉每章节的流程相似,加之马上要回学校了,所以打算在家的最后一 ...

  8. CSS | 圣杯布局、双飞翼布局 | 自适应三栏布局

    圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式.两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局 虽然两者的实现方法略有差异,不过都遵循了以下要点: 1.两侧宽度固定 ...

  9. 《Java知识应用》Linux系统下word转PDF

    仅供学习,如需商用请联系开发商:https://apireference.aspose.com/java/words Jar包下载路径: 链接: https://pan.baidu.com/s/1s7 ...

  10. SpringBoot SpringCloud 热部署 热加载 热调试

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] Crazy-Sp ...