主要摘自

https://www.cnblogs.com/town123/p/8336244.html

https://www.runoob.com/java/java-mysql-connect.html

工具:eclipse、MySQL、MySQL连接驱动:mysql-connector-java-5.1.45.jar

首先要下载Connector/J地址:http://www.mysql.com/downloads/connector/j/

这是MySQL官方提供的连接方式(即MySQL连接驱动),解压后得到jar库文件,需要在工程中导入该库文件。

这是解压后的文件:

一、新建java项目 然后新建一个文件夹——libs(用来放各种外部包)

右键工程名(我的是sqldemo1)—新建New—文件夹Folder—Folder name为libs—Finish。

二、在包里面加入连接mysql数据库的包

即刚才解压后得到的 mysql-connector-java-5.1.45-bin.jar

然后复制粘贴到我们java项目的libs文件夹下面(注意是物理地址里);

此时,在eclipse中—右击libs文件夹—刷新Refresh,就将下载好的JDBC放到该文件夹下,如下图所示:

三、构建路径上的jar包

在eclipse中

a:点击项目Project——选择属性Propeties

b:进行添加

打开属性Propeties后,点击java构建路径(Java Build Path)
点击添加jar(Add JARs...),选择你的项目下的jar包,然后确定,最后添加完成

四、在java项目中进行mysql数据库的连接

创建测试数据

接下来我们在 MySQL 中创建 test 数据库,并创建 websites 数据表,表结构如下:

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 '' COMMENT 'Alexa 排名',
`country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

插入一些数据:

INSERT INTO `websites` VALUES ('', 'Google', 'https://www.google.cm/', '', 'USA'), ('', '淘宝', 'https://www.taobao.com/', '', 'CN'), ('', '菜鸟教程', 'http://www.runoob.com', '', ''), ('', '微博', 'http://weibo.com/', '', 'CN'), ('', 'Facebook', 'https://www.facebook.com/', '', 'USA');

数据表显示如下:

连接数据库

以下实例使用了 JDBC 连接 MySQL 数据库,注意一些数据如用户名,密码需要根据你的开发环境来配置

MySQL 8.0 以上版本的数据库连接有所不同:

  • 1、MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar

  • 2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。

  • MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。

  • 最后还需要设置 CST。

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

//MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/<数据库名>"; // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/<数据库名>?useSSL=false&serverTimezone=UTC";

这里还要再说明一下:

com.mysql.jdbc.Driver 是 mysql-connector-java 5中的驱动名,
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的驱动名

我这里使用的是5版。

import java.sql.*;

public class test {

    //MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&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";
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!");
}
}

以上实例执行输出结果如下:

五、一个实例增删查该的实例

这部分内容是我后补的,主要针对一些常用的增删查改操作给出一个样本吧。注意,这里用的工具是idea而不是之前的eclipse了。

添加JDBC依赖

<!-- JDBC -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>

1、创建数据库

这里简单地创建一个表,插入三条记录。

DROP TABLE IF EXISTS `stu`;
CREATE TABLE `stu` (
`id` INT NOT NULL COMMENT '编号',
`name` varchar(100) DEFAULT NULL COMMENT '姓名',
`age` INT NOT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) COMMENT='学生表';
INSERT INTO stu VALUES(1,'张三',20);
INSERT INTO stu VALUES(2,'李四',21);
INSERT INTO stu VALUES(3,'王五',19);

2、连接测试

 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement; public class GetConnection { public static void main(String[] args){
try{
//调用Class.forName()方法加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("成功加载MySQL驱动!");
}catch(ClassNotFoundException e1){
System.out.println("找不到MySQL驱动!");
e1.printStackTrace();
} String url="jdbc:mysql://localhost/test?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"; //JDBC的URL
//调用DriverManager对象的getConnection()方法,获得一个Connection对象
Connection conn;
try {
conn = DriverManager.getConnection(url, "root","******");//url 账号 密码
//创建一个Statement对象
Statement stmt = conn.createStatement(); //创建Statement对象
System.out.print("成功连接到数据库!");
stmt.close();
conn.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}

3、查找记录

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; public class SelectTable { public static void main(String[] args){
try{
//调用Class.forName()方法加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("成功加载MySQL驱动!"); String url="jdbc:mysql://localhost/test?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"; //JDBC的URL
Connection conn; conn = DriverManager.getConnection(url, "root","*****");//url 账号 密码
Statement stmt = conn.createStatement(); //创建Statement对象
System.out.println("成功连接到数据库!"); String sql = "select * from stu"; //要执行的SQL
ResultSet rs = stmt.executeQuery(sql);//创建数据对象
System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄");
while (rs.next()){
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getInt(3) + "\t");
System.out.println();
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}

4、增删查改记录

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement; public class UpdateDeleteDemo { public static void main(String[] args)throws Exception{
try{
//调用Class.forName()方法加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("成功加载MySQL驱动!"); String url="jdbc:mysql://localhost/test?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"; //JDBC的URL
Connection conn; conn = DriverManager.getConnection(url, "root","******");//url 账号 密码
Statement stmt = conn.createStatement(); //创建Statement对象
System.out.println("成功连接到数据库!"); //查询数据的代码
String sql = "select * from stu"; //要执行的SQL
ResultSet rs = stmt.executeQuery(sql);//创建数据对象
System.out.println("原始数据: \n " + "编号"+"\t"+"姓名"+"\t"+"年龄");
while (rs.next()){
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getInt(3) + "\t");
System.out.println();
} //增加数据
String sql1 = "insert into stu (id,name,age) values(?,?,?)";
PreparedStatement pst = conn.prepareStatement(sql1);
pst.setInt(1,4);
pst.setString(2,"sunlu");
pst.setInt(3, 25);
pst.executeUpdate();
ResultSet rs1 = stmt.executeQuery(sql);//创建数据对象
System.out.println("插入后数据: \n" + "编号"+"\t"+"姓名"+"\t"+"年龄");
while (rs1.next()){
System.out.print(rs1.getInt(1) + "\t");
System.out.print(rs1.getString(2) + "\t");
System.out.print(rs1.getInt(3) + "\t");
System.out.println();
} //修改数据的代码
String sql2 = "update stu set name=? where id=?";
pst = conn.prepareStatement(sql2);
pst.setString(1,"nick");
pst.setInt(2,1);
pst.executeUpdate(); ResultSet rs3 = stmt.executeQuery(sql);//创建数据对象
System.out.println("修改后数据: \n" + "编号"+"\t"+"姓名"+"\t"+"年龄");
while (rs3.next()){
System.out.print(rs3.getInt(1) + "\t");
System.out.print(rs3.getString(2) + "\t");
System.out.print(rs3.getInt(3) + "\t");
System.out.println();
}
//删除数据的代码
String sql3 = "delete from stu where id=?";
pst = conn.prepareStatement(sql3);
pst.setInt(1,1);
pst.executeUpdate(); ResultSet rs2 = stmt.executeQuery(sql);//创建数据对象
System.out.println("删除后数据: \n" + "编号"+"\t"+"姓名"+"\t"+"年龄");
while (rs2.next()){
System.out.print(rs2.getInt(1) + "\t");
System.out.print(rs2.getString(2) + "\t");
System.out.print(rs2.getInt(3) + "\t");
System.out.println();
} rs.close();
stmt.close();
conn.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}

Java连接MySQL数据库及简单的增删查改操作的更多相关文章

  1. nodejs连接mysql并进行简单的增删查改

    最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...

  2. Java连接MySQL数据库及简单操作代码

    1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...

  3. java连接mysql数据库 三 实现增删改查操作

    同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...

  4. 在Eclipse上实现简单的JDBC增删查改操作

    在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图  编写Product类 public clas ...

  5. PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)

    php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...

  6. 转载:Java连接MySQL 数据库的正确操作流程

    转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html       以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...

  7. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  8. java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析      第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar      第二步:导入下载的J ...

  9. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

随机推荐

  1. 社交媒体登录Spring Social的源码解析

    在上一篇文章中我们给大家介绍了OAuth2授权标准,并且着重介绍了OAuth2的授权码认证模式.目前绝大多数的社交媒体平台,都是通过OAuth2授权码认证模式对外开放接口(登录认证及用户信息接口等). ...

  2. JavaScript的内存模型

    引言 在我们的前端日常工作中,无时无刻不在进行着变量的声明和赋值,你是否也曾碰到过变量声明报错或变量被污染的问题,如果你跟笔者一样碰到过,那么我们应该暂时停下来好好思考问题发生的原因以及如何采取相应的 ...

  3. 前后台分离的 NET Core 通用权限管理系统

    前言 从事软件开发这个行业现在已经有十几年了,项目无论大小权限认证.授权模块总是或多或少有功能需求的,这一块费时费力但是又存在于后台,使用最多的可能是运维人员所以处于出力不讨好的尴尬地位,每次有新的项 ...

  4. Android多图选择

    多图选择是Android中一个常用的功能,用户可以拍照或者批量选择图片上传,还是国际惯例,先看下效果图,demo地址我会放到文章末尾. 经过对比,这里我选择了一个第三方开源库PictureSelect ...

  5. react-native修改xcode项目名

    目录 1. 选中旧工程名,改为新的工程名 2. 依次选择黄色文件夹,修改名字,千万不要在Xcode外修改!!! 3. 点击Find,点击Find and Replace in Project... 4 ...

  6. multipart/form-data 文件上传表单中 传递参数无法获取的原因!

    1.什么是multipart/form-data 首先我们需要明白在html中的enctype属性, enctype:规定了form表单在发送到服务器时候编码方式.他有如下的三个值. ①applica ...

  7. 移动前端不得不了解的HTML5 head 头标签 —— HTML基本的头部标签

    HTML的头部内容特别多,有针对SEO的头部信息,也有针对移动设备的头部信息.而且各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,有很多差异性.移动端的工作已经越来越成为前端工作的重要内容, ...

  8. idea结合maven小项目

    整体构造 (修改 POM 文件 )parent <?xml version="1.0" encoding="UTF-8"?> <project ...

  9. mac版 sublime快捷键大全

    按这几大类分类:文件 编辑 选择 查找 视图 去往 工具 项目 窗口 帮组一.文件cmd + N 新建文件cmd + S 保存文件cmd + shift + S 文件另存为cmd + alt + S ...

  10. HDU-1595Find the longest of shortest(最短路径的最长路Dijkstra+记录路径)

    Marica is very angry with Mirko because he found a new girlfriend and she seeks revenge.Since she do ...