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程序的小伙伴,我这里写了一篇十分详细的安装教程

Eclipse安装教程及汉化(详解版)

附带汉化和多种JDK同时安装的教程

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的主要内容,如果未能解决你的问题,请参考以下文章

5分钟学会mysql的逻辑架构原理

java使用jdbc连接mysql数据库,表里有记录,但是查询的结果集为空,是啥原因

30分钟学会TypeScript

五分钟学会Mybatis通过Mapper代理连接数据库

07.十分钟学会tomcat数据源

grunt整合版30分钟学会使用grunt打包前端代码