SqlServer数据库jdbc连接(bean)

[color=red][b]java使用jtds连接sqlserver2000问题[/b][/color]
[color=blue][b]一般以下几个问题:
1、WINDOWS防火墙屏蔽了1433端口
2、检查sqlserver2000是否使用的是1433端口
3、检查sqlserver2000是否升级到SP4版本(基本都是这个问题)[/b][/color]

[color=red][b]属性文件DataBase.properties[/b][/color]
[b][color=green]jdbc.driver=net.sourceforge.jtds.jdbc.Driver
jdbc.url=jdbc:jtds:sqlserver://localhost:1433;DatabaseName=pubs
jdbc.user=sa
jdbc.password=sa[/color][/b]

package com.michael.database;
import java.io.*;
import java.sql.*;
import java.util.*;
public class DBManager {
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;

[color=blue]/**
* the Default Constructor
*/[/color]
public DBManager(){
init();
}

[color=blue]/**
* connect database
*/[/color]
private void init(){
Properties props = new Properties();
/*从属性文件中读*/
String fileName = "DataBase.properties";
FileInputStream fis = null;
try {
fis = new FileInputStream(fileName);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//InputStream is = getClass().getResourceAsStream(fileName);
/*加载输入流中的文件*/
try {
props.load(fis);
} catch (IOException e) {
e.printStackTrace();
}
/*从输入流中读取属性列表(key键和value值对)*/
String driver = props.getProperty("jdbc.driver");
String url = props.getProperty("jdbc.url");
String user = props.getProperty("jdbc.user");
String password = props.getProperty("jdbc.password");

try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
} catch (SQLException e) {
e.printStackTrace();
}
}
[color=blue]/**
* 查询数据库的结果集
* @param sql
* @return ResultSet
*/[/color]
public ResultSet getResultSet(String sql){
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
[color=blue]/**
* insert/update/delete数据库记录
* @param sql
* @return boolean
*/[/color]
public boolean execute(String sql){
try {
return stmt.execute(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
[color=blue]/**
* close Connection/Statement/ResultSet
* @param conn
* @param stmt
* @param rs
*/[/color]
public void closeConnection(Connection conn,Statement stmt,ResultSet rs){
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(stmt!=null)
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

[color=red][b]属性文件SqlScript.properties[/b][/color]
[color=green][b]sql.words1=c://dbtable1.sql
sql.words2=c://dbtable2.sql[/b][/color]

package com.michael.database;
import java.io.*;
import java.util.*;
public class DataTransferFromSqlScript {
private DBManager db = new DBManager();

[color=blue]/*
* @param positions
*/[/color]
private static void swap(Object[] positions,int i,int j){
Object temp = positions[i];
positions[i] = positions[j];
positions[j] = temp;
}

public void readAndSaveResumeData(){
System.out.println("translate data starting ......");
Properties props = new Properties();
[b]/*从属性文件中读*/[/b]
String fileName = "SqlScript.properties";
FileInputStream fis = null;
try {
fis = new FileInputStream(fileName);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
[b]//InputStream is = getClass().getResourceAsStream(fileName);
/*加载输入流中的文件*/[/b]
try {
props.load(fis);
} catch (IOException e) {
e.printStackTrace();
}
[b]/*从输入流中读取属性列表(key键和value值对),value是sql脚本存放位置*/[/b]
List<String> files = new ArrayList<String>();
files.add(props.getProperty("sql.words1"));
files.add(props.getProperty("sql.words2"));

for(String filename : files){
File file = new File(filename);
List<String> sqls = new ArrayList<String>();
try {
FileReader in = new FileReader(file);
BufferedReader br = new BufferedReader(in);
String s;
String str = "";
while((s = br.readLine())!= null){
if(s.startsWith("insert into")){
str = s;
}else if(s.startsWith("values(")){
s = getSql(s);
sqls.add((str+s).replace(";", ""));
}
}
br.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}

[b]// Object[] sqlsSorted = sortSqls(sqls, -1);[/b]

Object[] sqlsSorted = sqls.toArray();

System.out.println(filename+" total: "+sqlsSorted.length);

for(Object sql : sqlsSorted){
System.out.println(sql);
/*执行sql语句*/
db.execute(sql.toString());
}
}
}

private String getSql(String s){
int i = s.indexOf("to_timestamp");
if(i>0){
return s.replace(s.substring(i,i+70),null);
}else{
return s;
}
}

[color=blue]/**
* @param sqls
* @param n (n > 0 or n < 0)
* @return
*/[/color]
public static Object[] sortSqls(List<String> sqls,int n){
Object[] array = sqls.toArray();
for(int i = 0;i < array.length;i++){
for(int j = array.length-1;j>i;j--){
if(n>0){
if(getId((String)array[j]) > getId((String)array[j-1]))
swap(array,j,j-1);
}else if(n<0){
if(getId((String)array[j]) < getId((String)array[j-1]))
swap(array,j,j-1);
}
}
}
return array;
}

[color=blue]/**
* @param sql
* @return
*/[/color]
public static int getId(String sql){
int start = sql.indexOf("values(");
String s = sql.substring(start).split(",")[0].substring(8);
return Integer.parseInt(s);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值