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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java dom4j生成和解析XML

    Java dom4j生成和解析XMLdom4j使用:需先导入dom4j对应的jar,本章用的是dom4j-1.6.1.jar优点:DOM4J使Java开发的灵活性和XML解析代码易于维护dom4j相关操作类Document:表示整个xml文档,是一个树形结构Eelment:表示一个xml的元素,提供方法操作其子元素,它的文本,属性和名称空间Attribute:表示元素的属性Node:表示元素,属性do…

    2022年6月21日
    29
  • 核PCA投影平面公式推导

    样本方差推导样本方差公式$$S=\frac{1}{n1}\sum_{i=1}^n(x_i\mu_i)^2$$扩展开来得到$$S=\frac{1}{n1}[(X\frac{1}{n}

    2021年12月30日
    45
  • java的serializable接口_javacloneable接口

    java的serializable接口_javacloneable接口Cloneable接口clone:它允许在堆中克隆出一块和原对象一样的对象,并将这个对象的地址赋予新的引用。Java中一个类要实现clone功能必须实现Cloneable接口,否则在调用clone()时会报CloneNotSupportedException异常。Java中所有类都默认继承java.lang.Object类,在java.lang.Object类中有一个方法clon

    2022年10月14日
    3
  • 【京东商城首页实战2】导航条制作(1)[通俗易懂]

    【京东商城首页实战2】导航条制作(1)[通俗易懂]接下来,开始制作京东的导航条。效果如下图:图1业务分析:1.通栏盒子,并且有背景颜色2.有版心。3.版心里面包含左右浮动的两个盒子。4.有下拉效果的盒子后面,有三角形标志。5.右边的盒子里面包含几个li标签。分析完之后,对整个头部的构架和要实现的功能都有简单的了解,下面就是开始一步一步实现这些业务。1.制作一个通栏的盒子,并设置背景颜色。html代码:<

    2022年7月22日
    10
  • jsonArray字符串转List

    jsonArray字符串转ListjsonArray字符串转List&lt;Map&lt;String,String&gt;&gt;StringjsonStr="[{user:{name:\"张三\",age:\"20\"}},{score:{yuwen:\"80\",shuxue:\"90\"}}]";List&lt;Map&lt;Stri

    2022年5月14日
    108
  • 通用目标检测_ug目标体完全处于工具体内部

    通用目标检测_ug目标体完全处于工具体内部睿智的目标检测-番外篇——数据增强在目标检测中的应用学习前言数据增强做了什么学习前言数据增强是非常重要的提高目标检测算法鲁棒性的手段,学习一下对身体有好处!数据增强做了什么…

    2022年10月10日
    2

发表回复

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

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