Java JDBC连接SQL Server数据库

源码如下(DBUtil.java):

import java.io.IOException;

import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Properties;
public class DBUtil {
private String url = null;
private String driver = null;
private String  user = null;
private String  pass = null;
private Properties prop = null;
private InputStream in = null;
private ResultSet result = null;
private Connection conn = null;
private PreparedStatement ps = null;
private ResultSetMetaData resultData = null;
//初始化操作
{
try{
//从配置文件读取数据库配置信息
prop = new Properties();
in = DBUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties");
prop.load(in);
driver = prop.getProperty("driver");
url = prop.getProperty("url");
user = prop.getProperty("user");
pass = prop.getProperty("pass");
//加载驱动
Class.forName(driver);   
}catch(Exception e){
e.printStackTrace();
}finally{
try{
in.close();
}catch(IOException e1){
e1.printStackTrace();
}
}
}

//带参数查询操作
public ArrayList<Object[]> ExecuteQuery(String sql,String[] parameters){

ArrayList<Object[]> arrayList = new ArrayList();
try{
conn = getConnection();
ps = conn.prepareStatement(sql);
if(parameters != null){
for(int i = 0; i < parameters.length;i++){
ps.setString(i+1, parameters[i]);
}
}
result = ps.executeQuery();
resultData = result.getMetaData();
int columnCount = resultData.getColumnCount();
while(result.next()){
Object[] object = new Object[columnCount];
for(int i = 0;i < object.length;i++){
object[i] = result.getObject(i+1);
}
arrayList.add(object);
}
}catch(SQLException e3){
System.out.println("SQL预编译出错");
e3.printStackTrace();
}finally{
this.close(result, conn, ps);
}
return arrayList;
}
//用于执行DDL和DML语句,执行DDL语句后返回0,执行DML后返回受影响的行数
public boolean ExecuteUpdate(String sql,String[] parameters){
boolean b = false;   //判断是否执行成功
try{
conn = getConnection();
ps = conn.prepareStatement(sql);
if(parameters != null){
for(int i = 0;i < parameters.length;i++){
ps.setObject(i+1, parameters[i]);
}
}
else{
System.out.println("参数为空!!!");
}
int j = ps.executeUpdate();
if(j != 0){
b = true;
}
}catch(SQLException e4){
e4.printStackTrace();
}finally{
this.close(result, conn, ps);
}
return b;
}

//获取数据库连接
public Connection getConnection(){
try{
conn = DriverManager.getConnection(url,user,pass);
}catch(SQLException e2){
System.out.println("获取数据库连接失败!!!");
e2.printStackTrace();
}
return conn;
}

//关闭连接
public void close(ResultSet rs,Connection connection,PreparedStatement pst){
try{
if(rs != null){
rs.close();
}
if(pst != null){
pst.close();
}
if(connection != null){
connection.close();
}
}catch(SQLException e3){
e3.printStackTrace();
System.out.println("关闭资源异常!!!");
}

}

}

配置文件dbinfo.properties如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值