import java.io.*;

import java.sql.*;

import java.util.*;

import javax.servlet.jsp.jstl.sql.*;

public class DBHelper {

private String sql; //要传入的sql语句

public void setSql(String sql) {

this.sql = sql;

}

private List sqlValues; //sql语句的参数

public void setSqlValues(List sqlValues) {

this.sqlValues = sqlValues;

}

private Connection con; //连接对象

public void setCon(Connection con) {

this.con = con;

}

public DBHelper(){

this.con=getConnection(); //给Connection的对象赋初值

}

/**

* 获取数据库连接

* @return

*/

private Connection getConnection(){

String driver_class=null;

String driver_url=null;

String database_user=null;

String database_password=null;

try {

InputStream fis=this.getClass().getResourceAsStream("/db.properties"); //加载数据库配置文件到内存中

Properties p=new Properties();

p.load(fis);

driver_class=p.getProperty("driver_class"); //获取数据库配置文件

driver_url=p.getProperty("driver_url");

database_user=p.getProperty("database_user");

database_password=p.getProperty("database_password");

Class.forName(driver_class);

con=DriverManager.getConnection(driver_url,database_user,database_password);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return con;

}

/**

* 关闭数据库

* @param con

* @param pst

* @param rst

*/

private void closeAll(Connection con,PreparedStatement pst,ResultSet rst){

if(rst!=null){

try {

rst.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(pst!=null){

try {

pst.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(con!=null){

try {

con.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

/**

* 查找

* @param sql

* @param sqlValues

* @return

*/

public Result executeQuery(){

Result result=null;

ResultSet rst=null;

PreparedStatement pst=null;

try {

pst=con.prepareStatement(sql);

if(sqlValues!=null&&sqlValues.size()>0){ //当sql语句中存在占位符时

setSqlValues(pst,sqlValues);

}

rst=pst.executeQuery();

result=ResultSupport.toResult(rst); //一定要在关闭数据库之前完成转换

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

this.closeAll(con, pst, rst);

}

return result;

}

/**

* 增删改

* @return

*/

public int executeUpdate(){

int result=-1;

PreparedStatement pst=null;

try {

pst=con.prepareStatement(sql);

if(sqlValues!=null&&sqlValues.size()>0){ //当sql语句中存在占位符时

setSqlValues(pst,sqlValues);

}

result=pst.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

this.closeAll(con, pst, null);

}

return result;

}

/**

* 给sql语句中的占位符赋值

* @param pst

* @param sqlValues

*/

private void setSqlValues(PreparedStatement pst,List sqlValues){

for(int i=0;i

try {

pst.setObject(i+1,sqlValues.get(i));

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

import javax.servlet.jsp.jstl.sql.*;包可以在此下载:http://download.csdn.net/download/friendan/5641319

Java开发程序,使用编辑器编写创建Java项目、类

打开Eclipse 出现界面 工作空间的路径可以选择一个大空间的磁盘存放,点击确定: 创建:程序左上角-文件-新建-JAVA项目 输入项目名(项目名不能为中文),点击完成: 在   包资源管理器中点击 ...

java 项目中几种O实体类的概念

经常会接触到vo,do,dto的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,vo对应于页面上需要显示的数据(表单),do对应 ...

Eclipse安装配置以及java项目和类的创建

1.Eclipse的安装: 双击此应用程序 进入安装界面 选择下一步 更改路径将此默认路径改为 确定之后下一步更改jre的安装路径 在之前安装的java文件夹下新建一个jre文件夹 将jre安装在里边 ...

Scala:Java 项目中混入scala代码

Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(sca ...

将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

Java开发环境的搭建以及使用eclipse从头一步步创建java项目

一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...

用Ant实现Java项目的自动构建和部署

java dbhelper类_java项目使用的DBhelper类相关推荐

  1. java永久冻结_Java如何解决脆弱基类(基类被冻结)问题

    概述 大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends."JAVA设计模式"一 ...

  2. 编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款

    查看本章节 查看作业目录 需求说明: 某用户共有两张银行卡,账户名称相同,但卡号和余额不同.模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路: 项目中创建账户类 Account,类中 ...

  3. java虚拟机预先加载哪些类_Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  4. 声明银行账户类 java_编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款...

    查看本章节 查看作业目录 需求说明: 某用户共有两张银行卡,账户名称相同,但卡号和余额不同.模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路: 项目中创建账户类 Account,类中 ...

  5. java封装对象实体类_Java 接口自动化系列--实体类之entity封装

    实体包entity下面有4个类,主要存放java对象,每个类必须有私有属性,空参构造,get set方法 具体excel中数据信息见---工具类excel文章 1.API类 解析excel中接口信息的 ...

  6. java.lang中所有的类_java.lang中的数学类

    Math 类 Java 中,讲 Math 类定义为 final 类,不能再派生子类. Math 类中定义的常量和方法都用 static 修饰符来修饰,因此不必创建 Math 类的实例,可以通过类名直接 ...

  7. java 不能继承的类_java中不能继承的类有哪些?

    在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的. 因为jdk的开发者认为,有一些最基本的类没要必要对开发者开放,如果用户继承时操作有误,很可能引入很多问题 ...

  8. java构造一个水果类_Java基础入门之Object类、匿名内部类、构造方法的继承解析...

    前言 大家好,我是Java进阶者.这篇文章我们主要介绍Java基础中的Object类.匿名内部类.构造方法的继承知识,一起来学习下吧! 一.Object类 1.Object类是所有类的父类,所有类都继 ...

  9. JAVA语言异常_Java语言中常用异常类EoFException是用来处理( )异常的类_学小易找答案...

    [填空题]Java语言中常用异常类ClassNotFoundException是用来处理 ( )的异常的类 [填空题]Java语言声明 ( ) 类为会产生"严重错误"的类 [简答题 ...

最新文章

  1. Linux防火墙限制指定端口只能由指定IP访问
  2. 自己学习Foundation一些类
  3. 攻破JAVA NIO技术壁垒
  4. tabbar怎么些_vue 做的tabBar组件
  5. 英语语法---介词详解
  6. window 查找 java 进程中占用cpu比较高的线程
  7. MinGW和MSYS的自动安装 【转】
  8. 解决Eclipse的Team菜单中没有SVN选项的问题
  9. scrapy爬虫-setting.py
  10. 容器、微服务和互联网架构浅谈
  11. pl sql入门比较好的书_面试官问你SQL?这几本书足够了
  12. azw3转换为pdf_干货:如何Java 将 Word 文档转换为 PDF
  13. JavaSE学习--正则表达式
  14. cocos2d-x 之TableView
  15. NPOI导出EXCEL报_服务器无法在发送 HTTP 标头之后追加标头
  16. mysql登录密码mysql重置root密码
  17. 《史蒂夫·乔布斯传》经典语句段落摘录
  18. win7禁止应用程序联网
  19. VR虚拟线上展馆之水资源绿色发展博览会
  20. 《RFID原理及应用》期末复习总结(6)

热门文章

  1. 废物利用 iPhone中的报刊杂志变身文件夹(无需越狱无需任何工具)
  2. windows xp实用技术50招
  3. Learning Deep Learning(学习深度学习)
  4. Java基础之ArrayList
  5. web前端全栈0基础到精通(祺)08
  6. 云HIS系统 云his系统源码 基于电子病历的医院信息平台标准建设
  7. Rasa 3.x 学习系列-Rasa [3.5.8] -2023-05-12新版本发布
  8. 听说你天天加班,那就不给你加薪了
  9. 瑞士轮赛制模拟器_ELEAGUE Major将采用瑞士轮赛制
  10. 如何给python爬虫加界面_Python爬虫技术--基础篇--图形界面