30分钟学会Java连接数据库MySQL
Posted 洛尘₀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30分钟学会Java连接数据库MySQL相关的知识,希望对你有一定的参考价值。
今天我们来学习Java如何连接数据库
这里利用eclipse
软件写Java程序
数据库利用mysql8.0
1.简单设想
在这里我们初步构建我们所需要的功能以及需要分管的内容
1.1.用户表(user) E - R 图
1.2.飞行人员表(pilot)E - R 图
1.3.简易功能 E - R 图
在构想好我们要实现的功能之后,我们开始写我们的表结构
2.数据库的创建
2.1.cmd窗口建立
2.1.1.连接数据库
连接语句
mysql -h localhost -u root -p123456
2.1.2.展示当前数据库
show databases
2.1.3.创建一个新的数据库
create databases fly
2.1.4.使用fly数据库
use fly
2.1.5.建立用户表
建立一个用户表,在表中 username 做为主键
create table user(
-> username varchar(10) not null primary key,
-> userpassword varchar(10) not null);
效果展示,可见用户表是建立成功的
2.1.6.建立pilot表
建立一个飞行人员表,在表中 vid 做为主键
create table pilot(
-> vid varchar(10) not null primary key,
-> name varchar(10) not null,
-> sex varchar(10) not null,
-> age varchar(10) not null,
-> phone varchar(10) not null);
效果展示,可见飞行人员表是建立成功的
2.1.7.查看建表是否完整
show tables;
2.2.MySQL8.0可视化窗口建表
2.2.1.建立数据库fly
鼠标右键点击便可以Create Schema
建立一个fly数据库
2.2.2.建表选择
在这里选择Create Table
2.2.3.建立用户表
可见在可视化窗口是可以直接写的,是很方便的
2.2.4.建立pilot表
2.2.5.对user表录入一组数据
到了这里我们MySQL数据库的东西就已经写完了
3.利用Eclipse写Java项目
如果想要安装Eclipse程序的小伙伴,我这里写了一篇十分详细的安装教程
附带汉化和多种JDK同时安装的教程
3.1.建立Java项目
这里项目的名字我们起名为:Pilot_system
3.2.导入数据库连接驱动
在构建路径里有个添加外部 JAR 选择下载的 8.0.23 驱动
下载地址:Sql驱动
提取码:ca1c
3.3.写 com.Dao 包
在Dao层里 get 和 set 方法
package com.Dao;
public class UserDao {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
这里有一个取巧的地方就是你可以鼠标右键选择自动生成 Getter 和 setter 方法
3.4.写 user 包
3.4.1.录入管理者信息
连接数据库jdbc:mysql://localhost:3306/fly","root","123456"
sql语句录入insert into user values(?,?)
package user;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Alter_user {
public static void userr(){
// TODO 自动生成的方法存根
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/fly","root","123456");
PreparedStatement ps=con.prepareStatement("insert into user values(?,?)");
@SuppressWarnings("resource")
Scanner sc=new Scanner(System.in);
System.out.println("请输入用户名");
String paid=sc.nextLine();
ps.setString(1, paid);
System.out.println("请输入密码");
String name=sc.nextLine();
ps.setString(2, name);
ps.executeUpdate();
System.out.println("录入成功");
} catch (ClassNotFoundException | SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
3.4.2.管理者登录认证
sql语句查询select * from user where username=? and userpassword=?
package user;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import com.Dao.UserDao;
public class Login {
public boolean Login() {
try {
// Class.forName("com.mysql.cj.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/fly","root","123456");
PreparedStatement ps=con.prepareStatement("select * from user where username=? and userpassword=?");
@SuppressWarnings("resource")
Scanner sc=new Scanner(System.in);
UserDao ud=new UserDao();
System.out.println("请输入用户名");
ud.setUsername(sc.nextLine());
System.out.println("请输入密码");
ud.setPassword(sc.nextLine());
ps.setString(1,ud.getUsername());
ps.setString(2,ud.getPassword());
ResultSet rs=ps.executeQuery();//返回结果集
if(rs.next())
{
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}//加载数据库驱动
return false;
}
}
3.5.写 Pilot 包
这里我们主要写俩个功能一个是添加数据,一个是查询数据
3.5.1.添加数据 Sert_Pliot
sql语句:insert into pilot values(?,?,?,?,?)
package Pliot;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Connection;
import java.util.Scanner;
public class Sert_Pliot {
//录入人员
public static void select(){
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/fly","root","123456");
PreparedStatement ps=con.prepareStatement("insert into pilot values(?,?,?,?,?)");
@SuppressWarnings("resource")
Scanner sc=new Scanner(System.in);
System.out.println("-----------");
System.out.println("人员基本信息录入");
System.out.println("-----------");
System.out.println("请输入人员id");
String vid=sc.nextLine();
ps.setString(1, vid);
System.out.println("请输入姓名");
String name=sc.nextLine();
ps.setString(2, name);
System.out.println("请输入性别");
String sex=sc.nextLine();
ps.setString(3,sex);
System.out.println("请输入年龄");
String age=sc.nextLine();
ps.setString(4,age);
System.out.println("请输入电话号");
String phone=sc.nextLine();
ps.setString(5,phone);
ps.executeUpdate();
System.out.println("人员录入成功");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}//加载数据库驱动
}
}
3.5.2.查询数据 Print_Pliot
sql语句:select * from pilot
package Pliot;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
public class Print_Pliot {
public static void print() {
// TODO 自动生成的方法存根
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/fly","root","123456");
PreparedStatement ps=con.prepareStatement("select * from pilot");
ResultSet rs=ps.executeQuery();
while(rs.next())
{
System.out.println(rs.getString(1)+"\\t"+rs.getString(2)+"\\t"+rs.getString(3)+"\\t"+rs.getString(4)+"\\t"+rs.getString(5));
}
rs.close();
ps.close();
con.close();
} catch (ClassNotFoundException | SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
3.6.主函数的实现
在这里我没有写前端,单纯的后端控制台实现
package pilot_root;
import java.util.Scanner;
import Pliot.*;
import user.*;
public class Pilot {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("管理员登录");
Login lg =new Login();
boolean f=lg.Login();
LO:while(f)
{
System.out.println("-*-*-*-*-*-*-*-*-*-");
System.out.println("欢迎登录PILOT管理系统!!!");
System.out.println("-------------------");
System.out.println("输入1 进入飞行人员管理界面");
System.out.println("输入2 添加管理员");
System.out.println("输入0 退出系统");
System.out.println("---------------");
String n=sc.nextLine();
MO:switch(n)
{
case "1":
for(;;)
{
System.out.println("-*-*-*-*-*-*-*-*-");
System.out.println("欢迎进入飞行人员管理界面!!!");
System.out.println("-----------------");
System.out.println("输入1 添加人员数据");
System.out.println("输入2 查看人员数据");
System.out.println("输入0 退出人员管理界面");
System.out.println("---------------");
String m=sc.nextLine();
switch(m)
{
case "1":
Sert_Pliot.select();break;
case "2":
Print_Pliot.print();break;
case "0":System.out.println("退出人员管理界面成功");break MO;
}
}
case "2":
Alter_user.userr();break;
case "0":break LO;
}
}
System.out.println("程序退出成功");
}
}
4.最后效果
4.1.登录界面
可见在我们输入了用户名和密码是登录成功的
在这里要提前在user表里输入一组数据,因为我设计的这个程序是优先认证用户名和密码的
4.2.添加数据
4.3.查询数据
5.总结
如果你是从最开始看到这里的,那么你就学会了如何利用Java连接数据库
欢迎有问题的小伙伴积极提问
最后附上包的分类,祝各位有所收获
以上是关于30分钟学会Java连接数据库MySQL的主要内容,如果未能解决你的问题,请参考以下文章