1.创建一个bean包,并在bean 包下创建一个User类
package com.qf.bean;
public class User {
private int id;
private String name;
private String pass;
private int level;
public User() {}
public User(String name, String pass) {
super();
this.name = name;
this.pass = pass;
}
public User(int id, String name, String pass, int level) {
super();
this.id = id;
this.name = name;
this.pass = pass;
this.level = level;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", pass=" + pass + ", level=" + level + "]";
}
}
2.创建数据库连接使用单例模式
public class DBUtil {
//数据库连接需要的参数
private String user = "root";
private String password = "root";
private String url = "jdbc:mysql://localhost:3306/mydb6";
//数据库连接类
Connection conn = null;
private static DBUtil dbUtil = null;
//单例模式:构造方法私有化
private DBUtil() {
}
//向外提供一个本类的对象
public static synchronized DBUtil getIntance() {
if(dbUtil == null) {
dbUtil = new DBUtil();
}
return dbUtil;
}
/**
* 创建数据库连接
* @return
*/
public Connection getConn() {
if(conn == null) {//conn为空,创建数据库连接对象
try {
Class.forName("com.mysql.jdbc.Driver");
conn = (Connection) DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return conn;
}
}
3.创建UseDao包创建接口,定义规则
package com.qf.dao;
import java.util.ArrayList;
import com.qf.bean.User;
/**
* 创建数据库操作的接口,提供四个函数 curd
* @author Administrator
*
*/
public interface UserDao {
/*
* 添加接口
*/
int insertUser(User user);
/*
* 删除接口
*/
int deleteUser(int id);
/*
* 修改接口
*/
int updateUser(User user);
/*
* 查询接口1
*/
ArrayList<User> queryAll();
/*
* 查询接口2
*/
ArrayList<User> queryByLikeName(String name);
/*
* 登录查询
*/
User loginCheck(User user);
}
4.创建UserDaoImpl包,并创建UserDaoImpl类,继承UserDao接口,实现方法,这里只实现一个方法
package com.qf.dao.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.qf.bean.User;
import com.qf.dao.UserDao;
import com.qf.util.DBUtil;
public class UserDaoImpl implements UserDao{
@Override
public int deleteUser(int id) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int updateUser(User user) {
// TODO Auto-generated method stub
return 0;
}
@Override
public ArrayList<User> queryAll() {
// TODO Auto-generated method stub
return null;
}
@Override
public ArrayList<User> queryByLikeName(String name) {
// TODO Auto-generated method stub
return null;
}
/*
* 到数据库查询此用户是否存在
* @see com.qf.dao.UserDao#loginCheck(com.qf.bean.User)
*/
@Override
public User loginCheck(User user) {
// TODO Auto-generated method stub
//编写sql
String sql = "select * from user where name=? and pass=?";
//获得数据库连接
Connection conn = null;
ResultSet rs = null;
conn = DBUtil.getIntance().getConn();
PreparedStatement ps = null;
User userCom = null;
try {
ps = (PreparedStatement) conn.prepareStatement(sql);//预编译sql
ps.setString(1, user.getName());//填写用户名信息
ps.setString(2, user.getPass());//填写密码信息
rs = ps.executeQuery();
while(rs.next()) {
//取出当前登录用户的所有信息
int id = rs.getInt("id");
String name = rs.getString("name");
String pass = rs.getString("pass");
int level = rs.getInt("level");
userCom = new User(id, name, pass, level);//把数据库中的完整信息封装成完整的user对象
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return userCom;
}
@Override
public int insertUser(User user) {
// TODO Auto-generated method stub
return 0;
}
}
5创建server包,用于登录
package com.qf.server;
import java.util.Scanner;
import com.qf.bean.User;
import com.qf.dao.impl.UserDaoImpl;
public class Login {
public static void main(String[] args) {
while(true) {
//输入用户名和密码
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String userName = sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
if(!"".equals(userName) && !"".equals(password)) {
User user = new User(userName, password);
//到数据库中查询此账号是否存在,通过model层的UserDaoImpl类
User rsUser = new UserDaoImpl().loginCheck(user);
if(rsUser == null) {
System.out.println("登录失败,请检查账号!");
}else {
System.out.println("恭喜您登录成功");
System.out.println(rsUser);
break;
}
}
}
}
}