MyEclipse(Java)连接SQLServer 2008 R2 失败n次的经验
历时不下于十二个小时的探索检查,终于连接成功了,又想哭,又想笑。没办法,老师让自己搞;师兄又不给力;网上百度知道N万条,好多朋友的答案都没有营养,纯粹为了积分。呜呼哀哉!鄙人特将经验分享于此处,望后来之人少走弯路。
1.先登录SQL 2008,选择Windows身份验证,点击连接。
连接成功就会在对象资源管理器出现如下画面。
2.打开安全性——登录名。右击登录名,选择新建登录名。会出现登录名——新建对话框。
3.在选择页一栏,常规一项,填写登录名、选择SQL Serve身份验证、填写密码、去除强制密码过期。
4.权限设置:在服务器角色一项,默认的是选择public,相当于游客,只有登录数据库权限。选择sysadmin,给角色管理员权限。点击确定。
5.试连接:在菜单栏里选择文件——连接对象资源管理器,然后在身份验证一栏选择身份验证方式。填写登录名、密码,点击连接。
在对象资源管理器一栏又多出一堆东西,表示连接成功。
一 eclipse要 引入的包
大家要注意了,不同的数据库要引不同的包,而且sqlserver2000和sqlserver2008要引的包是不一样的,这点要特别注意啊!!
一开始我只引了jdbc的包,这是2000版本的,2008版本要引的是sqljdbc2.0驱动——Microsoft SQL Server JDBC Driver 2.0.exe,大家去网上搜就会有的,解压后运行里面的程序就可以得到sqljdbc4.jar和sqljdbc.jar,64位只要导入sqljdbc4.,否则报错。
二 eclipse引包方法
找到要引的包了,要怎么把它引进去呢?
右击你创建的工程,找到Build path ,选择 AddExternal Archives,找到你要导入的包,点击打开就可以引入了,引入后在工程下面的ReferencedeLibraries下便能显示这2个包了
三 创建数据库
既然是要用java连接数据库,当然你自己就要在sqlServer2008下创建一个你自己的数据库啦,现在我假设创建的数据库名为pro
四 创建数据源
在网上搜的很多java连接数据库的资料中都没用这一步,其实这一步是很重要的,也是你在编写程序时要用上的
在控制面板---管理工具中选择数据源,选择系统DNS选项卡,点击添加,选择SQLServer,点击完成,填入你自己取的数据源的名称,描述可以不用写,在服务器的选择中大家要注意了,一定要是你的sqlserver服务器的名称,并不一定就是下拉框中有选择的名称,我就是在这里纠结了好久久%>_<%,出现了如下图看上去不知道怎么解决的问题
找名称的方法是在你开启sqlserver2008时在连接的界面上会有服务器的名称,把它填入服务器名称框就可以了
点击下一步,选择你自己的数据库,一直下一步,到最后的时候可以测试哦~~~一般都会成功的
五 端口设置
这是一个很重要的问题,sqlserver2008的端口是动态的,会比较麻烦,在windows---所有程序----microsoft sqlserver的程序文件夹下会有个配置管理器,打开它,设为如下状态
点击TCP/IP打开,选择IP地址,因为我在后面的程序中用的IP地址是127.0.0.1,所以我设置了IP6和IPALL,IPALL TCP动态端口号一般为1433,这在程序里 是要用到的,所以要记着哦
设置完后,需要重启服务器,打开控制面板----管理工具-----服务,选择SQL Server(SQL....),右击,选择停止,停止后再点击启动,便是重启了
六 java代码
把上面的这些都做好了,接下来就是写代码咯~~以下是我的代码
package com.sql;
import java.sql.*;
public class Test2
{
public static void main(String[] args)
{
String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎
StringconnectDB="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=pro";//数据源注意IP地址和端口号,数据库名字!!!
try
{
Class.forName(JDriver);//加载数据库引擎,返回给定字符串名的类
}catch(ClassNotFoundException e)
{
//e.printStackTrace();
System.out.println("加载数据库引擎失败");
System.exit(0);
}
System.out.println("数据库驱动成功");
try
{
String user="abc";//你自己创建的用户名字和密码!!!!!!!!!!!!
String password="000000";
Connection con=DriverManager.getConnection(connectDB,user,password);//连接数据库对象
System.out.println("连接数据库成功");
Statement stmt=con.createStatement();//创建SQL命令对象
//创建表
System.out.println("查询");
System.out.println("开始读取数据");
ResultSet rs=stmt.executeQuery("SELECT * FROM 学生信息where age=19");//返回SQL语句查询结果集(集合)
//循环输出每一条记录
while(rs.next())
{
//输出每个字段
System.out.println(rs.getString("stuId")+"\t"+rs.getString("NAME"));
}
System.out.println("读取完毕");
//关闭连接
stmt.close();//关闭命令对象连接
con.close();//关闭数据库连接
}
catch(SQLException e)
{
e.printStackTrace();
//System.out.println("数据库连接错误");
System.exit(0);
}
}
}
运行结果:
数据库驱动成功
连接数据库成功
查询
开始读取数据
200901 王军
读取完毕