学数据库你竟然不用用JAVA写代码,可惜你遇到了我! JAVA连接数据库(JDBC)的安装使用教程
Step 1 你得有Eclipse
没有出门右拐,我教不了你。
Step 2 你得有Mysql
MySQL的详细安装过程,我在另一篇博客中给出。戳我
Step 3 安装JDBC
可以去官网下,如果用的我的Mysql版本的话,可以直接下我的,我的是.19下载地址
如果不是,给出官网下载地址
有小伙伴私信我说,不知道那个是Windows的:我来解答一下。
1. 导入User Library
直接拖进去就可以了
2. 导入用户自订的Library
Stept 4 数据库中来张表
相信很多道友,Mysql都没用过,一直在吃灰。
我们搞张表
打开Mysql
//cmd输入,看过我之前的博客应该会了就不赘述了
mysql -uroot -p
Enter password:
create database db;--建立数据库
use db;create table user(id int, name varchar(20));insert into user(id, name) values (1, 'hello');insert into user(id, name) values(2, 'good'); --建表
Stept 5 检查是否成功
在刚才的工程里
import java.sql.*;
public class TEST {
public static void main(String[] args) {
String driver = "com.mysql.cj.jdbc.Driver"; //加载驱动程序,不用改
String username = "root"; //数据库用户名按自己的改改!!!!!!!!
String password = "";//数据库密码按自己的改改!!!!!!!!!!!
String Dbname="db";//以后访问自己数据库的时候按需修改,测试先用这个
String url = "jdbc:mysql://localhost:3306/"+Dbname+"?&useSSL=false&serverTimezone=UTC";
String coding="&useUnicode=ture&characterEncoding=UTF-8";//编码格式
Connection conn = null;
try{
Class.forName(driver);
//getConnection()方法,连接MySQL数据库!
conn=DriverManager.getConnection(url+coding,username,password);
if(!conn.isClosed())
System.out.println("-------------------------------数据库连接成功!---------------------------");
//创建statement类对象,用来执行SQL语句!
Statement Statement=conn.createStatement();
//要执行的SQL语句
String sql="select * from user" ;
//ResultSet类,用来存放获取的结果集!
ResultSet rs=Statement.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("name"));
}
}
catch(ClassNotFoundException e){
//数据库驱动类异常处理
System.out.println("数据库驱动加载失败!");
e.printStackTrace();
}
catch(SQLException e1){
//数据库连接失败异常处理
e1.printStackTrace();
}
catch(Exception e2){
e2.printStackTrace();
}
finally{
System.out.println("-------------------------------数据库数据获取成功!---------------------------");
}
}
}
完成跑路!!!
Step 6 增删查改模板:
1.增
如果不能成功链接数据库,我的博客JAVA中有详细的介绍,可以看一下
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement; //当如相关驱动包
public class Add {
public static void main(String[] args) throws Exception {
String driver = "com.mysql.cj.jdbc.Driver"; //加载驱动程序,不用改
String userName = "root"; //数据库用户名按自己的改改!!!!!!!!
String userPwd = "";//数据库密码按自己的改改!!!!!!!!!!!
String Dbname="students";//以后访问自己数据库的时候按需修改,测试先用这个
String url = "jdbc:mysql://localhost:3306/"+Dbname+"?&useSSL=false&serverTimezone=UTC";
String coding="&useUnicode=ture&characterEncoding=UTF-8";//编码格式
url = url+coding; // 形成带数据库读写编码的数据库连接字
Class.forName(driver); // 加载并注册驱动程序
Connection conn = DriverManager.getConnection(url, userName, userPwd);// 创建连接对象
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
//Statement stmt = conn.createStatement();// 现在很少有人用了,部分老师比较古板,所以你不写可能会扣分的呀。笑哭
// 更新(添加、删除、修改)数据库操作
String sql = "insert into stu(xh,name,cj) values(2,'李四',98)";
PreparedStatement pstmt = conn.prepareStatement(sql);
int n = pstmt.executeUpdate(sql);// 返回记录操作条数
if (n > 0) {
System.out.println("添加记录成功,共添加了" + n + "条记录");
} else {
System.out.println("添加不成功!");
}
pstmt.close();
// stmt.close();
conn.close();
}
}
2.删
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class Delete {
public static void main(String[] args) throws Exception {
String driverName = "com.mysql.cj.jdbc.Driver"; // 驱动程序名
String userName = "root"; // 数据库用户名
String userPwd = null; // 密码
String dbName = "students"; // 数据库名
String url = "jdbc:mysql://localhost:3306/" + dbName + "?useSSL=false&serverTimezone=UTC"; // 形成带数据库读写编码的数据库连接字
Class.forName(driverName); // 加载并注册驱动程序
Connection conn = DriverManager.getConnection(url, userName, userPwd);// 创建连接对象
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
Statement stmt = conn.createStatement();// 在桥conn上直接创建一辆汽车
String sql = "delete from stu where cj<?"; //用占位符设置SQL操作的模板
PreparedStatement pstmt = conn.prepareStatement(sql); //预处理相关SQL语句
int n = stmt.executeUpdate(sql);// 返回记录操作条数
// pstmt.setInt(1,60);
if (n > 0) {
System.out.println("删除记录成功,共删除了" + n + "条记录");
} else {
System.out.println("删除不成功!");
}
pstmt.close();
stmt.close();
conn.close();
}
}
3.查
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class Select {
public static void main(String[] args) throws Exception {
String driverName = "com.mysql.cj.jdbc.Driver"; // 驱动程序名
String userName = "root"; // 数据库用户名
String userPwd = ""; // 密码
String dbName = "students"; // 数据库名
String url = "jdbc:mysql://localhost:3306/" + dbName + "?useSSL=false&serverTimezone=UTC"; // 形成带数据库读写编码的数据库连接字
Class.forName(driverName); // 加载并注册驱动程序
Connection conn = DriverManager.getConnection(url, userName, userPwd);// 创建连接对象
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
Statement stmt = conn.createStatement();// 在桥conn上直接创建一辆汽车
String sql = "select * from stu where cj>=0 and cj<=100";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();// 执行,得到查询结果集合
System.out.println("记录号 学号 姓名 成绩");
while (rs.next()) {
int a = rs.getRow();
int b = rs.getInt("xh");
String c = rs.getString("name");
int d = rs.getInt("cj");
System.out.println(a + " | " + b + " | " + c + " | " + d);
}
pstmt.close();
stmt.close();
conn.close();
}
}
4.改
```cpp
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class Updata {
public static void main(String[] args) throws Exception {
String driverName = "com.mysql.cj.jdbc.Driver"; // 驱动程序名不需要修改
String userName = "root"; // 数据库用户名
String userPwd = null; // 密码
String dbName = "students"; // 数据库名
String url = "jdbc:mysql://localhost:3306/" + dbName + "?useSSL=false&serverTimezone=UTC"; // 形成带数据库读写编码的数据库连接字
Class.forName(driverName); // 加载并注册驱动程序
Connection conn = DriverManager.getConnection(url, userName, userPwd);// 创建连接对象
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
Statement stmt = conn.createStatement();// 在桥conn上直接创建一辆汽车
// 更新(添加、删除、修改)数据库操作
String sql = "update stu set cj=? where xh=3";
PreparedStatement pstmt = conn.prepareStatement(sql);
int n = stmt.executeUpdate(sql);// 返回记录操作条数
// pstmt.setInt(1,50);
// pstmt.setInt(2,3);
if (n > 0) {
System.out.println("修改记录成功,共修改了" + n + "条记录");
} else {
System.out.println("修改不成功!");
}
pstmt.close();
stmt.close();
conn.close();
}
}
写在最后:
我叫风骨散人,名字的意思是我多想可以不低头的自由生活,可现实却不是这样。家境贫寒,总得向这个世界低头,所以我一直在奋斗,想改变我的命运
给亲人好的生活,希望同样被生活绑架的你
可以通过自己的努力改变现状,深知成年人的世界里没有容易二字。目前是一名在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!
如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
谢谢大家的阅读!学数据库你竟然不用用JAVA写代码,可惜你遇到了我! JAVA连接数据库(JDBC)的安装使用教程的更多相关文章
- JAVA写JSON的三种方法,java对象转json数据
JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...
- JAVA写代码必须知道的编程工具
Eclipse: 一个开放源代码的.基于Java的可扩展开发平台. NetBeans: 开放源码的Java集成开发环境,适用于各种客户机和Web应用. IntelliJ IDEA: 在代码自动提示.代 ...
- java基础(一):我对java的三个环境变量的简单理解和配置
首先说说java的三个环境变量:java_home,classpath,path java_home:jdk的安装路径[你一层一层点开安装路径,直到当前目录有一个bin目录,然后在地址栏里面右键单击复 ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
- 经典KMP算法C++与Java实现代码
前言: KMP算法是一种字符串匹配算法,由Knuth,Morris和Pratt同时发现(简称KMP算法).KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的.比 ...
- Java深度理解——Java字节代码的操纵
导读:Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展.但是对于 Java语言的深度理解和运用,毕竟是很少会有人涉及的话 ...
- 学了编译原理能否用 Java 写一个编译器或解释器?
16 个回答 默认排序 RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...
- 如何用java写出无副作用的代码
搞java的同学们可能对无副作用这个概念比较陌生,这是函数式编程中的一个概念,无副作用的意思就是: 一个函数(java里是方法)的多次调用中,只要输入参数的值相同,输出结果的值也必然相同,并且在这个函 ...
- Java写的斗地主游戏源码
源码下载在最后 我们的前年的课设要求做一个斗地主程序,当时正在愁如何做界面,当时刚好在学习C#,于是就用C#完成了这个程序.一方面,当时我C#功底还很差(其实现在也不怎么样),很多地方用了“笨办法”, ...
随机推荐
- js骚操作骂人不带脏
前言 很多小伙伴们觉得javaScript很简单,下面的这行 javaScript代码可能会让你怀疑人生. (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ...
- intelij idea 和 eclipse 使用上的区别
一.项目创建区别 使用基于IntelliJ的IDE,都会对project和module的关系比较糊涂.用简单的一句话来概括是: IntelliJ系中的Project相当于Eclipse系中的works ...
- VMware 15.5虚拟机安装群晖NAS
一.群晖nas简介 NAS(Network Attached Storage:网络附属存储),按字面意思理解其实就是网络存储器,可以理解为存储资料的网盘,云盘.NAS本身支持多种协议(如NFS.CI ...
- python3(三)enc
# ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节. # Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了. # 新的问题又 ...
- Salesforce Admin考题解析 | 流程自动化考题与知识点拓展
[题目1] A record is modified on 1/1/2008. It meets criteria for a time-based workflow rule; this rule ...
- 如何把Excel表暴力拆分了,python两段代码帮你搞定
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:老方玩编程 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...
- L17 AlexNet VGG NiN GoogLeNet
深度卷积神经网络(AlexNet) LeNet: 在大的真实数据集上的表现并不尽如⼈意. 1.神经网络计算复杂. 2.还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域. 机器学习的特征提取:手工定 ...
- stand up meeting 12/01/2015
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 赶工sprint3,各部分要合在一起时出现各种问题,各种修改测试:UI本身的功能继续实现完善 6 UWP对控件的 ...
- OpenCV 之 基本绘图
OpenCV 虽是开源的计算机视觉库,但里面也有一些基础的绘图函数,本文将介绍几种常用绘图函数:直线.圆.椭圆.长方形.多边形等. 1 数据结构 1.1 二维向量 cv::Point 代表的是二维 ...
- Problem C Careful Ascent
数学问题. 在不经过shield时,竖直速度是1.所以时间就是y/1=y,,,,在经过shield时,时间为shield的数值长度*影响因素,然后总时间把他们加起来,最后再用水平方向的长度除以总时间, ...