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连接mysql的数据库驱动mysql-connector-java-5.1.13-bin及三个mysql的DBHelper封装
还在苦恼于java连接数据库吗?连接SQL Server?连接Oracle?还是MySQL? 其实,80%的功能只需要JDBC中的20%的方法,而使用DBHelper,不管使用什么数据库,全部使用统一的接口。只需2个方法,getData、updateData你...
Java连接数据库,Java连接MySql数据库,DBHelper,BaseDao,案例采用jsp
经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类经典数据库连接类
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....
Java连接数据库,项目直接导入类使用 *类内有注释参考~ 注:新增了几个Close方法直接调用close方法(需要传参)即可关闭连接资源
mysql数据库,用java实现数据库的增删改查主要类DBHelper、UserinfoDAo
java操作oracle的增删改查方法以及连接池,属性文件的加载的封装。数据库的连接字符串 写在属性文件里,方便更换数据库。把插入、删除、修改方法封装成了一个通用方法,把查询方法封装成一个通用方法。把所有连接的...
Java连接数据库,项目直接导入类使用 *类内有注释参考~ 注: Statement与ResultSet资源需手动释放!!
import java.sql.*; public class DBHelper { static String driver = "com.mysql.jdbc.Driver"; static String url = "jdbc:mysql://localhost:3306/school_db"; static String username = "root"; static ...
dbconfig.properties(列示数据库位置) dbconn.java(利用dbconfig.properties获取connection),dbhelper.java数据库通用操作类,只需要带入不同功能的sql语句(增删查改),不用复写数据库连接代码 3、Dao -Data ...
心想既然.net、java里面都有不错的连接池,那delphi应该也有吧,可是找了老半天都没能找到比较理想的。最后网上找到一个ADO的连接池实现...DbHelper.pas为为了方便访问数据库操作的实用单元,里面有关于连接池的用法。
呃 我们asp.net 老师布置的大作业 我把它传上来了 和大家分享一下 里面有Java脚本 db连接数据库类 和 DBhelper类等 制作平台是vs2010 和 数据库sql server2008
* 创建DAO时初始化连接数据库对象helper * @param context */ public BookDAO(Context context) { super(new DBHelper(context)); } } 4. activity的调用 bookDAO = new BookDAO(this); List<Book> books =...
Android CRUD 代码生成器 对于完全 crud 的应用程序,我们需要实体类、db helper 类或内容... 生成的 DBHelper 类是单例类,以便更好地重用数据库连接。 实体生成器为 xml 定义文件中定义的每个数据库表生成带有 get
ServletDemo本项目主要是以serlet来实现写接口功能,初次接触后台可能...项目结构说明DBHelper 为连接数据库类XiaoTaoBusiness 数据库增删改查帮助类ServletText 根据请求URl返回数据Medel实体类文件夹Utils工具文件夹
要修改fr.epsi.tp.redtweet.dao.helper.DbHelper.java地址,需要修改fr.epsi.tp.redtweet.dao.helper.DbHelper.java以输入适当的信息(IP和身份验证密码(如果需要)) 在项目的根目录启动bower install ,然后...