您的位置:首页 > 其它

JDBC常规步骤、控制台模拟实现登录注册

2018-03-24 20:28 507 查看
通过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.readLi
c32e
ne();

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("您的用户名或密码有误");
}
}

}


注意:每个需要输入的地方都使用?占位符来表示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: