文章目录
建立一个Web登录注册小程序
1、先在Mysql数据库中新建一个数据库
新建一张表:
2、在IDEA中新建一个工程
File—>New—>New Module—>java Enterprise
建立后,因为需要与Mysql数据库连接,所以需要导入jar包。在WEB-INF下建立lib目录,存放jar包
lib下放入mysql-connector-java-5.1.6.jar,将它Add as Library,选为模块jar包即可
3、对项目进行简单分层
domain:实体类;servlet:控制层;dao:接口层;service:服务层;util:工具层;可建立test,当作测试层
4、设计一个实体类
实体类的名字尽量与数据库中表明一致。由于要持久化,对于实体层,一般去实现一个串行化接口
import java.io.Serializable;
public class Users implements Serializable {
private int uid;
private String username;
private String password;
private String gender;
private String email;
private String birthday;
public Users() {
}
public Users(int uid, String username, String password, String gender, String email, String birthday) {
this.uid = uid;
this.username = username;
this.password = password;
this.gender = gender;
this.email = email;
this.birthday = birthday;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
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;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "Users{" +
"uid=" + uid +
", username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
", email='" + email + '\'' +
", birthday='" + birthday + '\'' +
'}';
}
}
5、引入一个jdbc工具类
因为需要对数据库进行操作,将DBUtils.java放入util目录下,需要导入commons-dbcp2-2.7.0.jar、commons-logging-1.2.jar、commons-pool2-2.7.0.jar在lib目录下。继续以模块jar包使用
6、写一个测试类,来测试DBUtils.java的使用
在DBUtils.java中,有
DBUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
//是要取得src目录下的jdbc.properties
所以在src目录下建立属性文档jdbc.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
username=root
password=XXXX #数据库密码
initialSize=20
Test:
public class Test {
public static void main(String[] args) {
Connection conn;
try{
conn=DBUtils.getConnection();
if (conn!=null){
System.out.println("Mysql连接成功");
}else{
System.out.println("Mysql连接失败");
}
}catch (Exception ex){
ex.printStackTrace();
}
}
}
//连接成功
7、写接口,实现登录功能
在Mysql中手动建立一个用户
在dao目录下写用户的业务逻辑接口:UserDao
public interface UserDao {
//用户登录
public Users login(String username,String password);
//用户注册
public Users reg(Users users+);
}
在Dao下建立子包impl,写实现类UserDaoimpl
public class UsersDaoimpl implements UserDao {
@Override
public Users login(String username, String password) {
Connection conn; //连接对象
ResultSet rs; //数据集合
List args = new ArrayList(); //数据集
String sql = "SELECT * FROM users WHERE username=? AND password=?"; //执行语句
Users loginUser = null;
try {
conn = DBUtils.getConnection();
args.add(username);
args.add(password);
rs = DBUtils.myExecuteQuery(sql,args);
if (rs.next()){
//说明登陆成功,用户资料返回
loginUser = new Users();
loginUser.setUid(rs.getInt("uid"