package com.cxz.util;
import java.sql.*;
public class DBTemplate {
private static String driverClass = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/ceramic";
private static String userName = "root";
private static String password = "19841230";
static {
try {// register the jdbc driver only once
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// should reading
}
public DBTemplate() {
}
private Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, userName, password);
}
private PreparedStatement getPreparedStatement(Connection conn, String sql)
throws SQLException {
return conn.prepareStatement(sql);
}
private void setParams(PreparedStatement pstmt, Object[] params) throws SQLException{
for (int i = 0; i < params.length; i++) {
if (Integer.class == params[i].getClass()) {
pstmt.setInt(i+1, (Integer)params[i]);
} else if (String.class == params[i].getClass()) {
pstmt.setString(i+1, (String)params[i]);
} else if (Date.class == params[i].getClass()) {
pstmt.setDate(i+1, (Date)params[i]);
} else if (Float.class == params[i].getClass()) {
pstmt.setFloat(i+1, (Float)params[i]);
} else if (Double.class == params[i].getClass()){
pstmt.setDouble(i+1, (Double)params[i]);
} else {
throw new IllegalArgumentException(
"The method query can only treat types: String, Date, int, float, double");
}
}
}
public boolean execute(String sql, Object[] params) {
Connection conn = null;
PreparedStatement pstmt = null;
boolean succ = false;
if (sql == null) {
// to check whether the params if null;
throw new NullPointerException(
"The parameters of DBTemplate::query(...) should not be null!");
}
try {
conn = this.getConnection();
pstmt = this.getPreparedStatement(conn, sql);
if (params != null) {// if it has ?
this.setParams(pstmt, params);
}
succ = pstmt.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return succ;
}
public void query(String sql, Object[] params, QueryManager qm) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
if (sql == null || qm == null) {
// to check whether the params if null;
throw new NullPointerException(
"The parameters of DBTemplate::query(...) should not be null!");
}
try {
conn = this.getConnection();
pstmt = this.getPreparedStatement(conn, sql);
if (params != null) {// if it has ?
this.setParams(pstmt, params);
}
rs = pstmt.executeQuery();
try {
qm.doQuery(rs);
} catch (SQLException ex) {
ex.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
红领巾伴我成长二(3)班主题班会.doc
共育花朵健康成长二(7)班主任总结.pdf
消防安全伴我成长二年级作文范例400字6篇.pdf
二是格雷厄姆的成长股估值公式;三是当前A股市场的成长股估值模型PE=12.5+1.4G。报告认为科技成长板块是推动成长性溢价上升的主要力量,并推荐了新能源、医药、电子等科技成长细分领域的投资机会。 首先,报告指出...
IT项目经理成长手记IT项目经理成长手记IT项目经理成长手记IT项目经理成长手记IT项目经理成长手记
在配置风格变化上,基金在2021年二季度增持了电气设备、电子、医药生物、化工、汽车、有色金属等成长性行业,同时减持了机械设备、计算机、公用事业、建筑材料、传媒等价值型或成熟行业。增持行业的比例也有所反映,...
IT项目经理成长手记PDF,非常不错的资源
在爱建证券发布的这份研究报告《多因子系列之二:成长类因子初测》中,分析师深入探讨了成长类因子在不同行业及不同市值股票中的表现。成长类因子作为传统选股因子之一,在投资策略中占据着举足轻重的地位。通过分析...
二、两种思维模式的区别 ixed mindset和成长型思维模式的区别主要体现在对自身评价的准确度、对成功的看法和对失败的看法不同。ixed mindset对自己能力的评估非好即坏,而成长型思维模式认为能力可以培养,所以对...
IT项目 经理成长手记 kindle电子书 IT项目 经理成长手记 kindle电子书
作为国内铝电解电容行业的领军企业,江海股份深耕于三大电容制造领域,不仅巩固了传统主营业务,同时拓展了新能源市场所需的新产品线,为公司打开了第二成长曲线。 江海股份在铝电解电容市场的地位稳固,2020年的...
紧接着,课件的第二部分通过另一组减法问题“514只小蝌蚪,一部分长出腿变成了青蛙离开了池塘,还剩下394只,这是怎么回事?”来引导学生学习如何处理更大的减法问题。在这一部分中,问题被拆解成更小的步骤,学生...
报告还特别强调了电子纱和电子布业务可能成为相关龙头企业的“第二成长曲线”。因为这些产品不仅需求量在增长,产品本身也在向更轻薄、功能化的方向发展,从而提升了产品的价值。中国巨石和泰山玻纤等企业在此领域的...
《学习伴我成长》是部编《道德与法治》三年级上册教材中的第一课,它在快乐学习单元中起着引领作用,旨在让学生深刻理解学习对于个人成长的重要性。这一课的设计考虑到了三年级学生的心理和认知发展阶段,他们在这个...
当我们在关注一个二年级学生的成长记录时,不仅仅是在观察一个孩子在学校的表现,更是全面地审视一个正在蓬勃发展中的个体。在"二年级成长记录.doc"这份文档中,我们能够看到一个完整的画卷,它细致地记录了学生的...
文章《***-申万宏源-三七互娱-002555-转型蓄力,开启第二成长曲线.pdf》重点分析了三七互娱的转型路径、市场定位、以及未来发展潜力。 三七互娱的历史发展可以概括为几个关键节点:2012年调整代理模式,2013年发力...
在第二章中,作者探讨了成功的意义,无论是个人成就还是体育竞技中的冠军,以及在商业和领导力中所扮演的角色。思维模式的不同会导致人们对成功和失败的理解有着根本上的区别。例如,拥有成长型思维模式的人相信通过...
《IT项目经理成长手记》是一本专为那些渴望在信息技术领域中担任项目经理角色的人们精心编写的指南。这本书深入探讨了IT项目管理的核心概念、关键技能以及实际操作中的经验教训,旨在帮助读者从新手到专家逐步提升...
二、对老师的致谢 * 老师的教育和培养对学生的成长 * 老师的细心指导和帮助对学生的研究 * 老师的科学态度和严谨精神对学生的影响 三、对同学和朋友的致谢 * 同学和朋友的支持和帮助对学生的研究和生活 * 同学和...