conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;User=sa;Password=11111111;DatabaseName=tempdb");//8859_1
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. The user is not associated with a trusted SQL Server connection.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.processLogon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Mysql2MSsql.<init>(Mysql2MSsql.java:30)
at Mysql2MSsql.main(Mysql2MSsql.java:18)怎么解决?谢谢了
1 、 SqlServer 2005 Express Edition
下载: http://msdn.microsoft.com/vstudio/express/sql/download/
安装完数据库后设置 ICP/IP 协议启动,具体如下:
( 1 )打开 SQL Server Configuration Manager
( 2 )转到 SQL Server 2005 Network Configuration->Protocols for SQLEXPRESS
( 3 )将 TCP/IP 设置为 Enabled (启用)
( 4 )双击 TCP/IP 项,转到 IP Addresses 页
( 5 ) IP All 中设置 TCP Port 为 1433
( 6 )重新启动服务
2 、 SqlServer2005 数据库 JDBC 驱动
下载: http://download.microsoft.com/download/d/2/e/d2e1ffb6-2cfa-4a62-a22d-a413cce93118/Download_SQL_JDBC_Driver.htm
安装或者解压,取得 sqljdbc.jar 文件,该文件即为 JDBC 驱动。将 sqljdbc.jar 放到 classpath 。( web application 中放在 WEB-INF/lib 下) 二、连接数据库 SqlServer2005 的 java 代码
1 、在 tempdb 中创建测试数据表格
use tempdb
CREATE TABLE dbo.Table_1
(
ID bigint NOT NULL,
NAME varchar(20) NOT NULL,
EMAIL varchar(50) NULL
) ON [PRIMARY] 2 、测试使用数据库连接
下面代码创建了一个连接到数据库的连接,及使用连接操作数据库。
/*
* 创建日期 2006-6-1
*/
package cn.afss.common.web.test; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import org.apache.log4j.Logger; /**
* @author Amei
* Amei's FreeSky Studio
*/
public class TestConnSql2k5Bean {
/**
* Log4J Logger for this class
*/
private static final Logger logger =
Logger.getLogger(TestConnSql2k5Bean.class);
private Connection conn = null; public TestConnSql2k5Bean() {
super();
} public void getConnection() {
try {
Class
.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";
String USER = "sa"; // 根据你自己设置的数据库连接用户进行设置
String PASSWORD = "sa"; // 根据你自己设置的数据库连接密码进行设置
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (java.lang.ClassNotFoundException ce) {
logger.error("Get Connection error:", ce);
} catch (java.sql.SQLException se) {
logger.error("Get Connection error:", se);
} catch (Exception e) {
logger.error("Get Connection error:", e);
}
} public void testConnection() {
if (conn == null)
this.getConnection();
try {
String sql = "SELECT * FROM TABLE_1";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
logger.debug(rs.getString("ID"));
logger.debug(rs.getString("NAME"));
logger.debug(rs.getString("EMAIL"));
}
rs.close();
stmt.close();
} catch (SQLException e) {
logger.error(e.getMessage(), e);
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
}
}
}
public static void main(String[] args) {
TestConnSql2k5Bean bean = new TestConnSql2k5Bean();
bean.testConnection();
}
} 三、 Sql Server2000 和 2005 的连接代码区别
写连接代码时需要注意 2000 和 2005 的不同:
1 、连接 SqlServer2000
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";
2 、连接 SqlServer2005
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";