今天我们来学习Java如何连接数据库
这里利用eclipse
软件写Java程序
数据库利用MySQL8.0
在这里我们初步构建我们所需要的功能以及需要分管的内容
连接语句
mysql -h localhost -u root -p123456
建立一个用户表,在表中 username 做为主键
create table user(
-> username varchar(10) not null primary key,
-> userpassword varchar(10) not null);
建立一个飞行人员表,在表中 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);
鼠标右键点击便可以Create Schema
建立一个fly数据库
如果想要安装Eclipse程序的小伙伴,我这里写了一篇十分详细的安装教程
Eclipse安装教程及汉化(详解版)
附带汉化和多种JDK同时安装的教程
Eclipse实现安装多个JDK
在构建路径里有个添加外部 JAR 选择下载的 8.0.23 驱动
下载地址:Sql驱动
在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 方法
连接数据库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();
}
}
}
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;
}
}
这里我们主要写俩个功能一个是添加数据,一个是查询数据
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();
}//加载数据库驱动
}
}
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();
}
}
}
在这里我没有写前端,单纯的后端控制台实现
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("程序退出成功");
}
}
可见在我们输入了用户名和密码是登录成功的
在这里要提前在user表里输入一组数据,因为我设计的这个程序是优先认证用户名和密码的
如果你是从最开始看到这里的,那么你就学会了如何利用Java连接数据库
欢迎有问题的小伙伴积极提问