BaseDao.util(虎大将军)
package logistics.util; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.sql.DataSource; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; /**
* @author �½�
* @������dao������
* 2018-10-25����2:54:57
*/
@Repository
public class BaseDao {
private final static Logger logger = LoggerFactory.getLogger(BaseDao.class);
@Autowired
private DataSource dataSource;
//��ȡ���ݿ�����
public Connection getConnection() {
try {
return dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
//��ѯͨ�÷���
public List<Map<String,Object>> executeQuery(String sql,Object...params) {
List<Map<String,Object>> objList= new ArrayList<Map<String,Object>>();
Connection conn = getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps = conn.prepareStatement(sql);
ps = setParams(ps, params);
//ִ��sql
rs = ps.executeQuery();
//��ȡ��Ԫ������Ϣ
ResultSetMetaData metaData = rs.getMetaData();
//���������
while(rs.next()){
Map<String,Object> row= new HashMap<String, Object>();
//metaData.getColumnCount()��ȡ����
for (int i = 0; i < metaData.getColumnCount(); i++) {
row.put(metaData.getColumnLabel(i+1), rs.getObject(i+1));
}
objList.add(row);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return objList;
}
//��ɾ��ͨ�÷���
public boolean executeUpdate(String sql,Object...params) {
Connection conn = getConnection();
PreparedStatement ps=null;
try {
ps = conn.prepareStatement(sql);
ps = setParams(ps, params);
//ִ��sql
int ret = ps.executeUpdate();
if(ret>0){
logger.info("�����ɹ�");
return true;
}else
{
logger.info("����ʧ��");
return false;
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
} //订单返回
public Integer executeUpdateGetPK(String sql,Object...params) {
Connection conn = getConnection();
PreparedStatement ps=null;
try {
ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps = setParams(ps, params);
//ִ��sql
int ret = ps.executeUpdate();
ResultSet set1 = ps.getGeneratedKeys();
while(set1.next()){
return set1.getInt(1);
} } catch (SQLException e) {
e.printStackTrace();
}finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
//��ֵͨ�÷���
public PreparedStatement setParams(PreparedStatement ps,Object...params) {
if(params!=null){
for (int i = 0; i < params.length; i++) {
try {
ps.setObject(i+1, params[i]);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return ps;
}
}
BaseDao.util(虎大将军)的更多相关文章
- 【01-05】hibernate BaseDao
BaseDao接口定义 package org.alohaworld.util.dao; import java.io.Serializable; import java.util.List; imp ...
- orm映射 封装baseDao
是用orm映射封装自己封装dao层 思路:通过映射获得实体类的属性拼接sql语句 import java.lang.reflect.Field; import java.lang.reflect.In ...
- java项目常用 BaseDao BaseService
java项目常用 BaseDao BaseService IBaseDao 1 package com.glht.sim.dao; 2 3 import java.util.List; 4 5 6 ...
- baseDao 使用spring3+hibernate4方式
启动异常: java.lang.ClassCastException: org.springframework.orm.hibernate4.SessionHolder cannot be cast ...
- baseDao 使用spring3+hibernate3方式
package cn.zk.pic.service.dao; import java.io.Serializable; import java.util.List; import java.util. ...
- 一种好的持久层开发方法——建立BaseDao和BaseDaoImpl
使用hibernate开发持久层时,我们会发现:虽然entity类的含义和需求不同,其对应的Dao层类对应的方法也是不同的.但是有许多方法操作确实相同的.比如实体的增加,删除,修改更新,以及许多常用的 ...
- Hibernate的BaseDao辅助类
1.BaseDao接口类,该类封装了一些hibernate操作数据库的一些常用的方法,包括分页查询,使用该类极大的简化了hibernate的开发 BaseDao.java package com.kj ...
- java 利用注解实现BaseDao 增删查改
第一步,编写两个注解类,用于表明实体类对应的表名及字段. TableInfo.java 此注解用于标注表名及主键名 import static java.lang.annotation.Element ...
- 实战3--项目开始--准备:::资源分类, 日志系统, 写BaseDao
项目资源分类: 1. package: base, dao, dao.impl, domain, service, service.impl, util, view.action 2. co ...
随机推荐
- LeetCode 86. Partition List 划分链表 C++
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- 关于Hibernate和Strtus2的xml提示问题
话不多说,上图 1.Windom 2.preferences 3.搜索框搜索xml catalog 点击Add 4.导入约束(具体操作图上1.2.3)
- github 解决 Agent admitted failure to sign using the key
公司迁移git 新库,重新迁移数据. 添加 ssh key 1. 首先要在新git 库管理平台 添加新的ssh-key : 本机上执行 ssh-keygen -t rsa -C "Your ...
- 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值
可以在处理Post方法的Action添加一个特性:[ValidateInput(false)],这样处理就更加有针对性,提高页面的安全性. [HttpPost][ValidateInput(false ...
- php+mysql 原生事务回滚
<?php $conn = mysql_connect('127.0.0.1', 'root', ''); mysql_select_db('msc_test'); mysql_query('S ...
- bootstrap之bootstrap-table插件使用心得以及实现过程
1.首先一个页面(增删改查) 2.实现增删改查(一个框架) 3.编码问题(前端meta utf-8:引用中文包:contentType参数区utf-8的设置:响应的utf-8的编码设置) 4.多条件查 ...
- 【转】WPS word 文档中的插入对象 为什么打不开
点击桌面左下角开始按钮--所有程序,找到wps office文件夹--wps office工具--配置工具--高级--兼容设置,否选兼容第三方软件.
- IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM) 2014 Industry Track Call for Papers
IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM) 2014 In ...
- IE6-IE9中tbody的innerHTML不能赋值
对于IE6-IE9里如果要设置tbody的innerHTML,可以使用如下替代方法 Js代码 function setTBodyInnerHTML(tbody, html) { var div = d ...
- hdu2586How far away ?-(LCA)
http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:有n个点,有n-1条线连通,求两点间的最短距离,最近公共祖先的入门题.Tarjan离线算法. #in ...