public interface UserDao {
    public void addUser(User user);

    public User getUser(int userId);

    public User findUser(String loginName, String password);

    public void update(User user);

    public void delete(User user);

}

 

 

 

 

public class UserDaoSpringImpl implements UserDao {
    private SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(
            JdbcUtils.getDataSource());

    public void addUser(User user) {
        String sql = "insert into user (name, money, birthday) values (:name, :money, :birthday)";
        SqlParameterSource param = new BeanPropertySqlParameterSource(user);
        KeyHolder keyHolder = new GeneratedKeyHolder();
        this.simpleJdbcTemplate.getNamedParameterJdbcOperations().update(sql,
                param, keyHolder);
        user.setId(keyHolder.getKey().intValue());
    }

    public void delete(User user) {
        String sql = "delete from user where id=?";
        this.simpleJdbcTemplate.update(sql, user.getId());
    }

    public User findUser(String loginName, String password) {
        String sql = "select id, name, money, birthday  from user where name=?";
        return this.simpleJdbcTemplate.queryForObject(sql,
                ParameterizedBeanPropertyRowMapper.newInstance(User.class),
                loginName);
    }

    public User getUser(int userId) {
        String sql = "select id, name, money, birthday  from user where id=?";
        return this.simpleJdbcTemplate.queryForObject(sql,
                ParameterizedBeanPropertyRowMapper.newInstance(User.class),
                userId);
    }

    public void update(User user) {
        String sql = "update user set name=?, birthday=?, money=? where id=? ";
        this.simpleJdbcTemplate.update(sql, user.getName(), user.getBirthday(),
                user.getMoney(), user.getId());

        sql = "update user set name=:name, birthday=:birthday, money=:money where id=:id ";
        this.simpleJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(
                user));
    }

}

JDBC 使用SimpleJdbcTemplate实现Dao的更多相关文章

  1. jdbc之二:DAO模式

    详细代码请参见 https://code.csdn.net/jediael_lu/daopattern 1.创建Dao接口. package com.ljh.jasonnews.server.dao; ...

  2. JDBC(7)—DAO

    介绍: DAO(Data Access Object):数据访问对象 1.what:访问数据信息的类,包含了对数据的CRUD(create read.update.delete),而不包含业务相关的信 ...

  3. Spring -- spring 中使用jdbc, c3p0连接池, dao概念

    1. 示例代码 CustomerDao.java  ,dao接口 public interface CustomerDao { public void insertCustomer(Customer ...

  4. jdbc之二:DAO模式 分类: B1_JAVA 2014-04-29 15:13 1536人阅读 评论(0) 收藏

    详细代码请参见 https://github.com/lujinhong/dao 一.前期准备 1.创建数据库 create database filter_conf; 2.创建表并插入数据 crea ...

  5. JDBC学习笔记(四)

    减少各个Dao类间的重复代码,有以下几种方式: 写一个DBConnectionManager,将公共的查询逻辑做成方法,将sql语句作为参数传递给方法. public class DBConnecti ...

  6. JDBC辅助类封装 及应用

    一:代码图解: 二:配置文件: driverClassName=com.mysql.jdbc.Driver url=jdbc\:mysql\://127.0.0.1\:3306/xlzj_sh_new ...

  7. <八>JDBC_重构DAO查询方法

    DAO类: import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import ...

  8. JDBC&&c3p0、事务、批处理、多线程 于一体的经典秘方QueryRunner

    目录: 基础篇_功能各自回顾 JDBC基础代码回顾(使用JdbcUtils工具简化) c3p0数据库连接池的使用(使用JdbcUtils工具简化) 大数据的插入(使用c3p0+JdbcUtils工具简 ...

  9. 第七章 DAO模式

    第七章 DAO模式 一.JDBC的封装 1.JDBC的封装: DAO位于业务逻辑和持久化数据之间,实现对持久化数据的访问.将数据库都封装起来,对外提供相应的接口 2.DAO模式的作用: 1.隔离业务逻 ...

随机推荐

  1. 【BZOJ 1052】 1052: [HAOI2007]覆盖问题 (乱搞)

    1052: [HAOI2007]覆盖问题 Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄 膜把这些小树遮盖起来,经过一番长久的 ...

  2. [Codeforces #192] Tutorial

    Link: Codeforces #192 传送门 前两天由于食物中毒现在还要每天挂一天的水 只好晚上回来随便找套题做做找找感觉了o(╯□╰)o A: 看到直接大力模拟了 但有一个更简便的方法,复杂度 ...

  3. ubuntu16 安装docker

    本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版,是开发人员和小型团队 ...

  4. PHP与Web页面的交互

    1.form表单默认情况下提交数据的方式为get方式. 2.PHP脚本用来处理表单数据的预定义变量是$_GET,$_POST(区分大小写) 代码示例:(特别注意复选框属性name的时候加数组) sim ...

  5. Notepad++前端开发常用插件介绍

    Notepad++前端开发常用插件介绍 Notepad++除了自身的功能强大之外,更是有许多非常的优秀的插件,下面就总结一下前端开发过程一些比较常用的插件. Emmet Emmet的前身是Zen Co ...

  6. jquer总结

    前端jq总结 选择器********************************************************************** 1,基本选择 器 #id .clss ...

  7. BabyLinux制作过程详解

    转:http://www.360doc.com/content/05/0915/14/1429_12641.shtml BabyLinux制作过程详解 作者:GuCuiwen email:win2li ...

  8. 轻量级的REST中间件

    轻量级的REST中间件 纯净的REST中间件,绝对的轻量级,不需要安装任何三方控件 基于HTTPS.SYS和WEBSOCKET通信,支持海量并发 支持跨越DELPHI6~DELPHI10.2.2的开发 ...

  9. Unity3D手机游戏开发

    <Unity3D手机游戏开发> 基本信息 作者: 金玺曾 出版社:清华大学出版社 ISBN:9787302325550 上架时间:2013-8-7 出版日期:2013 年8月 开本:16开 ...

  10. #!/usr/bin/env在脚本中的作用

    在linux的一些脚本,需在开头一行指定脚本的解释程序,如: #!/usr/bin/env bash #!/usr/bin/bash #!/usr/bin/env python  告诉操作系统执行这个 ...