//这个是测试的代码块
package dao.impl;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import pojo.User;
@SuppressWarnings("unused")
class UserDaoTest {
UserDao userDao=new UserDaoImpl();
@Test
void testQueryUserByusername() {
//fail("Not yet implemented");
if(userDao.queryUserByusername("admin123")==null) {
System.out.println("用户名可用!");
}
else {
System.out.println("用户名已存在!");
}
}
@Test
void testQueryUserByusernameAndpassword() {
//fail("Not yet implemented");
if(userDao.queryUserByusernameAndpassword("admin","admin123")==null)
{System.out.println("用户名或密码错误!登录失败!");
}
else {
System.out.println("查询成功!");
}
}
@Test
void testSaveUser() {
//fail("Not yet implemented");
//System.out.println(userDao.saveUser(new User(null,"admins","12d2888","w17f8@qq.com")));
System.out.println( userDao.saveUser(new User(null,"wzg168", "123456", "wzg168@qq.com")));
}
}
package dao.impl;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.apache.jasper.compiler.NewlineReductionServletWriter;
import utils.JdbcUtilss;
@SuppressWarnings("unused")
public abstract class BaseDao {
//使用Jdbcutilss来操作数据库
private QueryRunner queryRunner=new QueryRunner();
//使用update方法执行insert和update与delete操作
public int update(String sql,Object...args) {
Connection connection=JdbcUtilss.getConnection();
try {
return queryRunner.update(connection, sql, args);
//return queryRunner.update(connection,sql,args);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
JdbcUtilss.close(connection);
}
return -1;
}
/**
* 查询返回一个 javaBean 的 sql 语句
*
* @param type 返回的对象类型
* @param sql 执行的 sql 语句
* @param args sql 对应的参数值
* @param <T> 返回的类型的泛型
* @return
* @return
*/
public <T> T queryForOne(Class<T>type,String sql,Object...args){
Connection conn=JdbcUtilss.getConnection();
try {
return queryRunner.query(conn, sql, new BeanHandler<T>(type), args);
} catch (Exception e) {
// TODO: handle exception
}
finally {
JdbcUtilss.close(conn);
}
return null;
}
/**
* 查询返回多个 javaBean 的 sql 语句
*
* @param type 返回的对象类型
* @param sql 执行的 sql 语句
* @param args sql 对应的参数值
* @param <T> 返回的类型的泛型
* @return
*/
public <T> List<T> queryForList(Class<T>type,String sql,Object...args){
Connection conn=JdbcUtilss.getConnection();
try {
return queryRunner.query(conn, sql, new BeanListHandler<T>(type), args);
} catch (Exception e) {
// TODO: handle exception
}
finally {
JdbcUtilss.close(conn);
}
return null;
}
//返回执行一个一行一列;
public Object quarForStringValue(String sql,Object...args) {
Connection con=JdbcUtilss.getConnection();
try {
return queryRunner.query(con, sql, new ScalarHandler(),args);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
JdbcUtilss.close(con);
}
return null;
}
}
//接口
package dao.impl;
import pojo.User;
public interface UserDao {
public User queryUserByusername(String username);
//public User queryUserByUsername(String username);
public User queryUserByusernameAndpassword(String username,String password);
public int saveUser(User user);
}
package dao.impl;
import pojo.User;
public class UserDaoImpl extends BaseDao implements
UserDao{
@Override
public User queryUserByusername(String username) {
// TODO Auto-generated method stub
String sql="select`id`,`username`,`password`,`email` from t_user where username= ?";
return queryForOne(User.class, sql, username);
}
@Override
public User queryUserByusernameAndpassword(String username, String password)
{
String sql="select`id`,`username`,`password`,`email` from t_user where username = ? and password = ?";
// TODO Auto-generated method stub
return queryForOne(User.class, sql, username,password);
}
@Override
public int saveUser(User user) {
// TODO Auto-generated method stub
/*
* String sql="insert into t_user(`username`,`password`,`email`)value(?,?,?)";
* return update(sql, user.getUsername(),user.getPassword(),user.getEmail());
*/
String sql = "insert into t_user(`username`,`password`,`email`)values(?,?,?)";
//return update(sql, user.getUsername(),user.getPassword(),user.getEmail());
return update(sql, user.getUsername(),user.getPassword(),user.getEmail());
}
}
//类User
package pojo;
public class User {
private Integer id;
private String username;
private String password;
private String email;
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + ", email=" + email + ", getId()="
+ getId() + ", getUsername()=" + getUsername() + ", getPassword()=" + getPassword() + ", getEmail()="
+ getEmail() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()="
+ super.toString() + "]";
}
public User() {
}
public User(Integer id, String username, String password, String email) {
super();
this.id = id;
this.username = username;
this.password = password;
this.email = email;
}
}