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. python微服务

    https://realpython.com/python-microservices-grpc/ https://github.com/saqibbutt/python-flask-microser ...

  2. Idea tomcat debug按钮灰色无法运行

    打开Project Structure 2.选中src,点击按钮关闭界面,重启idea即可

  3. 在linux 环境下 安装php

    最近打算学写一个php 脚本~ 到了虚拟机环境上发现~没有环境. 只有老老实实去装一个php环境咯. 第一步 去官网下一个包 记得一定要下载tgz格式的 第二步~当然是传上虚拟机上咯~任意目录都可以. ...

  4. 菜鸡的Java笔记 实践 - java 数组操作

    讲解一个继承的实现思路                要求定义一个数组操作类(Array类),在这个类里面可以进行整型数组的操作,由外部传入数组的大小        ,并且要求实现数据的保存以及数据的 ...

  5. [atARC121D]1 or 2

    对于大小为1的集合,我们可以在其中加入0 因此,枚举0的个数,那么问题即可以看作要求每一个集合大小为2 (特别的,我们允许存在$\{0,0\}$,因为这样删除这两个0显然只会减小极差) 显然此时贪心将 ...

  6. Redis | 第4章 Redis中的数据库《Redis设计与实现》

    目录 前言 1. Redis中的数据库 2. 数据库的键空间 3. 键的生成时间与过期时间 4. Redis中的过期键删除策略 5. AOF.RDB和复制功能对过期键的处理 5.1 生成 RDB 文件 ...

  7. git使用大全

    创建四个分支: 查看分支:git branch查看仓库里面所有的分支 git branch -a刷新分支 git remote update origin --prune创建分支:git branch ...

  8. patch增量更新

  9. git使用小技巧

    1. 合并一个分支的某次提交到另一个分支上 例如 将dev的某次提交 asfdiwehfsalkdnva872383 合并到master # git checkout master # git che ...

  10. Haywire

    还是模拟退火乱搞. 不过考虑记录一下在整个退火过程中的最优答案. 而不是只看最后剩下的解. 退火是一个随机算法,他有很大的几率能跳到最优解,但也很有可能从最优解跳出去. 所以要记录答案. Haywir ...