java使用jtds连接sqlserver2000问题
一般以下几个问题:
1、WINDOWS防火墙屏蔽了1433端口
2、检查sqlserver2000是否使用的是1433端口
3、检查sqlserver2000是否升级到SP4版本(基本都是这个问题)
属性文件DataBase.properties
jdbc.driver=net.sourceforge.jtds.jdbc.Driver
jdbc.url=jdbc:jtds:sqlserver://localhost:1433;DatabaseName=pubs
jdbc.user=sa
jdbc.password=sa
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;
/**
* the Default Constructor
*/
public DBManager(){
init();
}
/**
* connect database
*/
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();
}
}
/**
* 查询数据库的结果集
* @param sql
* @return ResultSet
*/
public ResultSet getResultSet(String sql){
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/**
* insert/update/delete数据库记录
* @param sql
* @return boolean
*/
public boolean execute(String sql){
try {
return stmt.execute(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
/**
* close Connection/Statement/ResultSet
* @param conn
* @param stmt
* @param rs
*/
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();
}
}
}
属性文件SqlScript.properties
sql.words1=c://dbtable1.sql
sql.words2=c://dbtable2.sql
package com.michael.database;
import java.io.*;
import java.util.*;
public class DataTransferFromSqlScript {
private DBManager db = new DBManager();
/*
* @param positions
*/
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();
/*从属性文件中读*/
String fileName = "SqlScript.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值对),value是sql脚本存放位置*/
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();
}
// Object[] sqlsSorted = sortSqls(sqls, -1);
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;
}
}
/**
* @param sqls
* @param n (n > 0 or n < 0)
* @return
*/
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;
}
/**
* @param sql
* @return
*/
public static int getId(String sql){
int start = sql.indexOf("values(");
String s = sql.substring(start).split(",")[0].substring(8);
return Integer.parseInt(s);
}
}
分享到:
相关推荐
SSM框架,全称为Spring、SpringMVC和MyBatis的集成框架,是Java后端开发中的常用技术栈。在SSM项目中,数据库连接管理是至关重要的,而...在与SQL Server数据库配合时,理解SQL Server的特性和Druid的配置选项是关键。
在本示例中,我们将探讨如何使用MyBatis通过JDBC连接到SQL Server数据库,并进一步学习如何利用MyBatis的动态代理机制生成Mapper接口的实现。 首先,我们需要在项目中引入MyBatis和SQL Server的JDBC驱动依赖。通常...
总的来说,MyBatis Generator是MyBatis框架下的一个强大工具,对于SQL Server数据库的开发尤其便利。通过合理配置和使用,可以大大提高开发效率,同时保持代码的整洁和可维护性。在实际开发中,熟练掌握MBG的使用,...
### SQL Server数据库的连接方法(Struts项目) 在软件开发过程中,尤其是对于基于Java的Web应用程序,连接数据库是一项基础且重要的工作。本文将详细介绍如何在Struts项目中连接SQL Server数据库,并通过示例代码...
这个驱动包包含了与SQL Server通信所需的类,尤其是`com.microsoft.sqlserver.jdbc.Driver`,它是JDBC驱动的实现,使得Java应用程序能够与SQL Server建立连接。 配置Spring的德鲁伊数据源(Druid DataSource)是...
### Java连接SQL Server数据库知识点详解 #### 一、概述 在Java开发中,连接SQL Server数据库是一项基础且重要的技能。本文将详细介绍如何使用Java代码来连接SQL Server 2005(以及其他版本)数据库,并解释代码中...
url: jdbc:sqlserver://localhost:1433;databaseName=primaryDB username: user1 password: pass1 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver secondary: url: jdbc:sqlserver://...
SQL Server的配置可能与MySQL略有不同,比如驱动类名(`com.microsoft.sqlserver.jdbc.SQLServerDriver`),URL格式也有所不同。确保使用正确的驱动库并正确配置连接字符串。 9. **测试与集成**: 在编写完配置和...
在Spring Boot中,需要使用对应的JDBC驱动,如`com.microsoft.sqlserver:mssql-jdbc`。 - 配置内容与MySQL类似,但URL格式、用户名和密码会根据SQL Server实例的不同而变化。 5. **开发工具IntelliJ IDEA**: - ...
配置完成后,c3p0会自动管理SQLServer数据库的连接,提供高效的连接复用和健康检查。 **5. 性能优化与最佳实践** - **合理设置连接池大小**:根据应用的并发量和数据库服务器的承受能力,合理设定初始池大小、最小...
在SQLServer数据库方面,它提供了强大的数据存储和处理能力。包括表、视图、存储过程、触发器等数据库对象,以及事务控制、索引优化等功能。在整合SpringMVC和Mybatis时,通常会创建数据库连接池,如Apache的DBCP或...
其次,SQL Server数据库文件存储了系统的数据,包括图书信息、读者信息、借阅记录等。SQL Server是微软公司的一款关系型数据库管理系统,具备高可用性、安全性以及强大的数据处理能力。开发者在设计数据库时,可能...
在Web应用中,通常会使用JDBC(Java Database Connectivity)来连接到SQL Server数据库,实现数据的存取。JDBC驱动程序是桥梁,允许Java应用程序通过API与SQL Server进行通信。 在实际应用中,配置Tomcat与SQL ...
总的来说,这个中间件通过Java的JDBC和Java Bean技术,实现了数据库连接的抽象化,降低了用户操作数据库的复杂度,提升了代码的可复用性和可维护性。对于大型项目,这样的设计可以极大地优化数据库访问效率,同时...
通过以上步骤,我们可以在Spring Boot应用中成功配置多数据源,支持同时连接和操作MySQL和SQL Server数据库。这使得我们可以根据业务需求灵活地分配和管理数据存储,提高了系统的可扩展性和灵活性。
3. 数据访问层:通过JDBC或JPA与SQL Server数据库进行交互,完成数据的CRUD(创建、读取、更新、删除)操作。 四、系统功能模块 1. 用户管理:包括用户注册、登录、权限分配等。 2. 客户管理:记录客户基本信息,...
环境为TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008,使用java语言开发。 二、功能介绍 博客中有对应的系统介绍 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java ,权限包括 用户,...
本教程将通过一个小例子,详细介绍如何使用MyBatis连接到SQLServer数据库。 首先,我们需要在项目中引入MyBatis和SQLServer的驱动依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <!-- ...
综上所述,这个JSP源代码示例展示了如何通过JDBC连接SQL Server数据库,并根据用户输入的日期查询书籍信息。在实际应用中,还需要考虑错误处理、数据验证和安全性等方面,以提高应用程序的健壮性和安全性。
而对于SQL Server,则可能是`com.microsoft.sqlserver.jdbc.SQLServerDriver`。加载驱动后,我们可以使用这些驱动提供的方法建立连接。 JNDI是一种Java API,它允许应用程序查找和绑定命名服务中的对象,如数据库...