BaseDao.util(虎大将军)

BaseDao.util(虎大将军)

  1 package logistics.util;
  2 
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.ResultSetMetaData;
  7 import java.sql.SQLException;
  8 import java.sql.Statement;
  9 import java.util.ArrayList;
 10 import java.util.HashMap;
 11 import java.util.List;
 12 import java.util.Map;
 13 
 14 import javax.sql.DataSource;
 15 
 16 import org.slf4j.Logger;
 17 import org.slf4j.LoggerFactory;
 18 import org.springframework.beans.factory.annotation.Autowired;
 19 import org.springframework.stereotype.Repository;
 20 
 21 /**
 22  * @author �½�
 23  * @������dao������
 24  * 2018-10-25����2:54:57
 25  */
 26 @Repository
 27 public class BaseDao {
 28     private final static Logger logger = LoggerFactory.getLogger(BaseDao.class);
 29     @Autowired
 30     private DataSource dataSource;
 31     //��ȡ���ݿ�����
 32     public Connection getConnection() {
 33         try {
 34             return dataSource.getConnection();
 35         } catch (SQLException e) {
 36             // TODO Auto-generated catch block
 37             e.printStackTrace();
 38         }
 39         return null;
 40     }
 41     //��ѯͨ�÷���
 42     public List<Map<String,Object>> executeQuery(String sql,Object...params) {
 43         List<Map<String,Object>> objList= new ArrayList<Map<String,Object>>();
 44         Connection conn = getConnection();
 45         PreparedStatement ps=null;
 46         ResultSet rs=null;
 47         try {
 48              ps = conn.prepareStatement(sql);
 49              ps = setParams(ps, params);
 50              //ִ��sql
 51               rs = ps.executeQuery();
 52               //��ȡ��Ԫ������Ϣ
 53               ResultSetMetaData metaData = rs.getMetaData();
 54               //���������
 55               while(rs.next()){
 56                   Map<String,Object> row= new HashMap<String, Object>();
 57                   //metaData.getColumnCount()��ȡ����
 58                   for (int i = 0; i < metaData.getColumnCount(); i++) {
 59                       row.put(metaData.getColumnLabel(i+1), rs.getObject(i+1));
 60                   }
 61                   objList.add(row);
 62               }
 63         } catch (SQLException e) {
 64             e.printStackTrace();
 65         }finally {
 66             try {
 67                 conn.close();
 68             } catch (SQLException e) {
 69                 // TODO Auto-generated catch block
 70                 e.printStackTrace();
 71             }
 72         }
 73         return objList;
 74     }
 75     //��ɾ��ͨ�÷���
 76     public boolean executeUpdate(String sql,Object...params) {
 77         Connection conn = getConnection();
 78         PreparedStatement ps=null;
 79         try {
 80              ps = conn.prepareStatement(sql);
 81              ps = setParams(ps, params);
 82              //ִ��sql
 83               int ret = ps.executeUpdate();
 84               if(ret>0){
 85                   logger.info("�����ɹ�");
 86                   return true;       
 87               }else
 88               {
 89                   logger.info("����ʧ��");
 90                   return false;
 91               }
 92         } catch (SQLException e) {
 93             e.printStackTrace();
 94         }finally {
 95             try {
 96                 conn.close();
 97             } catch (SQLException e) {
 98                 // TODO Auto-generated catch block
 99                 e.printStackTrace();
100             }
101         }
102         return false;
103     }
104     
105     //订单返回
106     public Integer executeUpdateGetPK(String sql,Object...params) {
107         Connection conn = getConnection();
108         PreparedStatement ps=null;
109         try {
110              ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
111              ps = setParams(ps, params);
112              //ִ��sql
113               int ret = ps.executeUpdate();
114               ResultSet set1 = ps.getGeneratedKeys();
115               while(set1.next()){
116                     return set1.getInt(1);
117                }
118               
119         } catch (SQLException e) {
120             e.printStackTrace();
121         }finally {
122             try {
123                 conn.close();
124             } catch (SQLException e) {
125                 // TODO Auto-generated catch block
126                 e.printStackTrace();
127             }
128         }
129         return null;
130     }
131     //��ֵͨ�÷���
132     public  PreparedStatement setParams(PreparedStatement ps,Object...params) {
133             if(params!=null){
134                 for (int i = 0; i < params.length; i++) {
135                     try {
136                         ps.setObject(i+1, params[i]);
137                     } catch (SQLException e) {
138                         e.printStackTrace();
139                     }        
140                 }
141             }
142             return ps;
143     }
144 }

 

转载于:https://www.cnblogs.com/Fisherman13/p/10770388.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100955.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序

    使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序项目介绍当代大学生上课缺少积极性,学习缺乏效率。同为大学生的我深有体会。所以特别开发出这样一款学习类的微信小程序帮助学生进行学习、巩固知识,同时增加对战PK模块来加强学生们的学习积极性。这是一个为学生提供在线学习课程、题库练习、考试答题、做题PK、上课签到、资料查阅、成绩分析等功能的微信小程序希望大佬们走过路过给个star~技术选型前端:Taro+微信小程序+Echarts后端:…

    2022年9月28日
    4
  • mysql去重查询groupby「建议收藏」

    mysql去重查询groupby「建议收藏」一、Dubbo是什么?Dubbo是阿里巴巴开源的基于Java的高性能RPC(一种远程调用)分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。二、为什么要用Dubbo?因为是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了Netty、Zookeeper,保证了高性能高可用性。1、使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场

    2025年6月21日
    4
  • angular 路由懒加载_angular路由

    angular 路由懒加载_angular路由angular8路由懒加载在angular中路由即能加载组件又能加载模块,而我们说的懒加载实际上就是加载模块,目前还没有看到懒加载租价的例子。加载组件使用的是component关键字加载模块则是使用loadChildren关键字例子代码父模块路由文件import{NgModule}from’@angular/core’;import{Routes,RouterMo…

    2022年10月6日
    4
  • 小米笔记本、小米游戏本重装原装出厂镜像教程-有百度盘的提取码

    小米笔记本、小米游戏本重装原装出厂镜像教程-有百度盘的提取码转:【新的干货儿】小米笔记本、小米游戏本重装原装出厂镜像教程原文转自:http://bbs.xiaomi.cn/t-36117135作者主页:http://bbs.xiaomi.cn/u-detail-426023643转载仅供学习,感谢原作者分享。【重装前须知】有百度盘的提取码1.本教程完全为个人观点,不代表官方,仅供参考。2.重装系统需谨慎,由此带来的任何问题与本人无…

    2022年6月27日
    299
  • Python学习(九)Python缩进规则[通俗易懂]

    Python学习(九)Python缩进规则[通俗易懂]其它程序设计语言(如Java、C语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号(:)来区分代码块之间的层次。在Python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。注意,Python中实现对代码的缩进,可以使用空格或者Tab键实现。但无论是手动敲空格,还…

    2022年10月13日
    3
  • 大数据应用的几个典型例子「建议收藏」

    大数据应用的几个典型例子「建议收藏」时至今日互联网每天新增的数据量达2.5*10^18字节,而全球90%的数据都是在过去的两年间创造出来的。举个直观的例子来说明一下互联网的数据量:假设大西洋里每一升海水代表一个字节的数据,那么整个大西洋存储的数据也只能到2010年就满了。从外行的角度看来大数据是个挺了不起的东西,它也确实了不起,不过有一个前提就是我们能够有效地处理数据。怎样从海量数据中找出有用的信息才是最重要的。

    2022年5月16日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号