eclipse 连接mysql 数据库 实现数据库基本操作_eclipse mysql基础操作-程序员宅基地

技术标签: java  tomcat  大后端开发学习  mysql  jdbc  数据库  

本篇文章所做:在已配置好Tomcat,mysql和eclipse的前提下 通过cmd指令操作搭建数据库并在eclipse中实现数据库操作
本文章最终目的:在eclipse中采用jsp文件或java文件连接mysql数据库并能够实现数据库的基本操作(查询,修改,插入,删除)

问题

在学习web后端开发时遇到的问题:在连接eclipse和mysql时遇到的问题,同学和我用的软件又不一样,在其他文章中找了很多东西来看,但是都很零零散散,所以把我遇到的问题给写出来,希望能给大家提供帮助

前置条件:

这儿只是笔者之前安装好的环境和软件,不一定要与笔者的软件和版本完全相同

Tomcat的安装和配置 可参考这篇文章:
https://blog.csdn.net/qq_39047789/article/details/103883252

MySQL数据库下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html

mysql的安装过程参考文档:https://www.cnblogs.com/winton-nfs/p/11524007.html

jdbc驱动下载地址:https://dev.mysql.com/downloads/connector/j/
jdbc下载版本
jdbc的驱动放置的位置的地方:
方法一:
(1)MyEclipse项目的WEB-INF下新建的lib文件夹;
(2)将下载的JDBC驱动器解压缩至本地硬盘,将其中的“mysql-connector-java-8.0.15.jar”(随着时间变化 版本可能不同,笔者下载的版本也有所不同,但方法没问题)复制到(1)中新建的lib文件夹中,将jar包拷入后,点击鼠标右键–>Build Path–>Add to Build Path,完成导入。如下图所示
jdbc的配置
方法二:
(1)下载的JDBC驱动器解压缩至本地硬盘,将其中“mysql-connector-java-8.0.15.jar”复制到你自己的Tomcat文件夹的lib子文件夹中。
(2)在web项目上(此处例子为“CourseExamples06”)单击右键,选择“Properties”->“java Build Path”->“Libraries”->“Add External JARs…”,将该jar包添加,如下图所示,重启服务器即可。
eclipse配置jdbc的驱动jar

cmd命令行创建含表student的dsschool数据库

这儿只介绍我所使用到的命令行中的语句,其余语句推荐参考下方链接,我认为这篇文章介绍得相对完善,仔细,能够让大家对这些数据库命令更加了解:
https://blog.csdn.net/weixin_43790276/article/details/102655786

那咋们就开始构建数据库了:
命令:mysql -u root -p
启动mysql数据库,password为设定mysql数据库时设定的密码,初始密码为localhost,建议修改,在前面的配置mysql中有提到如何修改
启动数据库
命令: show databases;
查看当前mysql中存在的数据库,一开始有四个初始化的数据库(不要删除它们,如果删除了可能会引发后面的错误(建议重新安装))
查看当前已有数据库
通过命令:create database DSSchool;
创建自己的数据库
新建数据库观察 show databases;命令的变化:
新建数据库
创数据库时未指定编码,可通过命令:show create database dsschool;
查看指定数据库的编码(dsschool为自己创建的数据库的名字)
可通过命令:alter database dsschool character set utf8;
将数据库的编码修改为utf-8 使它能够正确显示中文 避免乱码现象
查看数据库编码并修改编码
命令:use dsschool
进入当前新建的数据库
进入数据库
命令:select database();
可查看当前所在数据库查看当前所在数据库

创建表单:
创建表单
创建表单数据库sql语言:

CREATE TABLE Student(
   stuNo            VARCHAR(4)          PRIMARY KEY,
   stuName          VARCHAR(10),
   stuSex              VARCHAR(9)

) ;

向student表单中插入数据操作:
插入数据操作
数据库sql语言插入数据程序(可直接在cmd中进入对应的数据库后粘贴这段sql指令进行插入数据):

insert into Student(stuNo,stuName,stuSex)
	values("0001","王海","男"),
	("0002","冯山","女"),
	("0003","张平","男"),
	("0004","刘欢","女"),
	("0005","唐为","男"),
	("0006","唐风","女"),
	("0007","刘平","男"),
	("0008","徐少强","男"),
	("0009","陈发","女"),
	("0010","江海","女");

完成上述步骤后,你已经完成了创建一个含有student表单名为dsschool的数据库
可通过sql语言:select * from student;
对student表中的数据进行查看,如下图
数据库student表单内容

java文件实现连接mysql数据库和操作

后缀.java文件实现连接数据库 并通过sql语句对数据库中的内容进行修改,
为增加可读性,我在代码中增加了很多注释方便理解 各部分功能

package ex_3; //package包  自己改
import java.sql.*;
public class test {
	public static void main(String args[]) {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");//加载MYSQL JDBC驱动程序   
			//Class.forName("org.gjt.mm.mysql.Driver");
			System.out.println(" 加载驱动成功 Success loading Mysql Driver!");
		}
		catch (Exception e) {
			System.out.println("mysql驱动加载出错  检查一下mysql的连接");
			e.printStackTrace();
		}
		try {//连接URL为   jdbc:mysql//服务器地址/数据库名  ,后面的2个参数分别是登陆用户名和密码
			Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/dsschool","root","root");
			// 注意:jdbc:mysql://localhost:3306/  后接数据库的名字  所以数据库要事先通过命令行等方式创建好
			Statement stat =connect.createStatement();
			//statement实例用于运行sql语句
			System.out.println("连接mysql数据库成功");
			String sql_1 = "select * from student";   //执行查询语句
			String sql_2 = "insert into student(stuNo,stuName,stuSex) values('0015','张月','女')";
			String sql_3 = "UPDATE Student set stuName ='小月月'  where stuNo = '0015'";
			String sql_4 = "DELETE from student where stuNo = '0015'";
			//table表的名字  我有时候大写了  有时候小写了 没有影响,数据库中表名统一小写(自动转换)
			//提醒:在我之前定义的student表中stuNo在数据库中作为主键(Primary key  不可通过update命令修改)
//			stat.executeUpdate(sql_2); 
//			stat.executeUpdate(sql_3); 
//			stat.executeUpdate(sql_4); 
 //分别执行sql_2,sql_3,和sql_4  插入 、更新 、删除语句
 //更改Update中执行的sql语句   executeUpdate()中可执行比如CREATE,DROP,INSERT,UPDATA,DELETE 数据库操作命令
			
			ResultSet rs = stat.executeQuery(sql_1);  //执行sql_1  查询语句
			//ResultSet对象用于存储sql的查询语句的返回值
			
			System.out.println("sql语句执行完成");
			System.out.println("查询结果:");  
			System.out.println("编号"+"  "+"姓名 "+"  "+"性别");  
            while (rs.next()) {  
            	System.out.println(rs.getString("stuNo")+"  "+rs.getString("stuName")+"  "+rs.getString("stuSex"));
            }
			stat.close();  
			connect.close();
			//使用完后记得关闭  在大型程序中节约内存空间
            }
		catch(SQLException e) {
			System.out.print("jdbc连接mysql数据库出抛出异常  或 sql语句执行异常  详情请debug");
		}
		finally {
		}
		}
	}

代码说明:String 变量中 sql_1、sql_2、sql_3、sql_4分别是对数据库中的内容进行查询,插入,更新和删除操作,现有的内容是将更新等操作给注释掉了,只可进行查询操作,

java程序运行效果(控制台输出):
java控制台输出
执行sql_2后插入“0015 张月 女” 的信息 后数据库的内容:
执行插入命令后
执行修改命令sql_3之后 将学号为0015 的学生姓名修改为"小月月" 数据库内容:
执行修改命令后
执行删除命令sql_4之后删除stuNo为“0015”的学生信息,数据库内容变化为:
删除命令

jsp文件代码实现数据库操作

<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.sql.*" pageEncoding="utf-8"%>
<html>
	<body>
		<%
        //  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		//	Connection conn = DriverManager.getConnection("jdbc:odbc:DSSchool");
			//书本上的连接方式和自己采用的连接方式有出入需要适当更改
			Class.forName("com.mysql.cj.jdbc.Driver");//加载MYSQL JDBC驱动程序   
			System.out.println(" 加载驱动成功 Success loading Mysql Driver!");
			Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/dsschool","root","root");
			System.out.println("连接mysql数据库成功");
			
			//Class.forName("org.gjt.mm.mysql.Driver");
			Statement stat = connect.createStatement();
			String sql = "INSERT INTO student(stuNo,stuName,stuSex) VALUES('0032','冯江','男')";
			String sql_2 = "select * from student";
			String sql_3 = "UPDATE Student set stuSex ='女'  where stuNo = '0032'";
			String sql_4 = "DELETE from student where stuNo = '0032'";
			
			//stat.executeUpdate(sql_2);
			ResultSet rs = stat.executeQuery(sql_2);
			
			out.println("查询结果: <br>");  
			out.println("编号"+"  "+"姓名 "+"  "+"性别 <br>");  
            while (rs.next()) {  
            	out.println(rs.getString("stuNo")+"  "+rs.getString("stuName")+"  "+rs.getString("stuSex")+" <br>");
            }
			//out.println("成功添加" + i + "行");
			stat.close();
			connect.close();
    	%>
	</body>
</html>

代码说明:该代码已注释掉执行更新数据库的操作语句增、删、改操作,适当更改后即可进行相应操作(一定要有一点java基础啊)
这儿修改数据库的方式与前面通过java文件进行修改数据库的内容相似

运行出来的效果:
jsp运行效果图
第一次写这种长篇,有问题还请见谅!

到这里你已经可以通过java和jsp文件实现基本的数据库操作了,你就有了做网页后端的一点点基础了,恭喜你迈入后端的大门,后面还有星辰大海,加油!代码人!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chirp_CQ/article/details/115012257

智能推荐

hive内部表和外部表的区别_hive内部表的优势-程序员宅基地

文章浏览阅读442次。内部表: 1:内部表也称为MANAGED_TABLE 2:内部表默认存储在/user/hive/warehouse下面 3:往内部表加载数据:load data inpath '/student.txt' into table student会将hdfs上面的数据剪切到/user/hive/warehouse/student下面,同时删除hdfs上面的student.t_hive内部表的优势

mysql db_owner_SQL Server修改数据库对象所有者(Owner)浅析-程序员宅基地

文章浏览阅读1.3k次。在SQL Server数据库中如何修改数据库对象(表、视图、存储过程..)的所有者(Owner)呢?一般我们可以使用系统提供的系统存储过程sp_changeobjectowner来修改。 我们先看看sp_changeobjectowner在MSDN的文档介绍吧更改当前数据库中对象的所有者。重要提示:此存储过程只针对 Microsoft SQL Server 2000 中可用的对象进行。后续版本的 ..._dbeaver 修改表的owner

趣味取小数(1)_#include <stdio.h> #include <string.h> int get_one-程序员宅基地

文章浏览阅读641次。题目描述 听说大家最近学得不错,教授就准备考考大家,先做出来有奖哦~编写一个函数,取一个小数的第n(-10<=n<=16)位,当n大于0时,从小数点位置开始向右取小数部分第n位,当n小于0时,从小数点位置开始向左取整数部分的第n位。include include /* #include #include int get_one_digit(doubl_#include #include int get_one_digit(double num,int n);

【Android上架】上传APP到Google Play因为权限问题被拒绝多次,最终顺利解决_google play提示您的应用使用了尚未声明的权限:android.permission.req-程序员宅基地

文章浏览阅读8.1k次。类似问题:【安卓学习之常见问题】Google Play问题-APP被下架https://blog.csdn.net/ljb568838953/article/details/80249254博客:上传APP到Google Play权限问题https://blog.csdn.net/weixin_34413065/article/details/88224616【传送门】https://st..._google play提示您的应用使用了尚未声明的权限:android.permission.request_insta

【3D计算机视觉】GeoNet——基于测地距离的点云分析深度网络_geonet点云-程序员宅基地

文章浏览阅读2.5k次。GeoNet: Deep Geodesic Networks for Point Cloud Analysis一、摘要二、模型简介2.1 研究目的2.2 相关工作2.3 模型思想一、摘要这是点云相关的深度学习任务中第一个提出去推断点云表面的拓扑结构的工作。3D物体的表面的拓扑结构往往能为其语义分割或者模型重建任务中带来强大的特征,但是这样的特征在点云中却往往丢失了。因此这篇文章提出了一个Geo..._geonet点云

Oracle表白,程序猿也有爱情!用PL/SQL表白-程序员宅基地

文章浏览阅读941次。本人是入门级菜鸟,闲来无事,想画个心形出来玩玩,让编程多一些趣味,用的是很笨的方法。希望高手有更好的方法实现。代码如下:create table love(love_you varchar2(200));create or replace procedure love_you (input_a_special_day indate,press_F8 ..._sql可以写爱心吗

随便推点

3D物体检测(二)_类别无关的 物体3d关键点检测-程序员宅基地

文章浏览阅读739次。title: 3D物体检测(二)date: 2020-02-22 17:09:40categories:3D物体检测tags:3D物体检测点云总结一下在bilibili上看到的基于点云场景的三维物体检测算法及应用,是香港中文大学博士生所作报告有兴趣的也可以去看看这个视频。这一部分主要总结一下报告主要的三个论文:PointRCNN、Part-A^2、PV-RCNN想看更多相..._类别无关的 物体3d关键点检测

2018函授英语计算机统考,函授本科需要统考英语和计算机吗-程序员宅基地

文章浏览阅读303次。函授本科也就是通过成人高考中的函授的学习方式获取本科学历,而函授也是我国成人教育中成人高考的一种学习方式,其主要通过寒假、暑假以及国家的法定节假日由学校安排学员进行统一的面授和考试,而平时学员主要靠自学为主,通过信函的方式与老师进行交流。因为函授本科相对便捷的学习方式,使得很多的成年人都报考函授提升本科学历。但是一般成人教育都要参加统考,函授本科需要统考英语和计算机吗?对于一般的函授本科学员是需要..._函授计算机英语

VTK 学习----VTK对象-算法类-vtkPolyDataAlgorithm-程序员宅基地

文章浏览阅读5.9k次,点赞5次,收藏39次。4.5.6 vtkPolyDataAlgorithmvtkAdaptiveSubdivisionFilter基于边缘和/或面积度量细分三角形。vtkAdaptiveSubdivisionFilter是一个基于最大边长和/或三角形区域细分三角形的滤镜。通过指定任何给定三角形可能具有的最大边长和/或三角形区域来控制三角形细分。细分继续进行,直到满足其标准。请注意,使用过小的标准值会产生巨..._vtkpolydataalgorithm

matlab4fsk软件解调代码,4fsk调制与解调基于Verilog HDL语言-程序员宅基地

文章浏览阅读725次。【实例简介】4fsk调制与解调基于Verilog HDL语言【实例截图】【核心代码】4fsk调制与解调基于VerilogHDL语言└── kechengsheji├── dac0832(10).cnf├── dac0832(11).cnf├── dac0832(12).cnf├── dac0832(13).cnf├── dac0832(15).cnf├── dac0832(1).cnf├── da..._4fsk开源代码

dbeaver如何导出mysql数据库_DBeaver操作数据表的拷贝-程序员宅基地

文章浏览阅读1.9w次。通过DBeaver工具链接数据库后,我们就可以通过菜单或者命令功能来实现我们想要的目的。(一)创建数据库新建数据库,如下图所示:——>在点击“确定”按钮后,可能会遇到失败,此时,我们可以直接通过sql语句来实现,在SQL控制台中输入CREATE DATABASE bien_test,执行sql命令就可以完成创建了。(二)创建数据表在bien_test数据库下新建表table_a(名称任意,..._如何使用dbeaver导出mysql数据库

mysql的命令_MySql命令行基本操作-程序员宅基地

文章浏览阅读1.1k次。在MySQL中的命令要以分号结尾1.连接数据库格式:mysql -h主机地址 -u用户名 -p用户密码1、例1:连接到本机上的MYSQL。首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>试验成功由于无密码,用..._题] 在执行mysql命令时,或代表命令写完时,应在命令后加()号(写出符号本身)

推荐文章

热门文章

相关标签