第15周作业

题目1:编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。

package cc;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class login {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Scanner sc=new Scanner(System.in);
System.out.println("请输入用户名");
String user=sc.next();
System.out.println("请输入密码");
String pass=sc.next();
try {
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/adminn","root","1234");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from login where username='"+user+"' and password='"+pass+"'");
// ResultSet rs=st.executeQuery("select * from login where username = 'lijintao'");
if(rs.next()){
System.out.print("登陆成功");
}else{
System.out.print("登录失败");
}
if(rs!=null){
rs.close();
}
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

}

}

运行结果

 

 

 

 

题目2:在上一题基础上,当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。

 package cv;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DB {
private Connection con;
private PreparedStatement pre;
ResultSet rs;
private static DB db;
static{
try{
Class.forName("com.mysql.jdbc.Driver");//加载驱动
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
public static DB getInstance(){//单例模式
if(db==null){
db=new DB();
}
return db;
}
private DB(){
try{
con =DriverManager.getConnection("jdbc:mysql://localhost:3306/adminn","root","1234");//创建数据库连接对象
}catch(SQLException e){
e.printStackTrace();
}
}
public ResultSet executeSelect(String sql, Object[] args){//查询的方法
try{
pre =con.prepareStatement(sql); //预处理
if(args.length>0){
for(int i=0;i<args.length;i++){
pre.setObject(i+1, args[i]);
}
}
rs=pre.executeQuery();
}catch(SQLException e){
e.printStackTrace();
}
return rs;
}
public int executeModify(String sql,Object[] args){//增删改的方法
int n=0;
try{
pre =con.prepareStatement(sql);//预处理
if(args.length>0){
for(int i=0;i<args.length;i++){
pre.setObject(i+1, args[i]);
}
}
n = pre.executeUpdate();//更新
}catch(SQLException e){
e.printStackTrace();
}
return n;
}
public void close(){//资源的关闭
try{
if(rs!=null){
rs.close();
}
pre.close();
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}

 

package cv;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.Scanner;
public class Tesr {
public static void main(String[] args) {
Connection con=null; //创建连接对象
PreparedStatement pre=null;//预处理对象
Scanner sc=new Scanner(System.in);
System.out.println("请输入用户名");
String user=sc.next();
System.out.println("请输入密码");
String pass=sc.next();
Object b[]={user,pass};//从键盘接受的用户名和密码 放到数组中
String sql="select * from login where username=? and password=?";//查询语句
DB db=DB.getInstance();
db.executeSelect(sql, b);//调用db的方法
try{
if(db.rs.next()){
System.out.println("登陆成功");
Object d[]=new Object[30];//设置数组用来放查询的内容
sql="select * from user";
db.executeSelect(sql, d);
while(db.rs.next()){
String name1=db.rs.getString(2);//获取查询到的数据
String sex1=db.rs.getString(3);
String brithday=db.rs.getString(4);
System.out.println("姓名"+name1+" 性别"+sex1+" 生日日期"+brithday+" " );
}
System.out.print("请输入新的数据");
String name=sc.next();
String sex=sc.next();
String birthday=sc.next();
Object j[]={name,sex, birthday};//从键盘接受的内容放到数组中
String sqll="insert into user(name,sex,birthday)values(?,?,?)";//增加语句
int m=db.executeModify(sqll,j);//调用db增加的方法
if(m > 0){
System.out.println("增加成功");
}else{
System.out.println("增加失败");
}

} else{

System.out.print("登陆失败");
}
}catch(SQLException e){
e.printStackTrace();
}
}

}

运行结果

posted @ 2019-12-15 15:18  安稳度余生  阅读(110)  评论(0编辑  收藏  举报