当前位置: 代码迷 >> J2SE >> 数据库配置和连接有关问题
  详细解决方案

数据库配置和连接有关问题

热度:160   发布时间:2016-04-24 12:30:50.0
数据库配置和连接问题
问题一:
JDBC-ODBC桥连接添加SQl server数据源的时候:

名称:StudyTest
描述:
服务器:localhost

Sql server应该如何验证登陆ID的真伪(这个选项卡的选项我选的是默认 下一步的时候出错)
错误:

连接失败:
SQLstate:'01000'
SQLserver错误:14
[Microsoft][ODBC SQLserver Driver][DBNETLIB]ConnectionOpen Invalid Instance()

连接失败:
SQLstate:'08001'
SQLserver错误:14
[Microsoft][ODBC SQLserver Driver][DBNETLIB]无效的连接

这是什么错误啊?我装的是Sql server2005 都配置好了。



问题二:
由于桥连接不行,我就采用纯Java驱动方式,但是同样的代码在Eclipse中代码没有提示错误,但是包左边视图文件上却有个错误的红叉,奇怪的是代码没有提示任何错误。
然后我又把代码在MyEclipse中测试,没有任何错误。运行也正常。这是为什么啊?


[code=Java][/code][code=Java][/code]
import java.sql.*;  
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import java.util.*;
class JTable1 extends JFrame
{
JPanel cp = new JPanel();
JTable jtable1;
JScrollPane jscrp1 = new JScrollPane();
public JTable1()
  {
cp = (JPanel)this.getContentPane();
this.setTitle("student result");
this.setSize(500, 200);
cp.setLayout(new FlowLayout());

Connection con;
Statement sql;
ResultSet rs;
DefaultTableModel dtm;
//DefaultTableModel是 TableModel 的一个实现,它使用一个 Vector 来存储单元格的值对象,该 Vector 由多个 Vector 组成。 

Vector <Vector> content=new Vector <Vector>();
Vector <String> title=new Vector <String>();
 
try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } //建立桥接器
catch (java.lang.ClassNotFoundException e)
{ e.printStackTrace();}  
  try  
  {
con= DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;" +
" DatabaseName=StudyTest","sa","sa");//连接
 
sql=con.createStatement();
sql.execute("use StudyTest");
rs=sql.executeQuery("SELECT * FROM studentInfo");
ResultSetMetaData rsmd=rs.getMetaData();
//ResultSetMetaData可用于获取关于 ResultSet 对象中列的类型和属性信息的对象

for(int i = 1; i <= rsmd.getColumnCount(); i++)//getColumnCount()记录条数
{
title.add(rsmd.getColumnName(i));//获取列名(对象String)
 
}

while(rs.next())
{
Vector <String> tmp=new Vector<String>();//一个Vector content包含多个Vector
for(int i = 1; i <= rsmd.getColumnCount(); i++)
tmp.add(rs.getString(i));//获取记录
content.add(tmp);
}
dtm=new DefaultTableModel(content,title);
 
jtable1 = new JTable(dtm);
jtable1.setRowHeight(20);
jscrp1.getViewport().add(jtable1);//getViewport()滚动窗格的视口子级
cp.add(jscrp1);
 
con.close();
}  
catch (SQLException el)
{ el.printStackTrace();}
  }
}
public class SQLTest

public static void main(String args[])

JTable1 JTable1 = new JTable1();
JTable1.setVisible(true);
  }  
}  
在Eclipse和MyEclipse我都导入了驱动包:msbase.jar mssqlserver.jar msutil.jar
另外再问一下 为什么 只导入一个 mssqlserver.jar就不行呢?

麻烦大家帮下忙,还是新手。



------解决方案--------------------
con= DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;" +
" DatabaseName=StudyTest","sa","sa");//连接

你这句能通过么?


试试这个
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=StudyTest","sa","sa");
------解决方案--------------------
  相关解决方案