Java字符串简化_关于java查询语句 如何简化的问题

首先,请你告诉我你使用PreparedStatement的理由,为什么不使用Statement?二者有什么区别?

然后 你用到了PreparedStatement的特性了吗?

接下来我们在探讨这代码该怎么写。下面的代码仅供参考,基本不具有实践意义。

public static void main(String[] args) {

Map params = new HashMap();

param.put("user_name", "小美");

param.put("mobile", "18712345678");

param.put("age", "33");

// 如果传递条件不限于相等,则如下

// param.put("nick_name like=?", "小李");

// param.put("age=?", "33");

query(params);

}

public List query(Map params) throws Exception{

List result=new ArrayList();

Connection conn=DBUtil.getConnection();

StringBuilder sb=new StringBuilder();

sb.append("select * from imooc_goddess");

if(params!=null && params.keySet().size() > 0){

sb.append(" where 1=1");

Set keySet = params.keySet();

for (String key : keySet) {

sb.append(" and "+key+"=?");

// 如果判断条件不是有等于可以如下

// sb.append(" and " + key);

}

}

PreparedStatement ptmt=conn.prepareStatement(sb.toString());

System.out.println(sb.toString());

if(params!=null && params.keySet().size() > 0){

Set keySet = params.keySet();

int index = 0;

for (String key : keySet) {

index++;

Object value = params.get(key);

if(value instanceof String){

ptmt.setString(index, (String)value);

}else if(value instanceof Integer){

ptmt.setInt(index, (Integer)value);

}else if(value instanceof Date){

ptmt.setTimestamp(index, new Timestamp(((Date)value).getTime()));

}else{

//......

}

}

}

ResultSet rs=ptmt.executeQuery();

Goddess g=null;

while(rs.next()){

g=new Goddess();

g.setId(rs.getInt("id"));

g.setUser_name(rs.getString("user_name"));

g.setAge(rs.getInt("age"));

g.setSex(rs.getInt("sex"));

g.setEmail(rs.getString("email"));

g.setMobile(rs.getString("mobile"));

result.add(g);

}

return result;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

phpcms_v9推送到其他栏目后再在其他栏目删除导致数据库出错

修改phpcms/model/content_model.class.php大概454行的update_category_items()函数private function update_category_items($catid,$action add,$cache 0) {$this->category_db pc_base::load_model(category_model);if($actionadd) {$this->category_db->update…

Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)

参考:网络编程前的一些小知识–Linux笔记 作者:一只青木呀 发布时间: 2021-04-12 23:19:10 网址:https://blog.csdn.net/weixin_45309916/article/details/115560197 参考:DNS域名解析 作者:一只青木呀 发布…

java ndk 在哪_NDK简介

一、NDK简介:C/C的动态库。Dalvik通过JNI编程方式调用C/C代码。NDK编程提高软件性能,加密保护APK文件ndk-build NDK编译生成脚本Java编译时会根据java声明文件生成dex文件,即使没有java代码NDK共享库:NDK生成的 .so文件(类…

ARM汇编基础详解(PS学习汇编的原因)

目录前言1.GNU 汇编语法2.Cortex-A7 常用汇编指令2.1 处理器内部数据传输指令(内部寄存器数据非内存数据)2.2 存储器访问指令(RAM)2.3 压栈和出栈指令(了解)2.4 跳转指令2.5 算术运算指令2.6 逻辑运算指令前…

java formatter()_Java Formatter locale()用法及代码示例

locale()方法是java.util.Formatter的内置方法,该方法返回语言环境。此区域设置由格式化程序构造设置。具有语言环境参数的该对象的format方法不会更改此值。用法:public Locale locale()参数:该函数不接受任何参数。返回值:如果未…

linux中tree命令

需要安装tree包(安装:yum -y install tree)。 tree命令的选项说明如下: 【 匹配选项:】 -L:用于指定递归显示的深度,指定的深度必须是大于0的整数。 -P:用于显示统配符匹配模式的目录和文件,但是…

查看LINUX进程内存占用情况

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况…

ARM(IMX6U)裸机汇编LED驱动实验——驱动编写、编译链接起始地址、烧写bin文件到SD卡中并运行

参考:Linux之ARM(IMX6U)裸机汇编LED驱动实验–驱动编写 作者:一只青木呀 发布时间: 2020-08-07 09:13:48 网址:https://blog.csdn.net/weixin_45309916/article/details/107851318 参考:Linux之…

Tools: geos 使用指南

1. 下载geos 2. 进入VS开发人员命令提示3、依次执行如下命令 >VCVARS32.BAT>cd D:\DevTool\geos-3.7.0>atuogen.bat>nmake /f makefile.vc> 编译成功后,会在D:\DevTool\geos-3.7.0\src目录下生成geos.lib, geos_i.lib, geos_c_i.lib, geos.dll, geos…

java 面试 概率论_编程培训-115个Java面试题和答案B.pdf

编程培训-115个Java面试题和答案B.pdf “玩转”Java系列 1 题目115个Java面试题和答案终极(下) 第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类, 垃圾收集器,本章主要讨论异常处理,Ja…

An Introduction to Our Code Breaking Team

小朋友们大家好,知道我们是谁吗?对了,我们就是Team Code Breaking! 关于这个队名,我们讨论了很久,这个Code Breaking似乎是来源于某部电影,又似乎是来源于某本小说,或许单纯地只是觉…

ARM(IMX6U)裸机之I.MX6ULL硬件启动方式的选择

参考:Linux之ARM(IMX6U)裸机之I.MX6ULL启动方式详解 作者:一只青木呀 发布时间: 2020-08-09 16:32:07 网址:https://blog.csdn.net/weixin_45309916/article/details/107891591 目录启动方式的选择①.串行下…

python 操作mongo

1.  导包: import pymongo 2.  建立连接 client pymongo.MongoClient("127.0.0.1",27017) 3.  获取数据库 db client["test1"] 4.  获取集合 col db["t2"] 5.  插入数据: col.insert_one({ name:aa , age:2 …

java 混码_kotlin java 混合代码 maven 打包实现

kotlin简介kotlin是一种针对java 平台的新编程语言。kotlin简洁、安全、务实,并且专注于与java代码的互操作性。它几乎可以用在现在java使用的任何地方:服务端开发、android应用等等。kotlin 可以很好地和所有现存的java库和框架一起工作,而且…

w3 protocol

http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)

参考:Linux之ARM(IMX6U)裸机之I.MX6ULL镜像烧写以及启动头文件的详解 作者:一只青木呀 发布时间: 2020-08-09 17:10:00 网址:https://blog.csdn.net/weixin_45309916/article/details/107895975 目录BOOT R…

oracle日期函数

ORACLE日期函数大全!2009-03-12 14:16:10日期函数 Oracle PL/SQL Oracle的日期函数相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统…

(转)git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”...

对于git的提交一直很小心翼翼,感觉一不小心就会踩到莫名的坑。 这不, 某天commit 就遇到了On branch master nothing to commit (working directory clean) 一查意思。你的分支很干净? 干净?excuse me? 然后git push …

php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)

本文介绍下,对php数组去除重复的方法,包括一维数组的去重、二维数组的去重。有需要的朋友参考下。首先,来看一维数组重复项的去除方法。使用array_unique函数,例如:输出结果:Array ( [0] > apple [1] &g…

ARM(IMX6U)裸机C语言版本LED驱动实验(汇编进入处理器SVC模式、SP堆内存、跳转main函数、链接起始地址)

参考:Linux之ARM(IMX6U)裸机C语言LED驱动实验–驱动编写,编译 作者:一只青木呀 发布时间: 2020-08-11 11:20:17 网址:https://blog.csdn.net/weixin_45309916/article/details/107930284 目录0.简介①、汇编…