1.首先在数据库创建一个表(admin)含有(两个字段)分别是LoginId和LoginPwd,如图,在这里我使用的mysql数据库,我插入了两条数据。
2.在myeclipse2014软件中,创建一个web项目,我这里创建的项目名称叫做jspMVC01,最终项目应该这样的。实现的效果是注册成功之后,跳转到登录页面,然后输入注册的信息,显示成功登录,用户名或者密码不正确则显示登录失败的字样。
3.下面我来介绍下,如何一步步实现功能。
(1).在com.JDBC.entity包下面创建一个Admin的实体类,数据库有几个字段,这里面就有来几个属性,Admin里面的代码如下:
package com.JDBC.entity;
public class Admin {
private String LoginId;
private String LoginPwd;
public String getLoginId() {
return LoginId;
}
public void setLoginId(String loginId) {
LoginId = loginId;
}
public String getLoginPwd() {
return LoginPwd;
}
public void setLoginPwd(String loginPwd) {
LoginPwd = loginPwd;
}
@Override
public String toString() {
return "Admin [LoginId=" + LoginId + ", LoginPwd=" + LoginPwd + "]";
}
public Admin(String loginId, String loginPwd) {
super();
LoginId = loginId;
LoginPwd = loginPwd;
}
}
(2).创建一个连接数据库的配置文件database.properties,注意这是连接数据库的操作,里面代码如下:
className=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/myschool02
user=root
password=root
(3).在com.JDBC.Dao层下创建连接数据库的方法类BaseDao:
package com.JDBC.Dao;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class BaseDao {
/*private static final String className="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/myschool02";
private static final String user="root";
private static final String password="itcast";*/
@SuppressWarnings("finally")
public static Connection getConn(){
Properties properties=new Properties();
String filename="database.properties";
InputStream is=BaseDao.class.getClassLoader().getResourceAsStream(filename);
try {
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
String className=properties.getProperty("className");
String url=properties.getProperty("url");
String user=properties.getProperty("user");
String password=properties.getProperty("password");
/******************************************************/
Connection conn=null;
try {
Class.forName(className);
conn=DriverManager.getConnection(url,user,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
return conn;
}
}
public static void closeAll(Connection conn,Statement st,ResultSet rs){
try{
if (conn!=null && !conn.isClosed()) { //如果数据库连接接口有内容,并且没有关闭
conn.close(); //关闭数据库连接
conn=null; //清空引用
}
if (st!=null && !st.isClosed()) { //如果数据库语句有内容,并且没有关闭
st.close(); //关闭数据库语句
st=null; //清空引用
}
if (rs!=null && !rs.isClosed()) {
rs.closh }
}
(4).再在com.JDBC.Dao层创建AdminDao的接口类:
package com.JDBC.Dao;
import java.util.List;
import com.JDBC.entity.Admin;
public interface AdminDao {
public List getAllAdmin();
public int insertAdmin(Admin admin);
}
(5).comJDBC.Dao.impl包下面创建一个类(Admindao)来继承BaseDao,
实现AdminDao接口:
package com.JDBC.Dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.JDBC.Dao.AdminDao;
import com.JDBC.Dao.BaseDao;
import com.JDBC.entity.Admin;
public class AdminDaoImpl extends BaseDao implements AdminDao {
/**
* 登录
*/
@SuppressWarnings("finally")
@Override
public List getAllAdmin() {
Connection conn=getConn();
PreparedStatement pstmt=null;
ResultSet rs=null;
List adminlist=new ArrayList();
try {
pstmt=conn.prepareStatement("select * from admin");
rs=pstmt.executeQuery();
while(rs.next()){
String LoginId=rs.getString("LoginId");
String LoginPwd=rs.getString("LoginPwd");
Admin admin=new Admin(LoginId,LoginPwd);
adminlist.add(admin);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, rs);
return adminlist;
}
}
/**
* 注册
*/
@SuppressWarnings("finally")
@Override
public int insertAdmin(Admin admin) {
Connection conn=getConn();
PreparedStatement pstmt=null;
int result=0;
try {
pstmt=conn.prepareStatement("insert into admin(LoginId,LoginPwd) values(?,?)");
pstmt.setString(1,admin.getLoginId());
pmt.sString(2, admin.getLoginPwd());
result=pstmt.executeUpdate();
} catch (SQLException e) {
e.printSt
crace();
}finally{
closeAll(conn, pstmt, null);
return result;
}
}
}
(6).在com.JDBC.Biz层创建一个AdminBiz:
package com.JDBC.Biz;
public interface AdminBiz {
public void select();
public boolean login(String loginid,String loginpwd); //登录的方法
public boolean regist(String loginId,String loginPwd); //注册的方法
}