package com.jy.modules.cms.query;

import java.util.List;
import java.util.Map; public interface queryJdbcTemplate { public List<Map<String, Object>> gtQueryForListMap(String sql) throws Exception; public Map getMap(String sql) throws Exception; public void update(String sql)throws Exception; public int count(String sql) throws Exception; public void delete(String sql) throws Exception; public void insert(String sql) throws Exception; public String userName(String userId) throws Exception; public String getMapValue(String sql) throws Exception;
}
package com.jy.modules.cms.query;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry; import javax.sql.DataSource; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service; @Service("com.jy.modules.cms.queryJdbcTemplateimpl")
public class queryJdbcTemplateimpl implements queryJdbcTemplate{
private static Logger logger = LoggerFactory.getLogger(queryJdbcTemplateimpl.class);
@Autowired
private DataSource dataSource; private JdbcTemplate jdbcTemplate = null; public synchronized JdbcTemplate getJdbcTemplate(){
if(jdbcTemplate==null){
jdbcTemplate = new JdbcTemplate(dataSource);
}
return jdbcTemplate;
}
/**
*
* @projectname 项目名称: cms
* @packageclass 包及类名: com.jy.modules.cms.query.queryJdbcTemplate.java
* @description 功能描述: 返回List<Map<String, Object>> 结果集
* @author 作 者: zhouzhiwei
* @param 参 数: @param sql
* @param 参 数: @return
* @return 返回类型: List<Map<String,Object>>
* @createdate 建立日期: 2015年6月23日上午10:10:17
*/
public List<Map<String, Object>> gtQueryForListMap(String sql){
List<Map<String, Object>> list= new ArrayList<Map<String,Object>>();
try {
list = this.getJdbcTemplate().queryForList(sql);
logger.debug("执行成功-------------------------------sql="+sql);
} catch (Exception e) {
e.printStackTrace();
logger.debug("执行sql错误-----------------------------sql="+sql);
}
return list;
} /**
*
* @projectname 项目名称: cms
* @packageclass 包及类名: com.jy.modules.cms.query.queryJdbcTemplate.java
* @description 功能描述: 只返回一条MAP数据
* @author 作 者: zhouzhiwei
* @param 参 数: @param sql
* @param 参 数: @return
* @return 返回类型: Map
* @createdate 建立日期: 2015年6月23日上午10:20:39
*/
@SuppressWarnings("rawtypes")
public Map getMap(String sql){
List<Map<String, Object>> list = this.gtQueryForListMap(sql);
Map map = new HashMap();
if(list!=null&&list.size()>0){
map=list.get(0);
}
return map;
} /**
*
* @projectname 项目名称: cms
* @packageclass 包及类名: com.jy.modules.cms.query.queryJdbcTemplate.java
* @description 功能描述: 修改语句
* @author 作 者: zhouzhiwei
* @param 参 数: @param sql
* @return 返回类型: void
* @createdate 建立日期: 2015年6月23日上午10:25:37
*/
public void update(String sql){
try {
this.getJdbcTemplate().execute(sql);
logger.debug("执行成功-------------------------------sql="+sql);
} catch (Exception e) {
e.printStackTrace();
logger.debug("执行sql错误-----------------------------sql="+sql);
}
} /**
*
* @projectname 项目名称: cms
* @packageclass 包及类名: com.jy.modules.cms.query.queryJdbcTemplate.java
* @description 功能描述: 返回记录数
* @author 作 者: zhouzhiwei
* @param 参 数: @param sql
* @param 参 数: @return
* @return 返回类型: int
* @createdate 建立日期: 2015年6月23日上午10:31:57
*/
@SuppressWarnings("deprecation")
public int count(String sql){
int count=0;
try {
count = this.getJdbcTemplate().queryForInt(sql);
logger.debug("执行成功-------------------------------sql="+sql);
} catch (Exception e) {
e.printStackTrace();
logger.debug("执行sql错误-----------------------------sql="+sql);
}
return count;
} /**
*
* @projectname 项目名称: cms
* @packageclass 包及类名: com.jy.modules.cms.query.queryJdbcTemplate.java
* @description 功能描述: 删除记录数
* @author 作 者: zhouzhiwei
* @param 参 数: @param sql
* @param 参 数: @return
* @return 返回类型: int
* @createdate 建立日期: 2015年6月23日上午10:31:57
*/
@Override
public void delete(String sql) {
try {
this.getJdbcTemplate().execute(sql);
logger.debug("删除成功-------------------------------sql="+sql);
} catch (Exception e) {
e.printStackTrace();
logger.debug("删除失败-----------------------------sql="+sql);
} } /**
*
* @projectname 项目名称: cms
* @packageclass 包及类名: com.jy.modules.cms.query.queryJdbcTemplate.java
* @description 功能描述: 删除记录数
* @author 作 者: zhouzhiwei
* @param 参 数: @param sql
* @param 参 数: @return
* @return 返回类型: int
* @createdate 建立日期: 2015年6月23日上午10:31:57
*/
@Override
public void insert(String sql) {
try {
this.getJdbcTemplate().execute(sql);
logger.debug("插入成功-------------------------------sql="+sql);
} catch (Exception e) {
e.printStackTrace();
logger.debug("插入成功-----------------------------sql="+sql);
} } /**
* 根据用户id获取用户姓名
*/
@Override
public String userName(String userId) {
String sql =" select jj.user_name from sys_user jj where jj.id="+userId;
return this.getMapValue(sql);
}
/**
*
* @projectname 项目名称: cms
* @packageclass 包及类名: com.jy.modules.cms.query.queryJdbcTemplateimpl.java
* @description 功能描述: 只返回一Map里的一个个结果集
* @author 作 者: zhouzhiwei
* @param 参 数: @param sql
* @param 参 数: @return
* @return 返回类型: String
* @createdate 建立日期: 2015年6月26日下午4:27:48
*/
@SuppressWarnings("unchecked")
public String getMapValue(String sql){
Object data=null;
Map<String, Object> map =this.getMap(sql);
if(!map.isEmpty()){
for(Entry<String, Object> entry: map.entrySet()) {
data=entry.getValue();
} }
if(data!=null&&data!=""){
return data.toString();
}
return null;
} }

封装SpringJdbcTemplate的更多相关文章

  1. Dao层封装泛型实现(spring mvc,springjdbctemplate)

    代码片段(6) [全屏查看所有代码] 1. [代码]BaseDao     跳至 [1] [2] [3] [4] [全屏预览] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...

  2. springJDBC和SpringJDBCTemplate解决方案探究

    先来看一个纯JDBC的例子,体会一下springJDBC和SpringJDBCTemplate两者的区别 一个Customer类 package com.mkyong.customer.model; ...

  3. SpringJdbcTemplate简单实现

    SpringJdbcTemplate 配置文件 1.依赖坐标 <dependencies> <dependency> <groupId>javax.servlet& ...

  4. [C#] 简单的 Helper 封装 -- RegularExpressionHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. iOS开发之App间账号共享与SDK封装

    上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...

  6. Ajax实现原理,代码封装

    都知道实现页面的异步操作需要使用Ajax,那么Ajax到是怎么实现异步操作的呢? 首先需要认识一个对象 --> XMLHttpRequest 对象 --> Ajax的核心.它有许多的属性和 ...

  7. 用C语言封装OC对象(耐心阅读,非常重要)

    用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...

  8. 【知识必备】RxJava+Retrofit二次封装最佳结合体验,打造懒人封装框架~

    一.写在前面 相信各位看官对retrofit和rxjava已经耳熟能详了,最近一直在学习retrofit+rxjava的各种封装姿势,也结合自己的理解,一步一步的做起来. 骚年,如果你还没有掌握ret ...

  9. 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传)

    前言 首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已. 下面先介绍一下WebUploader 简介: WebUp ...

随机推荐

  1. cmake - 编译

    cmake在编译期间会使用到的命令总结: 1.指定编译器并同时设置编译选项 set(CMAKE_CXX_COMPILER "clang++" ) # 显示指定使用的C++编译器 s ...

  2. 聊一聊这个总下载量3603w的xss库,是如何工作的?

    上篇文章这一次,彻底理解XSS攻击讲解了XSS攻击的类型和预防方式,本篇文章我们来看这个36039K的XSS-NPM库(你没有看错就是3603W次, 36039K次,36,039,651次,数据来自h ...

  3. 第三章 IP地址规划设计技术(很重要)

    知识重点: 选择题考点 IP基础(网络地址.子网掩码) 网络地址转换 NAT 的原理 CIDR (计算方法) IPv6 地址表示 综合题 IP地址的分类与计算 VLSM 地址规划 3.1 基础知识 3 ...

  4. 转 linux终端 字符界面 显示乱码 .

    方法一:配置SSH工具 SecureCRT中文版配置 [全局选项]→[默认会话]→[编辑默认设置]→[终端]→[外观]→[字体]→[新宋体 10pt CHINESE_GB2312]→[字符编码 UTF ...

  5. Docker一秒进阶

    tar包: 从tar包导入:docker load < xxxx.tar docker run -d -p 8080:80 --name [名字] -v `pwd`:/usr/share/ngi ...

  6. 配置Oracle数据库和监听随Linux系统自启动【转】

     配置Oracle数据库和监听随Linux系统自启动     在某些情况下需要在Linux操作系统上提供一种无人值守的随机启动Oracle的功能,目的也许仅仅是为了帮助那些对Oracle细节非常不关心 ...

  7. 【Software Test】Basic Of ST

    文章目录 Learning Objective Introduction Software Applications Before Software Testing What is testing? ...

  8. 【Linux】centos7中 root家目录中perl5文件夹无法删除问题解决

    由于新项目上线,安装了一些perl的一些包 但是发现,在/root下有一个perl5/的文件夹,删除后,重新登录又会出现,很是烦人,而且他还没有内容,就是一个空文件 那么着手搞掉他 环境:centos ...

  9. [mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

    转载自:http://www.cnblogs.com/joeblackzqq/p/4526589.html From: http://m.blog.csdn.net/blog/langkeziju/1 ...

  10. Test typora

    目录 0. test 0.5 easy test 1. problem 1 2. problem 2 3. problem 3 import numpy as np import matplotlib ...