Java数据库学习之SQL语句动态拼接
- public class UserDaoImpl implements UserDao {
- @Override
- public List<User> getUserByPage(PageInfo pif,User user){
- List<User> lu = new ArrayList<User>();
- Connection conn = DButil.getconn();
- // 注意拼接式字符串之间要有空格 userinfo u "
- String sql = "SELECT u.uname,u.uaddr from userinfo u ";
- // !"".equals(user.getUname()) 如果前段搜索用户名不填写,传到后端的是空值
- boolean contactAnd = false;
- String myWhere = "where";
- String myAnd = "and";
- List<String> params = new ArrayList<>();
- if(user.getUname()!=null&&!"".equals(user.getUname())) {
- if(contactAnd) {
- // " 空格 uname = ?空格 "
- sql += myAnd + " uname = ? ";
- }else {
- sql += myWhere + " uname = ? ";
- contactAnd = true;
- }
- params.add(user.getUname());
- }
- if(user.getUaddr()!=null&&!"".equals(user.getUaddr())) {
- if(contactAnd) {
- sql += myAnd + " uaddr like ? ";
- }else {
- sql += myWhere + " uaddr like ? ";
- contactAnd = true;
- }
- params.add("%"+user.getUaddr()+"%");
- }
- // 拼接分页查询的limit
- sql+= " Limit "+(pif.getPage()-1)*pif.getPageSize() +","+pif.getPageSize();
- try {
- PreparedStatement ps = conn.prepareStatement(sql);
- // 占位符个数不确定,所以不能直接.所以需要对是否有占位符有几个进行判断
- // 如果有拼接占位符号?,则在循环中对占位符进行赋值
- for(int i = 0;i<params.size();i++) {
- ps.setString(i+1,params.get(i));
- }
- ResultSet rs = ps.executeQuery();
- while(rs.next()) {
- User user1 = new User();
- user1.setUname(rs.getString("uname"));
- user1.setUaddr(rs.getString("uaddr"));
- lu.add(user1);
- }
- System.out.println(lu);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return lu;
- }
Java数据库学习之SQL语句动态拼接的更多相关文章
- Java web实现综合查询+SQL语句拼接
首先展示图形界: 界面比较简单,但麻雀虽小五脏俱全.因为数据库只有六种数据类型,所以最多添加六个查询框. 测试以下问题: 删除方式是从上往下开始的,如果删除之后会有问题.(后续改进ing) 若干个并且 ...
- 在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计、SQL语句、java等层面的解决方案。
在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计.SQL语句.java等层面的解决方案. 解答: 1)数据库设计方面: a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 whe ...
- SQL数据库学习,常用语句查询大全
数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...
- [转帖]关于Java中SQL语句的拼接规则
关于Java中SQL语句的拼接规则 自学demo 的时候遇到的问题 结果应该是 '"+e.getName()+"' 注意 一共有三组标点符号 (除去 方法函数后面的括号) 实现目标 ...
- Java数据库学习之模糊查询(like )
Java数据库学习之模糊查询(like ): 第一种方式:直接在SQL语句中进行拼接,此时需要注意的是parm在SQL语句中需要用单引号拼接起来,注意前后单引号之间不能空格 String sql = ...
- java执行多条SQL语句
一次执行多条SQL的技术要点如下: DatabaseMetaData接口是描述有关数据库的整体综合信息,由于DatabaseMetaData是接口,所以没有构造方法,故不能使用new来创建Databa ...
- 理想中的SQL语句条件拼接方式 (二)
问题以及想要的效果,不重复叙述,如果需要的请先看 理想中的SQL语句条件拼接方式 . 效果 现在有2个类映射数据库的2张表,结构如下: public class User { public int U ...
- 通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷
原文:通过MyEclipse工具直接操作数据库,执行sql语句,方便快捷 通过MyEclipse操作数据库,执行sql语句使我们不用切换多个工具,直接工作,方便快捷.效果如下: 步骤1:通过MyEcl ...
- 【转载】 Sqlserver查看数据库死锁的SQL语句
在Sqlsever数据库中,有时候操作数据库过程中会进行锁表操作,在锁表操作的过程中,有时候会出现死锁的情况出现,这时候可以使用SQL语句来查询数据库死锁情况,主要通过系统数据库Master数据库来查 ...
随机推荐
- Pycharm使用教程(四)-安装python依赖包(非常详细,非常实用)
简介 在做python开发时,需要很多依赖包,如果已经安装pip,安装依赖包,可以通过命令行:没有安装的,也可以通过PyCharm安装. 具体安装步骤 1.在File->Setting,如图: ...
- Android多Module下的Application引用方式
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android开发时,Application一般都放在APP中,Lib模块如果想引用Application则需要在APP中进行传递, ...
- Bumblebee微服务网关的部署和扩展
Bumblebee是.netcore下开源基于BeetleX.FastHttpApi扩展的HTTP微服务网关组件,它的主要作用是针对WebAPI集群服务作一个集中的转发和管理:作为应用网关它提供了应用 ...
- java~api返回值的标准化
api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...
- Java基础系列-Stream
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/10748817.html 一.概述 Stream操作简称流操作,这里的流与IO流毫无关系, ...
- 一次node-sass安装记录
node-sass的版本是3.9.3 Please restart this script from an administrative PowerShell! 在当前powershell中执行下命令 ...
- asp.net三层架构增删改查
数据库 use master if exists (select * from sysdatabases where name='bond') drop database bond create da ...
- jsp内置对象-application对象
隐含对象application是javax.servlet.ServletContext接口实现类的对象,其拥有application的作用范围,即application可以用于在多个用户之间保存数据 ...
- KsUML 免费的类图建模工具
最近基于SharpDevelop和NClass两个开源软件,开发了一个免费的类图建模工具,详情请访问 www.TimeGIS.com KsUML类图建模工具是一个用来给软件开发人员使用的一种UML类图 ...
- 浅谈Flutter(一):搭建Flutter开发环境
学习内容来自: Flutter中文网 . Flutter实战 -------------------------------------------------------------------- ...