BaseDao
public class BaseDao {
    private static Log logger = LogFactory.getLog(BaseDao.class);
    // 查询数据
    public void selectSql(String sql, Object[] obj) {
        try {
            PreparedStatement stmt = null;
            Connection conn = null;
            conn = ConnectionTools.getConn();
            conn.setAutoCommit(false);
            stmt = conn.prepareStatement(sql);
            if (obj != null) {
                for (int i = 0; i < obj.length; i++) {
                    int key = i + 1;
                    stmt.setObject(key, obj[i]);
                }
            }
            stmt.executeUpdate();
            conn.commit();
            stmt.close();
        } catch (Exception e) {
            logger.error("查询出错:", e);
        }
    }
    public void executeUpdate(String sql) {
        executeUpdate(sql, null);
    }
    public void executeUpdate(String sql, Object obj[]) {
        try {
            PreparedStatement stmt = null;
            Connection conn = null;
            conn = ConnectionTools.getConn();
            conn.setAutoCommit(false);
            stmt = conn.prepareStatement(sql);
            if (obj != null) {
                for (int i = 0; i < obj.length; i++) {
                    int temp = i + 1;
                    stmt.setObject(temp, obj[i]);
                }
            }
            stmt.executeUpdate();
            conn.commit();
            stmt.close();
        } catch (Exception e) {
            logger.error("保存出错:", e);
        }
    }
    public int addDate(String sql, Object[] obj) {
        int key = 0;
        try {
            PreparedStatement stmt = null;
            Connection conn = null;
            conn = ConnectionTools.getConn();
            conn.setAutoCommit(false);
            stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            if (obj != null) {
                for (int i = 0; i < obj.length; i++) {
                    int temp = i + 1;
                    stmt.setObject(temp, obj[i]);
                }
            }
            stmt.executeUpdate();
            ResultSet rs = stmt.getGeneratedKeys();
            if (rs.next()) {
                key = rs.getInt(1);
            }
            conn.commit();
            stmt.close();
        } catch (Exception e) {
            logger.info("保存出错:", e);
        }
        return key;
    }
    // 删除表
    public void deleteTable(String tableName) {
        StringBuffer dropTableSql = new StringBuffer();
        dropTableSql.append("DROP TABLE IF EXISTS `" + tableName + "`");
        executeUpdate(dropTableSql.toString());
    }
    // 创建一个表
    public void makeTableSql(String tableName, Map<String, String> cloumNames) {
        StringBuffer createTableSQL = new StringBuffer();
        createTableSQL.append("CREATE TABLE " + tableName + " (");
        createTableSQL.append(" id int(11) NOT NULL AUTO_INCREMENT,");
        Set<String> cs = cloumNames.keySet();
        for (String e : cs) {
            String t = cloumNames.get(e);
            e = e.replaceAll("(?i)[^a-zA-Z0-9\u4E00-\u9FA5]", "");
            if (e.trim().isEmpty()) {
                continue;
            }
            if (e.contains("detailurl")) {
                createTableSQL.append(e + " varchar(255) DEFAULT NULL,");
                // } else if (t.length() > 10 && t.length() < 255) {
                //
                // createTableSQL.append(e + " varchar(255) DEFAULT NULL,");
                //
            } else {
                createTableSQL.append(e + " text DEFAULT NULL,");
            }
        }
        createTableSQL.append("TIME datetime NOT NULL , ");
        createTableSQL.append(" PRIMARY KEY (id) , UNIQUE KEY (detailurl)");
        createTableSQL.append(") ENGINE=InnoDB DEFAULT CHARSET=utf8;");
        executeUpdate(createTableSQL.toString());
    }
    // 插入数据
    public void insertSql(String tableName, Map<String, String> cloumNames) {
        StringBuffer insertSQL = new StringBuffer();
        insertSQL.append("insert into " + tableName + " (");
        Set<String> cs = cloumNames.keySet();
        StringBuffer keys = new StringBuffer();
        StringBuffer values = new StringBuffer();
        for (String e : cs) {
            String value = cloumNames.get(e);
            e = e.replaceAll("(?i)[^a-zA-Z0-9\u4E00-\u9FA5]", "");
            keys.append(e + ",");
            values.append("'" + value + "',");
        }
        insertSQL.append(keys.toString());
        insertSQL.append(" TIME) values (");
        insertSQL.append(values.toString());
        insertSQL.append(" NOW())");
        executeUpdate(insertSQL.toString());
    }
BaseDao的更多相关文章
- 【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 ...
 - BaseDao代码,用于连接数据库实行增删改查等操作
		
在学习JavaWeb时会用到此代码,用于实行增删改查操作 1 package com.bdqn.dao; import java.sql.Connection; import java.sql.Dri ...
 - java项目常用 BaseDao BaseService
		
java项目常用 BaseDao BaseService IBaseDao 1 package com.glht.sim.dao; 2 3 import java.util.List; 4 5 6 ...
 - ssh注解basedao简单的实现
		
@Repository public class BaseDao extends HibernateDaoSupport{ protected Class objectClass; protected ...
 - 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 ...
 
随机推荐
- 用C#开发的双色球走势图(二)
			
昨晚由于时间的原因只写了一部分内容,今天将这一部分内容补充完毕,多谢各位园友的支持. 这是用C#开发的双色球走势图(一)新的园友可以看昨晚写的内容,以免脱节.首先回复园友的评论,有说好的有说不好的,本 ...
 - 重新想象 Windows 8 Store Apps (71) - 其它: C# 调用 C++
			
[源码下载] 重新想象 Windows 8 Store Apps (71) - 其它: C# 调用 C++ 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 其它 C# ...
 - u-boot移植总结(四)u-boot-2010.09框架分析
			
(一)本次移植是基于FL2440,板子的基本硬件: CPU 型号为S3C2440,基于ARM920T,指令集ARMV4,时钟主频400MHz SDRAM H57V2562GTR-75C 2片*32MB ...
 - Json Utils
			
import java.util.List;import java.util.Map; import net.sf.json.JSONArray;import net.sf.json.JSONObje ...
 - C语言范例学习02
			
第二章 指针 算是重点吧,这也是C语言的特色啊,直接访问物理存储. 重点: 指针就是一个存放它指向变量地址的变量,好绕口. 区分*在定义是与引用是的作用. 区分*.&的不同. 指针 ...
 - PHP学习笔记:MySQL数据库的操纵
			
Update语句 Update 表名 set 字段1=值1, 字段2=值2 where 条件 练习: 把用户名带 ‘小’的人的密码设置为123456@ 语句:UPDATE crm_user SE ...
 - 六个创建模式之单例模式(Singleton Pattern)
			
定义: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.三个特点:一个类只有一个实例:必需自己创建这个实例:必需自行向整个系统提供这个实例. 结构图: Singleton:单例类,提 ...
 - linux多线程-互斥&条件变量与同步
			
多线程代码问题描述 我们都知道,进程是操作系统对运行程序资源分配的基本单位,而线程是程序逻辑,调用的基本单位.在多线程的程序中,多个线程共享临界区资源,那么就会有问题: 比如 #include < ...
 - EntityFramework学习
			
本文档主要介绍.NET开发中两项新技术,.NET平台语言中的语言集成查询技术 - LINQ,与ADO.NET中新增的数据访问层设计技术ADO.NET Entity Framework.ADO.NET的 ...
 - CSS 去掉inline-block元素间隙的几种方法
			
最近做移动端页面时,经常会用到inline-block元素来布局,但无可避免都会遇到一个问题,就是inline-block元素之间的间隙.这些间隙会导致一些布局上的问题,需要把间隙去掉.对于inlin ...