java连接mysql和sqlserver数据库

WEB 专栏收录该内容
19 篇文章 0 订阅

java连接mysql和sqlserver数据库

java连接mysql
java连接sql server 跳转

一、连接mysql

1、环境准备:

win7、myeclipse10、mysql 8.0.22 、驱动包mysql-connector-java-8.0.16.jar、jdk1.8
默认myeclipse和jdk8已经搭建好,其它版本需自测

Mysql的安装可以参考这篇:Windows下Mysql 8免安装解压版错误解决汇总
安装的默认密码为空,可能需要修改密码才能用java才能连接

最新版JDBC下载:https://dev.mysql.com/downloads/connector/j/
其它各种版本

2、创建java项目导包

(1)、导入jar包

*在工程下建立libs文件夹

**把下载好的jar包 mysql-connector-java-8.0.16.jar 复制粘贴到libs下

***右键点击jar包,添加到库中
在这里插入图片描述

(2)、代码
运行之前先看下面的注意事项

public class MysqlTest {

	public static void main(String[] args) {
		Dbutil dbutil = new Dbutil(); 
		Connection con = dbutil.getConnection();
		System.out.println("mysql连接成功!");
		try {
			dbutil.close(con);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

class Dbutil {
	private static String dbURL = "jdbc:mysql://localhost:3306/databaseName?serverTimezone=UTC";
	//databaseName 数据库名自己修改一下
	private static String dbUser = "root";//用户名
	private static String dbPasswd = "123";//需要改为自己的密码

	public Connection getConnection() {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("驱动加载成功!");
			return DriverManager.getConnection(dbURL, dbUser, dbPasswd);
		} catch (Exception e) {
			System.out.println("登录失败,,, 检查用户名、密码、端口号等设置");
			e.printStackTrace();
		}

		return null;
	}

	public void close(Connection con) throws Exception {
		if (con != null)
			con.close();
	}
}

3、注意事项及出错总结

1、保证在cmd中或者navicat中可以登录mysql
2、保证代码中的数据库名、密码已修改
3、myeclipse10 默认的jdk好像是1.6的,需要保证工程的jdk版本是1.8
4、需要保证mysql版本和JDBC驱动版本对应
5、出错记录及总结

Client does not support authentication protocol requested by server; consider upgrading MySQL client

原因:我之前用的是mysql-connector-java-5.1.6-bin
解决:换mysql-connector-java-8.0.16.jar
新错误:

Exception in thread “main” java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0

原因:jdk与驱动版本“不兼容”
解决:修改工程jre环境,右键点击工程打开如下图

在这里插入图片描述

找到自己jdk中的jre文件夹,选中确定就OK

在这里插入图片描述

结果:成功解决!!!

另一个错误
You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

原因:数据库连接使用过的参数是 "jdbc:mysql://localhost:3306/databaseName"
解决:改成这样 “jdbc:mysql://localhost:3306/databaseName?serverTimezone=UTC”  就可以了
拓展:加上useUnicode=true&characterEncoding=UTF-8可以解决乱码问题

二、sql server

1、环境
数据库:我用的是SQL SERVER 2008 精简版的,可能现在基本不用这个了,其它版本需要自测
下载地址及安装教程 http://www.uzzf.com/soft/191317.html

jar包 sqljdbc4-2.0.jar
链接找不到了,推荐渠道QQ群,添加群 搜索CSND资源下载 加群求助即可

2、代码

public class SQLTest {

	public static void main(String[] args) {
		Conns conns = new Conns(); 
		Connection con = conns.getConnection();
		System.out.println("sqlserver连接成功!");
		try {
			Conns.close(con);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
class Conns {
	public Connection connection = null;
	public static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	public static final String DBURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=room";
	//room改成你数据库里面创建的库的名字
	public static final String DBUSER = "sa";
	public static final String DBPASS = "123";//密码改成你安装时设的密码

	public Connection getConnection() {
		try {
			Class.forName(Conns.DBDRIVER);
			System.out.println("驱动加载成功。");
		} catch (ClassNotFoundException e) {
			System.out.println("error connects sql.");
			e.printStackTrace();
		}
		try {
			connection = DriverManager.getConnection(Conns.DBURL, Conns.DBUSER, Conns.DBPASS);
		} catch (SQLException e) {
			System.out.println("检查用户名、密码、端口号、数据库名是否有错...");
			e.printStackTrace();
		}
		return connection;
	}

	public static void close(Connection con) {
		if (con != null)
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
	}
}

3、导包
导包可以参照上面的导入jar包 跳转

这里有前后端交互实现的详细博客网页注册登录功能实现

  • 1
    点赞
  • 0
    评论
  • 12
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值