package com.hopetesting.dao.impl;

import com.hopetesting.dao.UserDao;
import com.hopetesting.domain.User;
import com.hopetesting.utils.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* @author newcityman
* @date 2019/9/7 - 21:07
*/
public class UserDaoImpl implements UserDao {
private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());

@Override
public List<User> findAllUser() {
String sql = "select * from user";
List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
return users;
}

@Override
public User login(User user) {
String sql = "select * from user where username=? and password=? ";
User loginUser = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(User.class), user.getUsername(), user.getPassword());
return loginUser;
}

@Override
public void add(User user) {
String sql = "insert into user values(null,?,?,?,?,?,?,null,null)";
jdbcTemplate.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());

}

@Override
public void delUser(int id) {
String sql = "delete from user where id=?";
jdbcTemplate.update(sql, id);
}

@Override
public User findUserById(int id) {
String sql ="select * from user where id= ?";
return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),id);
}

@Override
public void updateUserById(User user) {
String sql="update user set name=?, gender=?, age=?, address=?, qq=?, email=? where id=?";
jdbcTemplate.update(sql,user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail(),user.getId());
}

@Override
public int findTotalCount(Map<String, String[]> condition) {
//1、定义一个sql模板
String sql="select count(*) from user where 1 = 1 ";
StringBuilder sb = new StringBuilder(sql);
//2、遍历map,拼装sql语句
Set<String> keySet = condition.keySet();
//定义一个参数的集合
List<Object> parameters = new ArrayList<Object>();
for (String key : keySet) {
//获取value
if("currentPage".equals(key) ||"rows".equals(key)){
continue;
}
String value = condition.get(key)[0];
if(value!=null && !"".equals(value)){
sb.append(" and "+key+" like ? ");
parameters.add("%"+value+"%"); //?条件的值
}
}
/* System.out.println(sb.toString());
System.out.println(parameters);*/
return jdbcTemplate.queryForObject(sb.toString(),Integer.class,parameters.toArray());
}

@Override
public List<User> findByPage(int startIndex, int rows, Map<String, String[]> condition) {
//1、定义一个末班初始化sql
String sql="select * from user where 1 = 1 ";
StringBuilder sb = new StringBuilder(sql);
//2、遍历map
Set<String> keySet = condition.keySet();
//3、定义参数的集合
List<Object> params = new ArrayList<Object>();
for (String key : keySet) {
//排除 分页条件参数
if("currentPage".equals(key) || "rows".equals(key)){
continue ;
}
// 获取value值
String value = condition.get(key)[0];
// 判断value是否有值
if(value!=null && !"".equals(value)){
// 有值
sb.append(" and "+key+" like ? ");
params.add("%"+value+"%"); //?条件的值
}
}
//添加分页查询
sb.append(" limit ?,? ");
// 添加分页查询参数
params.add(startIndex);
params.add(rows);
/* System.out.println(sb);
System.out.println(params);*/
return jdbcTemplate.query(sb.toString(),new BeanPropertyRowMapper<User>(User.class),params.toArray());
}
}

用户信息查询系统_daoImpl的更多相关文章

  1. 老男孩Day4作业:员工信息查询系统

    1.作业需求: (1).工信息表程序,实现增删改查操作: (2).可进行模糊查询,语法至少支持下面3种:          select name,age from staff_table where ...

  2. C语言身份证信息查询系统(修改版)

    很久以前写了一个<C语言身份证信息查询系统>,如果你点击链接进去看了. 估计也会被我那磅礴大气的代码震惊到的,最近复习/学习文件操作,把代码改了改,算是对以前还不会文件操作的时候的愿望,哈 ...

  3. bilibili用户信息查询

    bilibili用户信息查询 http://space.bilibili.com/ajax/member/GetInfo?mid= 后缀为用户mid号 # -*- coding:utf-8 -*- # ...

  4. Linux用户信息查询

    1 查询目前已登录的用户信息w 或者 who [@bjzw_11_210 ~]# w :: up days, :, users, load average: 0.03, 0.04, 0.00 USER ...

  5. Oracle用户信息查询

    1.查看所有用户: select * from dba_users;    select * from all_users;    select * from user_users; 2.查看用户或角 ...

  6. 基于jsp+servlet图书管理系统之后台用户信息查询操作

    上一篇的博客写的是插入操作,且附有源码和数据库,这篇博客写的是查询操作,附有从头至尾写的代码(详细的注释)和数据库! 此次查询操作的源码和数据库:http://download.csdn.net/de ...

  7. Linux用户管理及用户信息查询

    useradd 创建用户,更改用户信息 1.工作原理流程 使用此命令式,若不加任何参数选项,直接跟用户名,那么系统会首先读取/etc/login.defs(用户定义文件)和/etc/default/u ...

  8. linux命令之用户管理及用户信息查询命令(下)

    1.visudo:编辑sudoers文件 该命令专门用来编辑/etc/sudoers文件,同时提供语法检查等功能. 示例: 1)执行visudo对普通用户授权 [root@boxiaoyuan ~]# ...

  9. Liunx运维(七)-用户管理及用户信息查询命令

    文档目录: 一.useradd:创建用户 二.usermod:修改用户信息 三.userdel:删除用户 四.groupadd:创建新的用户组 五.groupdel:删除用户组 六.passwd:修改 ...

随机推荐

  1. c++学习笔记6(结构化程序设计)

    结构化程序设计 c语言使用结构化程序设计: 程序=数据结构+算法 程序有全局变量以及众多相互调用的函数组成 算法以函数的形式实现,用于对数据结构进行操作 结构化程序设计不足

  2. 如何正确的找BUG

    什么是BUG 漏洞是在硬件.软件.协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统.具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在S ...

  3. 18.Java 封装详解/多态详解/类对象转型详解

    封装概述 简述 封装是面向对象的三大特征之一. 封装优点 提高代码的安全性. 提高代码的复用性. "高内聚":封装细节,便于修改内部代码,提高可维护性. "低耦合&quo ...

  4. 【linux系统】java环境搭建

    搭建步骤 1.安装java : 上传java安装包到linux系统----- rz jdk-8u202-linux-x64.tar.gz jdk下载地址:https://www.oracle.com/ ...

  5. 团队内部密码共享方案:KeePassXC+微盘(企业微信)

    目录 需求描述 适用场景 安装使用 KeePassXC初始化 浏览器插件安装设置 1.火狐 2.Edge 3.Chrome 软件-插件的链接 登陆网站并保存密码 (企业微信)微盘共享内部数据库 其他 ...

  6. js--history 对象详解

    前言 我们浏览一个网页时可能不太会注意网页前进后退这些操作,但是在开发时你是否想过页面之间的跳转经历了什么,浏览器时怎么保存的页面信息,重新返回上一个页面的时候是否需要重新加载页面呢,会有很对疑问,要 ...

  7. Java数组声明

    初始赋值值:例:一个二维数组,有二个1维数组组成,每一个一维数组有3个元素int[][] a = { {1,2,3}, {4,5,6} } ;动态二维数组声明:例:一个二维数组,有二个1维数组组成,每 ...

  8. [cf559E]Gerald and Path

    将所有线段的端点(即$a_{i}$和$a_{i}\pm l_{i}$)离散,并按照$a_{i}$从小到大排序 定义$f_{i,,j}$表示前$i$条线段在位置$j$之前最多能覆盖的长度(默认覆盖到$j ...

  9. [bzoj4777]Switch Grass

    结论:最短路径一定是单独的一条边且在最小生成树上,可以用反证法证明.那么求出最小生成树,对于每一个点建立一棵权值线段树,再对每一个权值线段树上的叶子节点开一个multiset,维护所有儿子中该种颜色的 ...

  10. [ARC 122]

    最近状态差到爆炸. \(AT\)连掉两把分,啥时候能上黄啊. \(A\) 考虑直接动归. 把\(O(n^2)\)的动归后缀和优化成\(O(n)\) A #include<iostream> ...