Java JDBC MSSQL数据库连不上

Java JDBC MSSQL数据库连不上,第1张

java中使用jdbc连接sql server数据库步骤:

1.JDBC连接SQL Server的驱动安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证)

<1>将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量

在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar

<2>设置SQLEXPRESS服务器:

a.打开SQL Server Configuration Manager ->SQLEXPRESS的协议 ->TCP/IP

b.右键单击启动TCP/IP

c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433

d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器

e.关闭SQL Server Configuration Manager

<3>打开 SQL Server Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample

<4>打开Eclipse

a.新建工程->Java ->Java project,起名为Test

b.选择eclipse->窗口->首选项->Java->installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar

c.右键单击目录窗口中的Test, 选择Build Path ->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中

<5>编写Java代码来测试JDBC连接SQL Server数据库

import java.sql.*

public class Test {

public static void main(String[] srg) {

//加载JDBC驱动

String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"

//连接服务器和数据库sample

String dbURL = "jdbc:sqlserver://localhost:1433DatabaseName=sample"

String userName = "sa"//默认用户名

String userPwd = "123456"//密码

Connection dbConn

try {

Class.forName(driverName)

dbConn = DriverManager.getConnection(dbURL, userName, userPwd)

System.out.println("Connection Successful!")//如果连接成功 控制台输出

} catch (Exception e) {

e.printStackTrace()

}

}

}

执行以后就可以连接到sample数据库了。

在这里要插入一个问题,就是数据库占用的端口问题。

百度了一下有两种方法。

方法一:

打开数据库,新建查询,输入code,

可以看到端口号为11588

方法二:

在这里我还要插入一个我遇到的问题,就是IPALL的TCP动态端口是0,,,我的是0,,,

问题是SQLNAME的TCP/IP协议未开启

解决办法就是把它开启,然后再把SQLNAME的服务重新启动,这是必须的,否则更改无效。

还可以用cmd的netstat -an命令查看端口是否在使用

可以看到正常使用

把url写好之后try  catch还是报错了,各种百度之后才发现问题,,,原来我下载的是SQL server 2008  然而url写的是 mysql  这两个数据库不是一家人。。。

于是乎,我又重新下载SQL的jar,重新加入项目,重新写代码

[java] view plain copy

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")  

            String url = "jdbc:sqlserver://127.0.0.1:11588DatabaseName=test728"  

            String user = "sa"  

            String password = "123456"  

            Connection con =  DriverManager.getConnection(url,user,password)  

到这里try  catch一下没有任何异常,,

下面就连接数据库插入一个表试试吧

[java] view plain copy

try {  

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")  

    String url = "jdbc:sqlserver://127.0.0.1:11588DatabaseName=test728"  

    String user = "sa"  

    String password = "123456"  

    Connection con =  DriverManager.getConnection(url,user,password)  

    String sql = "insert into dbo.StuInfo (username,password,sex,age) values('张三','123','男',22)"  

    Statement sta = con.createStatement()  

    sta.executeUpdate(sql)  

    con.close()  

} catch (SQLException e) {  

    // TODO: handle exception  

    System.out.println("error")  

} catch (ClassNotFoundException e) {  

    // TODO Auto-generated catch block  

    e.printStackTrace()  

    System.out.println("class error")  

}  

编译运行无异常

以上是我本人遇到的问题,算挺多的

欢迎指正。

这个问题,我有经验。程序没有错的情况下。

先停止mysql服务,然后打开命令行。输入mysqld_safe --skip-grant-tables

然后输入 mysql -u root

然后修改密码update user set Password = PASSWORD('新密码') where User ='root'

当然,密码也可以不改

然后flus privileges接着quit退出

然后重启mysql。

搞定


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10713515.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存