实训第三天(学生信息管理系统)

实训第三天(学生信息管理系统)
1.创建一个实体类UserDaoImpl
在这里插入图片描述
代码如下:
package net.zxk.student.dao.impl;
import net.zxk.student.bean.User;
import net.zxk.student.dao.UserDao;
import net.zxk.student.dbutil.ConnectionManager;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**

  • 功能:用户数据访问接口实现类

  • 作者:

  • 日期:
    /
    public class UserDaoImpl implements UserDao {
    /
    *

    • 插入用户记录

    • @param user

    • @return 插入记录数
      */
      @Override
      public int insert(User user) {
      // 定义插入记录数
      int count = 0;

      // 1. 获得数据库连接
      Connection conn = ConnectionManager.getConnection();
      // 2. 定义SQL字符串
      String strSQL = “insert into t_user (username, password, telephone, register_time)”
      + " values (?, ?, ?, ?)";
      try {
      // 3. 创建预备语句对象
      PreparedStatement pstmt = conn.prepareStatement(strSQL);
      // 4. 设置占位符的值
      pstmt.setString(1, user.getUsername());
      pstmt.setString(2, user.getPassword());
      pstmt.setString(3,user.getTelephone());
      pstmt.setTimestamp(4, new Timestamp(user.getRegisterTime().getTime()));
      // 5. 执行SQL,返回插入记录数
      count = pstmt.executeUpdate();
      // 6. 关闭预备语句对象
      pstmt.close();
      } catch (SQLException e) {
      e.printStackTrace();
      } finally {
      // 关闭数据库连接
      ConnectionManager.closeConnection(conn);
      }

      // 返回插入记录数
      return count;
      }

    /**

    • 按id删除用户记录

    • @param id

    • @return 删除记录数
      */
      @Override
      public int deleteById(int id) {
      // 定义删除记录数
      int count = 0;

      // 1. 获取数据库连接
      Connection conn = ConnectionManager.getConnection();
      // 2. 定义SQL字符串
      String strSQL = “delete from t_user where id = ?”;
      try {
      // 3. 创建预备语句对象
      PreparedStatement pstmt = conn.prepareStatement(strSQL);
      // 4. 设置占位符的值
      pstmt.setInt(1, id);
      // 5. 执行SQL,返回删除记录数
      count = pstmt.executeUpdate();
      // 6. 关闭预备语句对象
      pstmt.close();
      } catch (SQLException e) {
      e.printStackTrace();
      } finally {
      // 关闭数据库连接
      ConnectionManager.closeConnection(conn);
      }

      // 返回删除记录数
      return count;
      }

    /**

    • 更新用户记录

    • @param user

    • @return 更新记录数
      */
      @Override
      public int update(User user) {
      // 定义更新记录数
      int count = 0;

      // 1. 获得数据库连接
      Connection conn = ConnectionManager.getConnection();
      // 2. 定义SQL字符串
      String strSQL = “update t_user set username = ?, password = ?, telephone = ?,”
      + " register_time = ? where id = ?";
      try {
      // 3. 创建预备语句对象
      PreparedStatement pstmt = conn.prepareStatement(strSQL);
      // 4. 设置占位符的值
      pstmt.setString(1, user.getUsername());
      pstmt.setString(2, user.getPassword());
      pstmt.setString(3, user.getTelephone());
      pstmt.setTimestamp(4, new Timestamp(user.getRegisterTime().getTime()));
      pstmt.setInt(5, user.getId());
      // 5. 执行SQL,返回更新记录数
      count = pstmt.executeUpdate();
      // 6. 关闭预备语句对象
      pstmt.close();
      } catch (SQLException e) {
      e.printStackTrace();
      } finally {
      // 关闭数据库连接
      ConnectionManager.closeConnection(conn);
      }

      // 返回更新记录数
      return count;
      }

    /**

    • 按id查询用户

    • @param id

    • @return 用户实体
      */
      @Override
      public User findById(int id) {
      // 声明用户对象
      User user = null;

      // 1. 获取数据库连接对象
      Connection conn = ConnectionManager.getConnection();
      // 2. 定义SQL字符串
      String strSQL = “select * from t_user where id = ?”;
      try {
      // 3. 创建预备语句对象
      PreparedStatement pstmt = conn.prepareStatement(strSQL);
      // 4. 设置占位符的值
      pstmt.setInt(1, id);
      // 5. 执行SQL,返回结果集
      ResultSet rs = pstmt.executeQuery();
      // 6. 判断结果集是否有记录
      if (rs.next()) {
      // 创建用户实体
      user = new User();
      // 利用当前记录各字段值设置用户实体属性
      user.setId(rs.getInt(“id”));
      user.setUsername(rs.getString(“username”));
      user.setPassword(rs.getString(“password”));
      user.setTelephone(rs.getString(“telephone”));
      user.setRegisterTime(rs.getTimestamp(“register_time”));
      }
      } catch (SQLException e) {
      e.printStackTrace();
      } finally {
      // 关闭数据库连接
      ConnectionManager.closeConnection(conn);
      }

      // 返回用户对象
      return user;
      }

    /**

    • 查询所有用户

    • @return 用户列表
      */
      @Override
      public List findAll() {
      // 声明用户列表
      List users = new ArrayList();

      // 1. 获取数据库连接对象
      Connection conn = ConnectionManager.getConnection();
      // 2. 定义SQL字符串
      String strSQL = “select * from t_user”;
      try {
      // 3. 创建语句对象
      Statement stmt = conn.createStatement();
      // 4. 执行SQL,返回结果集
      ResultSet rs = stmt.executeQuery(strSQL);
      // 5. 遍历结果集
      while (rs.next()) {
      // 创建用户实体
      User user = new User();
      // 利用当前记录各字段值设置用户实体属性
      user.setId(rs.getInt(“id”));
      user.setUsername(rs.getString(“username”));
      user.setPassword(rs.getString(“password”));
      user.setTelephone(rs.getString(“telephone”));
      user.setRegisterTime(rs.getTimestamp(“register_time”));
      // 将实体添加到用户列表
      users.add(user);
      }
      // 6. 关闭结果集
      rs.close();
      // 7. 关闭语句对象
      stmt.close();
      } catch (SQLException e) {
      e.printStackTrace();
      } finally {
      // 关闭数据库连接
      ConnectionManager.closeConnection(conn);
      }

      // 返回用户列表
      return users;
      }

    /**

    • 用户登录

    • @param username

    • @param password

    • @return 登录用户实体
      */
      @Override
      public User login(String username, String password) {
      // 声明用户对象
      User user = null;

      // 1. 获取数据库连接
      Connection conn = ConnectionManager.getConnection();
      // 2. 定义SQL字符串
      String strSQL = “select * from t_user where username = ? and password = ?”;
      try {
      // 3. 创建预备语句对象
      PreparedStatement pstmt = conn.prepareStatement(strSQL);
      // 4. 设置占位符的值
      pstmt.setString(1, username);
      pstmt.setString(2, password);
      // 5. 执行SQL,返回结果集
      ResultSet rs = pstmt.executeQuery();
      // 6. 判断结果集是否有记录
      if (rs.next()) {
      // 实例化用户
      user = new User();
      // 利用当前记录各字段值设置用户实体属性
      user.setId(rs.getInt(“id”));
      user.setUsername(rs.getString(“username”));
      user.setPassword(rs.getString(“password”));
      user.setTelephone(rs.getString(“telephone”));
      user.setRegisterTime(rs.getTimestamp(“register_time”));
      }
      } catch (SQLException e) {
      e.printStackTrace();
      } finally {
      // 关闭数据库连接
      ConnectionManager.closeConnection(conn);
      }

      // 返回用户对象
      return user;
      }
      }

2.创建一个测试类TestUserImpl
在这里插入图片描述
代码如下:

package net.zxk.student.test;
import net.zxk.student.bean.User;
import net.zxk.student.dao.UserDao;
import net.zxk.student.dao.impl.UserDaoImpl;
import org.junit.Test;

public class TestUserDaoImpl {
@Test
public void testFindById() {
UserDao dao = new UserDaoImpl();
User user = dao.findById(1);
System.out.println(user);
}

@Test
public void testLogin() {
    UserDao dao = new UserDaoImpl();
    String username, password;

    username = "admin";
    password = "12345";
    User user = dao.login(username, password);
    if (user != null) {
        System.out.println("恭喜,用户名与密码正确,登录成功!");
    } else {
        System.out.println("遗憾,用户名或密码错误,登录失败!");
    }
}
@Test
public void testDeleteById(){
    UserDao dao = new UserDaoImpl();
    String id="181010023";
    int count =dao.deleteById(1);
    if(count>0){
        System.out.println("恭喜,学生记录删除成功!");
    }else{
        System.out.println("遗憾,学生记录删除失败!");
    }
}

}

3.创建一个包 service ,在这个包下面再创建一个impl,再创建几个接口在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.代码如下

package net.zxk.student.service.impl;

import net.zxk.student.bean.College;
import net.zxk.student.dao.CollegeDao;
import net.zxk.student.dao.impl.CollegeDaoImpl;
import net.zxk.student.service.CollegeService;

public class CollegeServiceImpl implements CollegeService {
/**
* 声明学校数据访问对象
*/
private CollegeDao collegeDao = new CollegeDaoImpl();

@Override
public College findCollegeById(int id) {
    return collegeDao.findById(id);
}

@Override
public int updateCollege(College college) {
    return collegeDao.update(college);
}

}
5.再创建一个测试一下结果
在这里插入图片描述
代码如下
package net.zxk.student.test;

import net.zxk.student.bean.College;
import net.zxk.student.dao.CollegeDao;
import net.zxk.student.dao.impl.CollegeDaoImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
//import org.junit.Before;
//import org.junit.Test;

/**

  • 功能:测试学校数据访问接口实现类

*/
public class TestCollegeDaoImpl {
@Before
public void beforeTest(){
System.out.println(“单元测试开始了”);
}
@Test
public void testFindByID(){
CollegeDao dao=new CollegeDaoImpl();
College college=dao.findById(1);
System.out.println(college );

}
@Test
public void testUpdate(){
    CollegeDao dao =new CollegeDaoImpl();
    College college =dao.findById(1);
    college .setPresident("王洪礼");
    dao.update(college);
    college =dao.findById(1);
    System.out.println(college);
}
@After
public void afterTest(){
    System.out.println("单元测试结束了");
}

}

6.在这里插入图片描述

在这里插入图片描述
package net.zxk.student.service.impl;

import net.zxk.student.bean.Status;
import net.zxk.student.dao.StatusDao;
import net.zxk.student.dao.impl.StatusDaoImpl;
import net.zxk.student.service.StatusService;

public class StatusServiceImpl implements StatusService {
/**
* 声明状态数据访问对象
*/
private StatusDao statusDao = new StatusDaoImpl();

@Override
public Status findStatusById(int id) {
    return statusDao.findById(id);
}

@Override
public int updateStatus(Status status) {
    return statusDao.update(status);
}

}

package net.zxk.student.test;

import net.zxk.student.bean.Status;
import net.zxk.student.service.StatusService;
import net.zxk.student.service.impl.StatusServiceImpl;
import org.junit.Test;

public class TestStatusServiceImpl {
@Test
public void testFindStatusServiceImpl(){
StatusService service=new StatusServiceImpl();
Status status=service.findStatusById(1);
System.out.println(status);
}
@Test
public void testUpsate(){
StatusService service=new StatusServiceImpl();
Status status=service.findStatusById(1);
status.setAuthor(“无心剑”);
status.setTelephone(“15265628765”);
int count=service.updateStatus(status);
if(count>0){
System.out.println(“恭喜,状态记录更新成功!”);
status=service.findStatusById(1);
System.out.println(status);
}else{
System.out.println(“遗憾,记录更新失败!”);
}
}

}

7.在这里插入图片描述

package net.zxk.student.service.impl;

import java.util.List;

import net.zxk.student.bean.User;
import net.zxk.student.dao.UserDao;
import net.zxk.student.dao.impl.UserDaoImpl;
import net.zxk.student.service.UserService;

/**

  • 功能:用户服务接口实现类

  • 作者:

  • 日期:2019年6月19日
    /
    public class UserServiceImpl implements UserService {
    /
    *

    • 声明用户数据访问对象
      */
      private UserDao userDao = new UserDaoImpl();

    @Override
    public int addUser(User user) {
    return userDao.insert(user);
    }

    @Override
    public int deleteUserById(int id) {
    return userDao.deleteById(id);
    }

    @Override
    public List findAllUsers() {
    return userDao.findAll();
    }

    @Override
    public User findUserById(int id) {
    return userDao.findById(id);
    }

    @Override
    public User login(String username, String password) {
    return userDao.login(username, password);
    }

    @Override
    public int updateUser(User user) {
    return userDao.update(user);
    }

}

在这里插入图片描述
代码如下:
package net.zxk.student.test;

import net.zxk.student.bean.College;
import net.zxk.student.bean.User;
import net.zxk.student.service.CollegeService;
import net.zxk.student.service.UserService;
import net.zxk.student.service.impl.CollegeServiceImpl;
import net.zxk.student.service.impl.UserServiceImpl;
import org.junit.Test;

public class TestUserServiceImpl {
@Test
public void testLogin(){
UserService service=new UserServiceImpl();
String username,password;

    username="12345";
    password="1234";
    User user=service.login(username,password);
    if(user !=null){
        System.out.println("恭喜,用户名与密码正确,登录成功!");

    }else{
        System.out.println("遗憾,用户名或密码错误,登录失败!");
    }
}
@Test
public void testUpdateUser(){
   UserService service=new UserServiceImpl();
    User user=service.findUserById(1);

// user.setRegisterTime();
user.setTelephone(“3152639”);
int count=service.updateUser(user );
if(count>0){
System.out.println(“恭喜,学校记录更新成功!”);

        System.out.println(user);
    }else{
        System.out.println("遗憾,学校记录更新失败!");
    }
}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值