sqlHelper用于操作数据对象(从韩顺平老师教学视频中总结而来)

时间:2024.5.13

package com.zz.utils;

import java.io.InputStream; //导入java.io.InputStream类

import java.sql.*; //导入java.sql包中的所有类

import java.util.ArrayList;

import java.util.Properties; //导入java.util.Properties类

/**

*

* @author administrator

*/

public class ConnDB {

private static final ArrayList al = null;

private static Connection conn = null; // 声明Connection对象的实例

private static PreparedStatement stmt = null; // 声明Statement对象的实例

private static ResultSet rs = null; // 声明ResultSet对象的实例

private static String propFileName = "connDB.properties"; // 指定资源文件保存的位置 private static Properties prop = new Properties(); // 创建并实例化Properties对象的实例 private static String dbClassName = "com.mysql.jdbc.Driver";//定义保存数据库驱动的变量 private static String dbUrl = "jdbc:mysql://127.0.0.1:3306/database?user=root&password=root&useUnicode=true"; public ConnDB() { //定义构造方法

try { //捕捉异常

//将Properties文件读取到InputStream对象中

InputStream in = getClass().getResourceAsStream(propFileName);

prop.load(in); // 通过输入流对象加载Properties文件

dbClassName = prop.getProperty("DB_CLASS_NAME"); // 获取数据库驱动 dbUrl = prop.getProperty("DB_URL", dbUrl); //获取URL

} catch (Exception e) {

e.printStackTrace(); // 输出异常信息

}

}

public static Connection getConnection() {

Connection conn = null;

try { //连接数据库时可能发生异常因此需要捕捉该异常

Class.forName(dbClassName).newInstance(); //装载数据库驱动 //建立与数据库URL中定义的数据库的连接

conn = DriverManager.getConnection(dbUrl);

} catch (Exception ee) {

ee.printStackTrace(); //输出异常信息

}

if (conn == null) {

System.err

.println("警告: ConnDB.getConnection() 获得数据库链接失败.\r\n链接类型:"

+ dbClassName

+ "\r\n链接位置:"

+ dbUrl); //在控制台上输出提示信息

}

return conn; } /* //返回数据库连接对象 * 功能:执行更新操作 */ public static void excuteUpdate(String sql ,String[] parameters) {

try { // 捕捉异常

conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn

stmt=conn.prepareStatement(sql);

System.out.println("到达这里离"); //给问号赋值 if(parameters!=null){ for(int i=0;i<parameters.length;i++){ stmt.setString(i+1, parameters[i]); } } //执行 stmt.executeUpdate(); } catch (SQLException ex) { System.err.println(ex.getMessage()); // 输出异常信息 throw new RuntimeException(ex.getMessage());// }finally{ } } /* * * * */ public static ArrayList executeQuery2(String sql,String []parameters){

conn=getConnection(); stmt=conn.prepareStatement(sql); if(parameters!=null && !sql.isEmpty()){ for(int i=0;i<parameters.length;i++){ stmt.setString(i+1, parameters[i]); } } rs=stmt.executeQuery(); ArrayList al=new ArrayList(); ResultSetMetaData rsmd=rs.getMetaData(); int column =rsmd.getColumnCount(); while(rs.next()){ Object[] ob=new Object[column]; for(int i=1;i<=column;i++){ ob[i-1]=rs.getObject(i); } al.add(ob); } return al; } catch (Exception e) { System.err.println(e.getMessage()); // 输出异常信息 throw new RuntimeException(e.getMessage());// }finally { close(); } } /* * 功能:执行查询语句 */ public static ResultSet executeQuery(String sql,String []parameters){ try { conn=getConnection(); stmt=conn.prepareStatement(sql); if(parameters!=null && !sql.isEmpty()){ for(int i=0;i<parameters.length;i++){ stmt.setString(i+1, parameters[i]); } }

} } catch (Exception e) { System.err.println(e.getMessage()); // 输出异常信息 throw new RuntimeException(e.getMessage());// } return rs; //如果有多个update、delete、insert public static void excuteUpdate2(String sql[] ,String[][] parameters) { try { //核心 //1、获得链接 conn=getConnection(); //用户可能创建多个sql语句 conn.setAutoCommit(false); for(int i=0;i<sql.length;i++){ if(parameters[i]!=null){ stmt=conn.prepareStatement(sql[i]); for(int j=0;j<parameters[i].length;j++){ stmt.setString(j+1,parameters[i][j]); } } stmt.executeUpdate(); } conn.commit(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); // TODO: handle exception } } /* * 功能:关闭数据库的连接 */ public static void close() { try { // 捕捉异常 if (rs != null) { // 当ResultSet对象的实例rs不为空时 rs.close(); // 关闭ResultSet对象

} } if (stmt != null) { // 当Statement对象的实例stmt不为空时 stmt.close(); // 关闭Statement对象 } if (conn != null) { // 当Connection对象的实例conn不为空时 conn.close(); // 关闭Connection对象 } } catch (Exception e) { } e.printStackTrace(System.err); // 输出异常信息

更多相关推荐:
中学数学教学总结

怎样帮助学生提高自主学习能力单位:高新区盈园中学作者:高原娥摘要:自主学习是指学习者在一定指导下,依靠一定的资源,通过多种途径和方法,自发、自由、自主获取信息、建构知识体系的过程。自主学习不仅能开发出学生潜在的…

中学数学教学经验总结

中学数学教学经验总结匆忙间我来到黄泥中学已经有xx年多的时间,反思这些年来的数学教学情况,我有付出,有失败,也有收获。下面就自己的数学谈一点个人的心得体会。一、激发学生的学习兴趣我认为,一门学科学生成绩的好坏,…

初中数学教师个人工作总结

中学数学教师工作总结李克斯本年度,本人在教育教学工作中,始终坚持党的教育方针,面向全体学生,教书育人,为人师表,确立“以学生为主体”,“以培养学生主动发展”为中心的教学思想,重视学生的个性发展,重视激发学生的创…

20xx年初中数学教学工作总结

数学教学工作总结本学期为适应新时期教学工作的要求本人从各方面严格要求自己认真钻研新课标理念改进教法认真对待工作中的每一个细节结合本班学生的实际情况勤勤恳恳兢兢业业使教学工作有计划有组织有步骤地开展为总结过去挑战...

初中数学教学工作总结

本学期,我认真贯彻党的十七大的教育教学方针。从各方面严格要求自己,积极向老教师请教,结合本班学生的实际情况,勤勤恳恳,兢兢业业,有计划、有组织、有步骤地开展教育教学工作。立足现在,放眼未来,为使今后的工作取得更…

初中数学教师教学工作总结

初中数学教师教学工作总结1本人本学期担任初二34两班数学课教学和数学兴趣小组活动一学期的工作已经结束为了总结经验寻找不足现将一学期的工作总结如下一业务学习加强学习提高思想认识树立新的理念坚持每周的政治学习和业务...

中学数学教学工作总结

数学教学工作总结回顾一年来的工作,除了认真备课、上课、听课、评课,及时批改作业、讲评作业,做好课后辅导工作外,还要参加各级教研活动和继续教育。闲暇之时,还要习惯性的作好自我充电,不仅广泛涉猎相关学科知识,而且认…

初中数学教师教学工作总结1

初中数学教师教学工作总结1本人本学期担任初二(3)(4)两班数学课教学和数学兴趣小组活动。一学期的工作已经结束,为了总结经验,寻找不足。现将一学期的工作总结如下:一、业务学习加强学习,提高思想认识,树立新的理念…

20xx-20xx学年华师大八年级数学上教学工作总结

20xx-20xx学年度第一学期华师大数学教学工作总结马志勇本学期,我担任八年级4、5班的数学教学工作,从各方面严格要求自己,结合本校的实际条件和学生的实际情况,勤勤恳恳,兢兢业业,怒力实施教学工作计划,有组织…

高中数学教学工作总结

高中数学教学工作总结相东职专阳小连转眼间一个学期结束了我从学校领导那学到了做一名老师要有责任心有经验有反思有内涵更要有广阔的胸怀校长常常教导我们不要浮躁要脚踏实地还有许许多多工作生活中的哲理让我听了很受启发美国...

中学数学教师个人工作总结

中学数学教师个人工作总结本学期我担任年级数学教学工作认真学习教育教学理论从各方面严格要求自己主动与班主任团结合作结合本班的实际条件和学生的实际情况勤勤恳恳兢兢业业使教学工作有计划有组织有步骤地开展为完成教育教学...

国培计划初中数学教师培训心得体会

国培计划初中数学教师培训心得体会作者李娜时间20xx0730162818振兴民族的希望在教育振兴教育的希望在教师造就一支高素质的教师队伍是实施科教兴国战略实施可持续发展和全面实施素质教育及推进新课程改革的基本保...

中学数学教学总结(48篇)