他一、管理员登录功能实现
:小图标下载网站
步骤:
1、创建JDBC连接数据库的工具类:DbUtil.java
/**
*
* @author Administrator
*
*/
public class DbUtil {
private String jdbcName="jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=UTF-8";
private String dbUserName="root";
private String dbPassword="root";
private String dbUrl="com.mysql.jdbc.Driver";
/**
* 获取数据库连接
* @return
* @throws Exception
*/
private Connection getCon() throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
return con;
}
/**
* 关闭连接
* @param stmt
* @param con
* @throws SQLException
*/
public void close(Statement stmt,Connection con) throws SQLException{
if(stmt!=null){
stmt.close();
if(con!=null){
con.close();
}
}
}
}
2.创建一个用户的实体类:User.java
/**
* 用户实体
* @author Administrator
*
*/
public class User {
private int id;
private String userName;
private String password;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String userName, String password) {
super();
this.userName = userName;
this.password = password;
}
public User(int id, String userName, String password) {
super();
this.id = id;
this.userName = userName;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}
3、创建操作数据库的dao,UserDao.java
/**
* 用户Dao类
* @author Administrator
*
*/
public class UserDao {
/**
* 登录验证
* @param con数据库连接
* @param user//从界面获得的user信息
* @return
*/
public User login(Connection con,User user)throws Exception{
User resultUser=null;
String sql="select * from t_user where userName=? and password=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPassword());
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
resultUser=new User();
resultUser.setId(rs.getInt("id"));
resultUser.setUserName(rs.getString("userName"));
resultUser.setPassword(rs.getString("password"));
}
return resultUser;
}
}
4、创建包images,用来存放图片
5、创建登录界面:LogOnFrm.java
- 新建Jframe窗口
设置标题
去除窗口最大化选项
修改布局方式
添加需要的组件
- label-"图书管理系统"
- lblNewLabel-"用户名:"
- lblNewLabel-"密 码:"
- 重命名textField为userNameTxt
- 重命名passwordField为passwordTxt
- btnNewButton-"登录"
- btnNewButton_1-"重置"
6、btnNewButton_1-“重置”,实现重置功能
注册一个事件
生成一个默认的事件方法
public void actionPerformed(ActionEvent arg0) {
}
public void actionPerformed(ActionEvent e) {
resetValueActionPerformed(e);//重新在外面定义一个方法
}
/**
* 重置事件处理
* @param e
*/
protected void resetValueActionPerformed(ActionEvent evt) {
this.userNameTxt.setText("");
this.passwordTxt.setText("");
}
7、新建一个判断userName和password是否为空的工具类:StringUtil.java
/**
* 字符串工具类
* @author Administrator
*
*/
public class StringUtil {
/**
* 判断是否为空
* @param str
* @return
*/
public static boolean isEmpty(String str){
if(str==null %% "".equals(str.trim())){
return true;
}else{
return false;
}
}
/**
* 判断是否不为空
* @param str
* @return
*/
public static boolean isNotEmpty(String str){
if(str!=null || !"".equals(str.trim())){
return true;
}else{
return false;
}
}
}
8、btnNewButton-“登录”,实现登录功能
注册一个事件,生成一个默认的事件方法
public void actionPerformed(ActionEvent arg0) {
}
public void actionPerformed(ActionEvent evt) {
loginActionPerformed(evt);
}
protected void loginActionPerformed(ActionEvent evt) {
String userName=this.userNameTxt.getText();
String password=new String(this.passwordTxt.getPassword());
if(StringUtil.isEmpty(userName)){
JOptionPane.showMessageDialog(null, "用户名不能为空");
return;
}
if(StringUtil.isEmpty(password)){
JOptionPane.showMessageDialog(null, "密码不能为空");
return;
}
User user=new User(userName,password);
Connection con=null;
try {
con=dbUtil.getCon();
User currentUser=userDao.login(con, user);//currentUser是一个结果,如果为null的话说明用户名,密码错误
if(currentUser!=null){
JOptionPane.showMessageDialog(null, "成功");
}else{
JOptionPane.showMessageDialog(null, "失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行结果: