1. 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. 印象最深的一个bug:sessionStorage缓存在移动端失效

    无bug,不程序:作为程序员的我,不是修bug就是在写bug的路上. 移动端sessionStorage缓存失效是我"印象最深的一个bug"之一,为啥呢,因为这个问题导致我加班到很 ...

  2. 从零搭建vue3.0项目架构(附带代码、步骤详解)

    前言: GitHub上我开源了vue-cli.vue-cli3两个库,文章末尾会附上GitHub仓库地址.这次把2.0的重新写了一遍,优化了一下.然后按照2.0的功能和代码,按照vue3.0的语法,完 ...

  3. [atAGC050F]NAND Tree

    当$n$为偶数,暴力$o(n)$枚举第一次操作,以下只考虑$n$为奇数的情况 此时,$n-1$即操作次数为偶数,找到最小的$i$(其中$1\le i\le \frac{n-1}{2}$),满足第$2i ...

  4. 提升AI智能化水平,打造智慧新体验

    内容来源:华为开发者大会2021 HMS Core 6 AI技术论坛,主题演讲<提升AI智能化水平,打造智慧新体验>. 演讲嘉宾:沈波,华为消费者AI与智慧全场景ML Kit产品总监 今天 ...

  5. C/C++ Qt 选择夹TabWidget组件应用

    在Qt中通过使用选择夹组件可以实现在一个页面中集成多种功能,我们以TabWidget选择夹组件为例,实现在单个页面中集成多个功能,并给每一个子夹增加对应的Ico图标. 如果我们使用选择夹组件,必须提前 ...

  6. 随笔:关于.net core单文件AOT编译

    .Net Core单文件发布已经很流畅了(vs已支持图形化操作发布). 但类似Go或者Graalvm JDK的完全事前编译为本地机器码的红能功能,还未发布于.net 6特性中,还处于实验室中. 另外, ...

  7. 【洛谷1340】兽径管理(最小生成树 Kruskal)(sort的一些技巧)【2012福建省信息学奥林匹克CCF NOIP夏令营第05天训练】

    Description 约翰农场的牛群希望能够在 N 个(1<=N<=6000) 草地之间任意移动.草地的编号由 1到 N.草地之间有树林隔开.牛群希望能够选择草地间的路径,使牛群能够从任 ...

  8. STL的equal_range()

    equal_range()根据键值,返回一对迭代器的pair对象. 如果该键值在容器中存在,则pair对象中的第一个迭代器指向该键关联的第一个实例,第二个迭代器指向该键关联的最后一个实例的下一位置. ...

  9. 【宏组学】如何根据taxid(或taxname)快速获得taxname(或taxid)?

    需求 我有一个物种taxonomy ID的list,想获得相应的物种名,不要一个个去NCBI Taxonomy官网查.反之根据物种名list查询对应的taxid. 实现 因为之前没怎么用过,我的第一个 ...

  10. C7的开机自启动设置

    CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分 系统服务放在/usr/lib/systemd/system [Un ...