通过JDBC来实现在控制台注册登录用户名密码
先说说JDBC与数据库之间的操作常规步骤
一、SQL语句为DQL(查询语句)
- 注册驱动:Class.forName()
- 获取数据库连接:DriverManager.getConnection(url,user,password)
- 创建SQL语句框架:String sql=”“
- 进行SQL语句预编译:conn.prepareStatement(sql)
- 对SQL语句进行赋值:ps.setString()
- 执行SQL语句:rs.executeQuery()
- 处理查询结果集:while(rs.next()){}
- 关闭流:finally{if(){}}
二、SQL语句为DML(insert、delete、update)(没有处理查询结果集)
- 注册驱动:Class.forName()
- 获取数据库连接:DriverManager.getConnection(url,user,password)
- 创建SQL语句框架:String sql=”“
- 进行SQL语句预编译:conn.prepareStatement(sql)
- 对SQL语句进行赋值:ps.setString()
- 执行SQL语句:rs.executeUpdate()
- 关闭流:finally{if(){}}
控制台登录注册实现
- 注册功能:注册用户名、密码
- 登录功能:用户输入用户名和密码,同时匹配才能登录
一、创建t_user表
use t1;
create table t_user(
id int(4) primary key auto_increment,
username varchar(32) not null,
password varchar(32) not null
);
二、注册____jdbcregister.java
package com.jdbc.learn;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* @author 林杰_
* JDBC——注册
*/
public class jdbcregister {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("欢迎注册");
System.out.println("请输入用户名:");
String username=br.readLine();
System.out.println("请输入密码:");
String pwd=br.readLine();
Connection conn=null;
PreparedStatement ps=null;
try {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接
String url="jdbc:mysql://localhost:3306/t1";
String user="root";
String password="1111";
conn=DriverManager.getConnection(url,user,password);
//创建sql框架
String sql="insert into t_user(username,password) values(?,?)";
//sql预编译
ps=conn.prepareStatement(sql);
//sql赋值
ps.setString(1, username);
ps.setString(2, pwd);
//执行sql
int count=ps.executeUpdate();
if(count==1)
{
System.out.println("注册成功");
}else {
System.out.println("注册失败");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {//关闭流
if(ps!=null)
{
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
三、登录______jdbclogin.java
package com.jdbc.learn;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @author Administrator
* JDBC——登录
*/
public class jdbclogin {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("欢迎登录");
System.out.println("请输入用户名:");
String username=br.readLine();
System.out.println("请输入密码:");
String pwd=br.readLine();
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
boolean flag=false;
try {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接
String url="jdbc:mysql://localhost:3306/t1";
String user="root";
String password="1111";
conn=DriverManager.getConnection(url,user,password);
//创建sql框架
String sql="select username from t_user where username=? and password=?";
//sql预编译//编译一次,执行n次
ps=conn.prepareStatement(sql);
//sql赋值
ps.setString(1, username);
ps.setString(2, pwd);
//执行sql
rs=ps.executeQuery();
//处理查询结果集
while(rs.next())
{
flag=true;
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
if(rs!=null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null)
{
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
if(flag) {
System.out.println("登录成功");
}else {
System.out.println("您的用户名或密码有误");
}
}
}
注意:每个需要输入的地方都使用?占位符来表示