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<sqlValues.size();i++){
try {
pst.setObject(i+1,sqlValues.get(i));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
配置文件
文件名:db.properties,放置于src目录下
文件中的内容如下:
driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver
driver_url=jdbc\:sqlserver\://localhost\:1433;DataBaseName\=property_DB
database_user=sa
database_password=123456
分享到:
相关推荐
还在苦恼于java连接数据库吗?连接SQL Server?连接Oracle?还是MySQL? 其实,80%的功能只需要JDBC中的20%的方法,而使用DBHelper,不管使用什么数据库,全部使用统一的接口。只需2个方法,getData、updateData你...
java连接数据库jdbc 很好用 包括很多方法 增删改查 多条语句更新(放到一个linkedlist里面)
总之,`JAVA数据库DbHelper.pdf`这份资料应该会详细讲解如何设计一个实用的`DbHelper`类,帮助开发者更好地管理和操作数据库,提高代码的可读性和可维护性。通过学习这份资料,开发者可以掌握Java中数据库操作的最佳...
Java连接MySQL驱动及MySQL的DBHelper是开发过程中常见的任务,主要涉及Java编程语言与MySQL数据库的交互。在Java中,我们通常使用JDBC(Java Database Connectivity)API来连接和操作数据库。MySQL-Connector/J是...
在Java、C#等面向对象编程语言中,DbHelper通常被设计为一个静态类,提供了一系列静态方法来执行SQL语句,以实现对数据库的数据处理。 在数据库编程中,DbHelper类的核心功能包括以下几个方面: 1. 连接管理:...
本文将主要介绍Java实现连接数据库及模糊查询功能的示例,结合实例形式分析了Java基于JDBC连接数据库及使用LIKE语句实现模糊查询功能的相关操作技巧。 一、连接数据库 Java语言可以使用JDBC(Java Database ...
还在苦恼于java连接数据库吗?连接SQL Server?连接Oracle?还是MySQL? 其实,80%的功能只需要JDBC中的20%的方法,而使用DBHelper,不管使用什么数据库,全部使用统一的接口。只需2个方法,getData、updateData你...
// 连接数据库,执行查询并返回结果集 } public int executeUpdate(String sql, Object... params) throws CustomException { // 执行更新操作并返回受影响的行数 } // 其他如开启事务、提交、回滚的方法....
"MySql连接数据库---DBHelper封装.zip" 文件提供了一种便捷的方式,帮助开发者高效地与MySQL数据库进行交互,实现数据的增删查改操作。在这个压缩包中,包含了一个名为"DBHelper"的封装类,它简化了数据库连接的流程...
这个压缩包提供了用于Java连接MySQL数据库的`DBHelper`类,其中包含代码示例和所需的JDBC驱动(即`mysql-connector-java.jar`)。 首先,让我们了解一下Java如何通过JDBC(Java Database Connectivity)接口与MySQL...
4. **结果集处理**:DBHelper通常会封装ResultSet的处理,将数据库查询的结果转换为Java对象或者List集合。这使得数据的获取和处理更加方便,例如通过`getBean()`或`getBeans()`方法。 5. **数据库元数据访问**:...
描述中提到的“Java连接数据库,Java连接MySql数据库,DBHelper,BaseDao”是该项目的关键技术点,表明这个系统使用Java语言,特别是通过JDBC来与MySQL数据库进行交互,并采用了DBHelper和BaseDao的设计模式来辅助...
在IT行业中,数据库是存储和管理数据的核心工具,而DBHelper是编程中常用的一个辅助类,主要用于帮助我们更方便地连接和操作数据库。本篇将深入探讨DBHelper及其在数据库连接中的应用。 首先,让我们理解一下什么是...
经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类
SqlHelper.java连接数据库通用类... package org.jdbc.com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql....
在连接数据库时,DBHelper通常使用`java.sql.DriverManager.getConnection()`方法,并通过`Connection`对象来管理与数据库的会话。 其次,DBHelper提供了一系列的增删改查(CRUD)方法。例如,`insert()`方法用于...
- `DBHelper.java`: 继承自`SQLiteOpenHelper`的类,用于创建和升级数据库。 - `MainActivity.java`: 应用的主要活动,演示如何打开数据库、执行SQL语句以及展示查询结果。 - `数据库配置文件`: 可能包含数据库版本...
本篇将详细介绍如何使用Java连接MySQL数据库,实现增删改查(CRUD)操作。 首先,我们了解基本概念。在Java中,我们通常使用JDBC(Java Database Connectivity)来与MySQL进行交互。JDBC是Java API,允许Java程序与...