跟着老师简单学习了jdbc链接数据库,主要步骤如下
1.创建一个项目-包-类(QueryMySQL)
2.在public static void main下使用jdbc(com.mysql.jdbc)链接数据库
(1)定义数据库连接Connection connection=null;
(2)初始化驱动String driver=“com.mysql.jdbc.Driver”;//com.mysql.jdbc.Driver是驱动库文件所在位置
(3)数据库连接url String url=“jdbc:mysql://127.0.0.1:3306/login_register?”;//127.0.0.1服务器的ip地址,3306数据库的端口名,login_register是我的数据库名
(4)加载驱动Class.forName(driver); 发生报错,异常 受查异常必须处理,用try catch
try {
} catch (Exception e) {
// TODO: handle exception
}
在try里面进行驱动加载Class.forNAme(driver)
(5)链接数据库
connection =DriverManager.getConnection(url,“root”,“root”);//root1数据库服务器用户名root2数据库服务器密码。前面connection是mysql包里面的,DriverManager是系统自带的会报错,应强转为connection = (Connection) DriverManager.getConnection(url,“root”,“root”);
(6)打印异常 在catch中打印异常e.printStackTrace();//从堆栈从最底层打印异常,信息较多
System.out.println(e.getMessage());//打印异常信息本身
在这里我是MySQL5.7数据库,能够正常启动,并且在login_register数据库中创建了表user
在webContent-WEB INF-lib下导入库文件
mysql-connector-java-5.1.16-bin.jar
下面是全部代码
package com.zhihu.queryMysql;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import com.sun.corba.se.spi.orbutil.fsm.State;
public class QueryMySQL {
public static void main(String[] args) {
//shiyongjdbc链接数据 com.mysql.jdbc
//定义数据库连接
Connection connection = null;
//初始化驱动
String driver = "com.mysql.jdbc.Driver";//驱动库文件所在位置
//数据库链接url 请求网络时的http,https连接数据库的协议后面是数据库所在的位置,服务器的ip地址3306数据库的端口名斜线是
String url ="jdbc:mysql://127.0.0.1:3306/login_register?";
//try catch异常 受查异常必须处理
try {
//加载驱动
Class.forName(driver);// 异常 受查异常必须处理
//链接数据库 返回连接信息 connection是mysql包里,后面是系统自带包,要强转
connection = (Connection) DriverManager.getConnection(url,"root","r");//root1数据库服务器用户名root2数据库服务器密码
System.out.printoot("数据库连接成功");
//操作,查询
String sql = "select*from user";
//预编译
Statement statement = (Statement) connection.createStatement();
//发送sql语句并返回结果 返回结果集
ResultSet result = statement.executeQuery(sql);
while(result.next()) {
System.out.println("username="+result.getString("username"));
}
} catch (Exception e) {
//打印异常出现后的异常信息,一般不用
e.printStackTrace();//打印异常,从堆栈从最底层打印异常
System.out.println(e.getMessage());//打印异常信息本身
}
}
}
运行了下
报错:Sun Sep 06 18:44:12 CST 2020 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
在网上查了下在url后面加上useSSL=false
String url =“jdbc:mysql://127.0.0.1:3306/login_register?useSSL=false”;可以。
再次运行发生报错Access denied for user ‘root’@‘localhost’ (using password: YES)
在网上找了很多方法都没用,我的数据库是可以正常登录的,改密码什么的觉得没什么用
connection = (Connection) DriverManager.getConnection(url,“root”,“root”);//root1数据库服务器用户名root2数据库服务器密码
然后看到这第二个root应该是密码,改了过来
运行成功
完整代码
package com.zhihu.queryMysql;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import com.sun.corba.se.spi.orbutil.fsm.State;
public class QueryMySQL {
public static void main(String[] args) {
//shiyongjdbc链接数据 com.mysql.jdbc
//定义数据库连接
Connection connection = null;
//初始化驱动
String driver = "com.mysql.jdbc.Driver";//驱动库文件所在位置
//数据库链接url 请求网络时的http,https连接数据库的协议后面是数据库所在的位置,服务器的ip地址3306数据库的端口名斜线是
String url ="jdbc:mysql://127.0.0.1:3306/login_register?useSSL=false";
//try catch异常 受查异常必须处理
try {
//加载驱动
Class.forName(driver);// 异常 受查异常必须处理
//链接数据库 返回连接信息 connection是mysql包里,后面是系统自带包,要强转
connection = (Connection) DriverManager.getConnection(url,"root","123456");//root1数据库服务器用户名root2数据库服务器密码
System.out.println("数据库连接成功");
//操作,查询
String sql = "select*from user";
//预编译
Statement statement = (Statement) connection.createStatement();
//发送sql语句并返回结果 返回结果集
ResultSet result = statement.executeQuery(sql);
while(result.next()) {
System.out.println("username="+result.getString("username"));
}
} catch (Exception e) {
//打印异常出现后的异常信息,一般不用
e.printStackTrace();//打印异常,从堆栈从最底层打印异常
System.out.println(e.getMessage());//打印异常信息本身
}
}
}
基本从零开始学习java了,能够成功连接数据库觉得对之后的学习也有了信心