Eclipse/IDEA(Java)连接Navicat(MySQL数据库)--小白易错

前提工具:

1,eclipse
2,MySQL5.6/Navicat
3,MySQL连接驱动JDBC:mysql-connector-java-5.1.27.jar

官网:https://dev.mysql.com/downloads/connector/j/5.1.html
unoob.com.
链接:https://pan.baidu.com/s/1Q8N5GZZavqYzv2OWXMMoEQ 提取码:egwp

连接步骤

1,加载驱动(关键)

Java 连接 MySQL 需要 驱动包解压后得到 jar 库文件(mysql-connector-java-5.1.27.jar),然后在对应的项目中导入该库文件。如图:

引入如图jar

mysql-jdbc添加方法:
a,右键工程名,在java build path中的Libraries分页中选择Add JARs…,选择刚才添加的JDBC
b,选中java项目右键 ⟶ 点击“构建路径” ⟶ 点击“配置构建路径” ⟶ 点击“添加外部JAR”,找到sqlite-jdbc.jar后,打开并应用 ⟶ 点击“Apply and Close”。

总之就是找到jar库导入文件,a,b两个摘抄描述均可用

2,创建测试数据

接下来我们在 MySQL 中创建 RUNOOB 数据库,并创建 websites 数据表(可用已有表,但注意修改第3步相应代码),表结构如下:

CREATE TABLE websites ( id int(11) NOT NULL AUTO_INCREMENT,
name char(20) NOT NULL DEFAULT ‘’ COMMENT ‘站点名称’, url
varchar(255) NOT NULL DEFAULT ‘’, alexa int(11) NOT NULL DEFAULT
‘0’ COMMENT ‘Alexa 排名’, country char(10) NOT NULL DEFAULT ‘’
COMMENT ‘国家’, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=10
DEFAULT CHARSET=utf8;

插入一些数据:

INSERT INTO websites VALUES (‘1’, ‘Google’,
‘https://www.google.cm/’, ‘1’, ‘USA’), (‘2’, ‘淘宝’,
‘https://www.taobao.com/’, ‘13’, ‘CN’), (‘3’, ‘菜鸟教程’,
‘http://www.runoob.com’, ‘5892’, ‘’), (‘4’, ‘微博’, ‘http://weibo.com/’,
‘20’, ‘CN’), (‘5’, ‘Facebook’, ‘https://www.facebook.com/’, ‘3’,
‘USA’);

3,连接数据库(易错)

加载驱动与连接数据库方式如下:

Class.forName(“com.mysql.cj.jdbc.Driver”);


conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/test_demouseSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC”,“root”,“password”);

连接数据库并读取数据:
  数据库名称:test
  数据表名称:websites
  端口号:3306
  用户名:root
  密码:password

以下实例使用了 JDBC 连接 MySQL 数据库
package com.runoob.test;
 
import java.sql.*;
 
public class MySQLDemo {
 
    // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
 //注意如RUNOOB为库名
 
    // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
    //static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
    //static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
 
 
    // 数据库的用户名与密码,需要根据自己的设置
    static final String USER = "root";
    static final String PASS = "123456";
 
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try{
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);
        
            // 打开链接
            System.out.println("连接数据库...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
        
            // 执行查询
            System.out.println(" 实例化Statement对象...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name, url FROM websites";
            //websites是数据表名,按自己的改
            ResultSet rs = stmt.executeQuery(sql);
        
            // 展开结果集数据库
            while(rs.next()){
                // 通过字段检索
                int id  = rs.getInt("id");
                String name = rs.getString("name");
                String url = rs.getString("url");
    
                // 输出数据
                System.out.print("ID: " + id);
                System.out.print(", 站点名称: " + name);
                System.out.print(", 站点 URL: " + url);
                System.out.print("\n");
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

以上实例执行输出结果如下:
在这里插入图片描述
以上为个人归纳,具体还可参考: Java MySQL 连接.

易错点

1,注意一些数据如用户名,密码需要根据你的开发环境来配置
2,如果连接其他表,注意如RUNOOB为库名,websites是数据表名,按自己的改
3,MySQL 8.0 以上版本的数据库连接有所不同
(可在上方链接中解决)
若依然没有解决可参考本人代码再测试

//JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = “com.mysql.jdbc.Driver”;
static final String DB_URL = “jdbc:mysql://localhost:3306/abc?&useSSL=false&serverTimezone=UTC”;

//可以分开判断JDBC 驱动名及数据库 URL是否正确
import java.sql.*;       //导入java.sql包

public class Text{
	static Connection con;     //声明Connection对象
	static Statement sql;      //声明Statement对象
	static ResultSet res;      //声明ResultSet对象
	public Connection getConnection(){    //建立返回值为Connection的方法
		try {                             //加载数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("数据库驱动加载成功");
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}
		try {                 //通过访问数据库的URL获取数据库连接对象
			con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql");
			System.out.println("数据库连接成功");
			System.out.print('\n');
		}catch(SQLException e) {
			e.printStackTrace();
		}
		return con;           //按方法要求放回一个Connection对象
	}	

扩展(增加、删除,修改和查询数据)

备注:偷懒直接用了网上的。。
使用例表:
在这里插入图片描述

CREATE TABLE emp(
empno INT(4) PRIMARY KEY,
ename VARCHAR(10),
job VARCHAR(9),
hiredate DATE,
sal FLOAT(7,2)
) ;

增加

String name;
String id;

PreparedStatement psql;
ResultSet res;

//预处理添加数据,其中有两个参数--“?”

psql = con.prepareStatement("insert into emp (empno,ename,job,hiredate,sal) "

        + "values(?,?,?,?,?)");

psql.setInt(1, 3212);              //设置参数1,创建id为3212的数据

psql.setString(2, "王刚");      //设置参数2,name 为王刚

psql.setString(3, "总裁");

 

DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");

Date myDate2 = dateFormat2.parse("2010-09-13");

psql.setDate(4,new java.sql.Date(myDate2.getTime()));

psql.setFloat(5, (float) 2000.3);

psql.executeUpdate();           //执行更新

在这里插入图片描述

删除

PreparedStatement psql;

//预处理删除数据

psql = con.prepareStatement("delete from emp where sal > ?");

psql.setFloat(1, 4500);

psql.executeUpdate();

psql.close();

在这里插入图片描述

修改

PreparedStatement psql;

//预处理更新(修改)数据,将王刚的sal改为5000.0

psql = con.prepareStatement("update emp set sal = ? where ename = ?");

psql.setFloat(1,(float) 5000.0);      

psql.setString(2,"王刚");             

psql.executeUpdate();

在这里插入图片描述

查询

package sqldemo;

 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.sql.Statement;

  public class main {
 
     public static void main(String[] args) {
         //声明Connection对象
         Connection con;
        //驱动程序名
         String driver = "com.mysql.jdbc.Driver";
         //URL指向要访问的数据库名mydata
         String url = "jdbc:mysql://localhost:3306/sqltestdb";
         //MySQL配置时的用户名
         String user = "root";
         //MySQL配置时的密码
         String password = "123456";
         //遍历查询结果集
         try {
             //加载驱动程序
             Class.forName(driver);
             //1.getConnection()方法,连接MySQL数据库!!
             con = DriverManager.getConnection(url,user,password);
             if(!con.isClosed())
                 System.out.println("Succeeded connecting to the Database!");
             //2.创建statement类对象,用来执行SQL语句!!
             Statement statement = con.createStatement();
             //要执行的SQL语句
             String sql = "select * from emp";
             //3.ResultSet类,用来存放获取的结果集!!
             ResultSet rs = statement.executeQuery(sql);
             System.out.println("-----------------");
             System.out.println("执行结果如下所示:");  
             System.out.println("-----------------");  
             System.out.println("姓名" + "\t" + "职称");  
             System.out.println("-----------------");  
              
             String job = null;
           String id = null;
            while(rs.next()){
                 //获取stuname这列数据
                 job = rs.getString("job");
                 //获取stuid这列数据
                 id = rs.getString("ename");
 
                 //输出结果
                 System.out.println(id + "\t" + job);
             }
             rs.close();
             con.close();
         } catch(ClassNotFoundException e) {   
             //数据库驱动类异常处理
             System.out.println("Sorry,can`t find the Driver!");   
             e.printStackTrace();   
             } catch(SQLException e) {
             //数据库连接失败异常处理
             e.printStackTrace();  
             }catch (Exception e) {
             // TODO: handle exception
             e.printStackTrace();
         }finally{
             System.out.println("数据库数据成功获取!!");
        }
   }

 }
运行结果:
Succeeded connecting to the Database!

-----------------

执行结果如下所示:

-----------------

姓名  职称

-----------------

李兴华 经理

张三  总监

王五  厂长

齐秦  书记

张刚  组长

曹操  财务

李四  总裁

数据库数据成功获取!!

IDEA使用JDBC连接MySQL数据库详细教程

1、下载MySQL数据库并进行安装和配置

2、下载JDBC

3、创建java项目,导入.jar包

4、测试访问数据库

使用JDBC API 连接和访问数据库,一般分为以下5个步骤

(1)加载驱动程序

(2)建立连接对象

(3)创建语句对象

(4)获得SQL语句的执行结果

(5)关闭建立的对象,释放资源

参考: IDEA使用JDBC连接MySQL数据库详细教程

  • 10
    点赞
  • 191
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想想了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值