酒店管理系统实现——第一天:注册登录功能的实现

这周的任务是开发酒店预定管理系统,我负责注册登录功能的实现。

如下是登录部分的源码:

public boolean loginCheck(String name, String pass) {
boolean flag = false;
DataSource ds =DBManager_c3p0.getDataSource();
QueryRunner runner = new QueryRunner(ds);
String sql = "select * from user where name=? and pass=?";
Object[] params = {name,pass};

try {
User entity=runner.query(sql,new BeanHandler<User>(User.class),params);
if(entity!=null){
flag=true;
}
} catch (SQLException e) {

e.printStackTrace();
}
return flag;
}

登录验证代码如上。
在写登录的时候有一个小插曲,

List User entity= runner.query(sql,new Beanlist<User>(User.class),params);

这里学到的是实体Bean的使用和List集合的使用。

我把第10行代码写成了如上代码,而且在测试时候,数据库中:name=中文的时候,登录失败,但如果name=English时候是没有问题的,开始以为是中文乱码问题,然后继续测试,让name=English,sex="男",结果sex属性打印出来没有乱码,然后我就不知道怎么回事了,找栋同学问了半天也不明,让别人一测试问题没有了……无语ing,人品问题。

 

然后就是写的注册部分代码:

public boolean insert(User entity) {
boolean flag = false;

String sql = "insert into user(id,name,pass,sex,birthdate,email,tel,idcard,roomid)values(?,?,?,?,?,?,?,?,?)";


Object[] params = {entity.getId(),entity.getName(),entity.getPass(),entity.getSex(),entity.getBirthdate(),entity.getEmail(),entity.getTel(),entity.getIdcard(),entity.getRoomid()};

try {
runner.update(sql,params);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}

这里没有什么问题,很顺利就写出来了,要注意的是sql语句一定要测试,不然找错误时候都很麻烦的。

 

最后就是写测试类JUnit测试:

package cn.class3g.web.junit;

import java.util.List;

import org.junit.Test;


import cn.class3g.web.domain.User;
import cn.class3g.web.service.UserService;
import cn.class3g.web.service.UserServiceImpl;


public class UserTest {
UserService uService = new UserServiceImpl();
@Test
public void find(){
List<User> users = uService.findAll();
for (int i = 0; i < users.size(); i++) {
User entity = (User) users.get(i);
System.out.println(entity.getId()+" "+entity.getName()+" "+entity.getPass()+" "+entity.getSex()+" "+entity.getBirthdate()+" "+entity.getEmail()+" "+entity.getTel()+" "+entity.getIdcard()+" "+entity.getRoomid());
}
}
@Test
public void insert(){
uService.insert(new User(null,"王伟","123","男",null,null,null,null,4));
}
@Test
public void delete(){
uService.delete(new User(2,null,null,null,null,null,null,null,null));
}
@Test
public void update(){
uService.update(new User(3,"张三",null,null,null,null,null,null,null));
System.out.println(uService.update(new User(3,"张三",null,null,null,null,null,null,null)));
}
@Test
public void loginCheck(){
boolean flag = uService.loginCheck("张三","123");
if(flag){
System.out.println("用户登录成功");
}else{
System.out.println("用户登录失败");
}
}

}

 

这是测试类的所有源码,写的比较粗糙,方便以后复习了。

 

 

你可能感兴趣的:(java,sql,Web)