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)
上一篇 2021年7月5日 下午8:00
下一篇 2021年7月5日 下午9:00


相关推荐

  • 蓝天准系统P750的介绍与开箱

    蓝天准系统P750的介绍与开箱准系统笔记本:准系统笔记本是指使用由工厂(即ODM厂商)采购的标准化笔记本模具,再通过商家或懂技术的玩家安装相兼容的配件(如CPU,显卡,内存,硬盘,光驱,无线网卡,屏幕等)组成的完整笔记本产品。和INTEL于2004年提出的CBB计划有一定相似。2008年的金融危机,使得部分工厂如蓝天、微星向零售商出售模具,准系统笔记本在中国逐渐普及开来。台式DIY装机的人不少,组装笔电的人则不多。对于一个…

    2022年6月14日
    99
  • Kafka集群配置[通俗易懂]

    Kafka集群配置[通俗易懂]之前一篇博文简单讲述了zookeeper和kafka的单机配置,详细可以参考《Linux(CentOS)中常用软件安装,使用及异常——Zookeeper,Kafka》。本文只要讲述Kafka集群的配置事项,包括zookeeper集群的配置。本文讲述的前提是kafka和zookeeper在单机情况下已正确安装和配置。如有疑问,可以参考《Linux(CentOS)中常用软件安装,使用及异常——Z…

    2022年4月25日
    34
  • sql smallint与int_datetime数据类型

    sql smallint与int_datetime数据类型使用整数数据的精确数字数据类型。bigint数值范围从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据(所有数字)。存储大小为8个字节。int数值范围从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据(所有数字)。存储大小为4个字节。int的SQL-92同义字为integer。smallint数值范围从-2^15(-32,76

    2026年2月8日
    8
  • 连云港[通俗易懂]

    连云港[通俗易懂]

    2022年8月6日
    10
  • PSCP 基本使用[通俗易懂]

    PSCP 基本使用[通俗易懂]PSCP基本使用问题:如何免密码输入,传送数据“sshpassisnotrecognized”onWindows”PSCP:是Putty的文件传输工具,用于两台电脑之间的文件传输重点:可以在命令中添加密码,不像SCP需要单独输入密码下载putty工具putty工具操作1:从本地传输文件到服务器(windowtolinux)PSCP-pw12345678C:\Users\Firmi\Desktop\test.txtroot@192.168.1.88:/root

    2025年7月14日
    5
  • AI经典案例_人工智能挑战

    AI经典案例_人工智能挑战来源:Stanford编辑:好困David「AI100」报告第二弹!本次报告评估了2016年至2021年间人工智能的发展,涵盖14大问题,探讨了人工智能发展的关键领域。主题是「人工智能在…

    2026年4月16日
    4

发表回复

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

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