java通过adbc连接SQL server

上周,祝老师布置了一份作业。目的是通过java程序将对象存入到数据库中,然后再将它取出来。

这可真的有点难倒我了,我从来也没有这么做过呀。但是为了完成任务,我做了很多的前期工作。
首先,我打开我的SqlServer,却发现**‘评估期已过**’,真讨厌,要完成任务困难重重呀。
我根据“http://www.xitongcheng.com/jiaocheng/dnrj_article_30873.html
https://www.cnblogs.com/luckyboy/p/5600372.html”
这两个网址对数据库进行升级在这里插入图片描述
20分钟后还是这个界面,我快崩溃了,我依然等了下去。先不管了,去研究研究java程序去了。
又过了10分钟后我回来了,果然我的SqlServer又充满了力量连上了。现在我也将连接jdbc的程序我研究透彻了,现在就写在这里,目的就是为了看看数据库能不能被连接上:
package com.sqlconnect;
import java.sql.*;

public class MyObject {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	PreparedStatement ps = null;
	Connection ct = null;
	ResultSet rs = null;
	try {
		Class.forName("com.microsoft.jdbc.SQLServerDriver");
		System.out.println("已连接");
		ct = DriverManager.getConnection("jdbc:sqlserver://1433;databaseName=aaa","sa","sa");			
	} catch (Exception e) {
		e.printStackTrace();
	}finally
	{
		try {
			ct.close();
		} catch (SQLException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
}

}

好吧,我已经配置数据库两个小时了,按照https://blog.csdn.net/rebekahq/article/details/78691343网址上配置的,但是telnet 127.0.0.1 1433还是显示连接失败!!!我再重启一遍
哈哈哈哈,功夫不负有心人,这一次我连上了。

接下来我来运行一下我的java程序 看看是否能够连上数据库。结果出现了这个错误:
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.sqlconnect.MyObject.main(MyObject.java:14)
Exception in thread “main” java.lang.NullPointerException
at com.sqlconnect.MyObject.main(MyObject.java:20)

解决方法很简单:			

Class.forName(“com.microsoft.jdbc.SQLServerDriver”);
改成:
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);

九牛二虎之力,终于连上了!在这里插入图片描述
一转眼三个小时过去了,进度慢的一批呀。

后面才是真正的正题:开始将对象存入数据库。参考一下老哥的,应该不会介意https://blog.csdn.net/MadCode2222222222222/article/details/78523650
希望可以完成任务哦。

试了这个代码,但是编写到Connection conn = DBConnection.getConnection();就失败了,没有对应的包,后来才看到,我自己建的包名叫JDBConnect 尴尬的一批改为:JDBConnection.getConnection()

程序编写完,运行后又是各种问题。

首先:请验证连接属性,并检查SQL Server的实例正在主机上运行,​​且在此端口接受TCP / IP连接,还要确保防火墙没有阻止到此端口的TCP连接”

解决方法:
这一句改为:DriverManager.getConnection(“jdbc:sqlserver://localhost: 1433;databaseName=aaa”,“sa”,“sa”);

再运行又遇到: 用户 ‘sa’ 登录失败。 ClientConnectionId:460956e6-2c47-4823-9133-791c058aff44 是我记错密码了,我的密码是我的名字

在运行又遇到:com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。

我将Connection改为一般私有变量,解决了问题。

我再次遇到了问题!!!!!!!!!!!!

			ps.setString(1, number);
//			ps.setString(2, name);
			//添加对象
			ps.setObject(2, users);

只要加上setObject()立马会报错:com.microsoft.sqlserver.jdbc.SQLServerException: 不支持从 UNKNOWN 到 UNKNOWN 的转换。
此时,我离崩溃只差一点理智。

ps.setObject(2, users);这里面只能传入String 而不是 对象 这。。。。。。让我有点失去理智。
经过反复尝试还是将数据存进数据库中,算是完成任务了。
在这里插入图片描述
作为小白编程,还是要多加练习呀!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值