复习Java第一个项目学生信息管理系统 03(model层Dao功能接口部分) &Java面试题序列化知识&生活【记录一个咸鱼大学生三个月的奋进生活】015

这篇博客回顾了Java项目学生信息管理系统中的model层Dao功能接口,包括MisUser、students、className和MyMenu的接口与实现类,并强调了测试的重要性。此外,博主还分享了关于Java面试中的序列化知识,并记录了近期的健身和生活点滴。
摘要由CSDN通过智能技术生成

复习Java(学生信息管理系统03model层Dao功能接口部分)

今天写model层里的Dao接口,里面声明该项目中会用到的通过SQL语句操作数据库的方法

MisUser的功能接口与实现类

model层的MisUser的权限管理dao的功能接口(MisUserDAO)

package com.sm.framework.model.dao.impl;

// 该项目采取MVC分层编写,本类是model层的MisUser的权限管理dao的接口,里面声明该项目中会用到的所有跟该权限管理需求相关的操作数据库的方法
// 该项目有 1.insertMisUser增加方法    2.deleteMisUser删除方法    3.updateMisUser修改方法    4.queryMisUser返回<List>的万能查找方法    5.queryMisUser返回MisUser对象的用ID查找的方法

import java.util.List;

import com.sm.framework.model.entity.MisUser;

public interface MisUserDAO {
   		// dao接口的命名是:所操作的表名+DAO
	// 各方法实现的详细逻辑思路之后在Impl实现类中阐述
	
	public boolean insertMisUser(MisUser misUser);                   // insertMisUser方法传入一个MisUser对象的实例进行新增

	public boolean deleteMisUser(String userId);                     // deleteMisUser方法传入一个字符型管理员id进行删除
 
	public boolean updateMisUser(MisUser misUser);                   // updateMisUser方法传入一个MisUser对象的实例根据其id进行修改

	public List<MisUser> queryMisUser(MisUser misUser);              // queryMisUser方法传入一个MisUser对象的实例根据哪个属性有值根据哪个属性进行查找

	public MisUser queryMisUser(String userId);                      // queryMisUser方法传入一个字符型管理员id进行查找返回查找到的类实例
	
}

model层的MisUser的权限管理接口的实现类(MisUserDAOImpl)

package com.sm.framework.model.dao.impl;

// 该项目采取MVC分层编写,本类是model层的dao的接口的实现类DAOImpl,实现dao接口中的方法

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.sm.framework.model.entity.MisUser;
import com.sm.framework.model.util.DBUtil;

public class MisUserDAOImpl implements MisUserDAO {
   
	
	@Override
	// insertMisUser增加方法的实现
	public boolean insertMisUser(MisUser misUser) {
   
		
		boolean flag = false;
		
		// 用MisUser实体类中的get方法获取传进来的MisUser实例的每个数据值
		String userId = misUser.getUserId();
		String userName = misUser.getUserName();
		String userPass = misUser.getUserPass();
		String roleId = misUser.getRoleId();
		
		// 编写SQL语句新增数据
		String sql = "insert into misUser(userId, userName, userPass, roleId)"
				+ "values('" + userId + "', '" + userName + "', '" + userPass + "', '" + roleId + "')";
		
		// 实例化DBUtil,使用里面的更新方法
		DBUtil dbUtil = new DBUtil();
		int n = dbUtil.update(sql);
		dbUtil.close();
		if(n > 0) {
   
			flag = true;
		}
		return flag;
	}
	
	@Override
	// deleteMisUser根据id进行删除的方法的实现
	public boolean deleteMisUser(String userId) {
   
		boolean flag = false;
		
		// 根据传进来的字符串id编写SQL语句删除
		String sql = "delete from misUser where userId = '" + userId + "'";
		
		// 实例化DBUtil,使用里面的更新方法
		DBUtil dbUtil = new DBUtil();
		int n = dbUtil.update(sql);
		dbUtil.close();
		if(n > 0) {
   
			flag = true;
		}
		return flag;
	}
	
	@Override
	// updateMisUser根据id进行修改其他数据的方法的实现
	public boolean updateMisUser(MisUser misUser) {
   
		
		boolean flag = false;
		
		// 用MisUser实体类中的get方法获取传进来的MisUser实例的每个数据值
		String userId = misUser.getUserId();
		String userName = misUser.getUserName();
		String userPass = misUser.getUserPass();
		String roleId = misUser.getRoleId();
		
		// 编写SQL语句根据id进行其他数据的修改
		String sql = "update misUser set userName = '" + userName + "', userPass = '" + userPass + "', roleId = '" + roleId + "'" ;
		
		// 实例化DBUtil,使用里面的更新方法
		DBUtil dbUtil = new DBUtil();
		int n = dbUtil.update(sql);
		dbUtil.close();
		if(n > 0) {
   
			flag = true;
		}
		return flag;
	}

	@Override
	// queryMisUser根据各种模糊数据进行查询的方法的实现
	public List<MisUser> queryMisUser(MisUser misUser) {
   
		// 该方法返回的是一个List集合,所以先进行范型为students类的实例化
		List<MisUser> list = new ArrayList<MisUser>();
		
		// 然后用MisUser类中的get方法获取各调用时输入的对象set数据
		String userId = misUser.getUserId();
		String userName = misUser.getUserName();
		String userPass = misUser.getUserPass();
		String roleId = misUser.getRoleId();
		
		// 运用拼接的方法编写SQL语句
		String select = "select * from misUser";      // 最开头的查询语句select
		String where = " where 1=1";                   // 这是判断条件where的语句,这里1=1的作用是这是一个恒成立的语句,所以无论如何都会成立,之后的所有语句都用and开头这样就不会出现第一个数据查找就以and开头的情况
		// 接下来是根据各数据是否存在的情况来拼接查询条件
		if(userId != null && userId.length() > 0) {
   
			where = where + " and userId like '%" + userId + "%'";
		}
		if(userName != null && userName.length() > 0) {
   
			where = where + " and userName like '%" + userName + "%'";
		}
		if(userPass != null && userPass.length() > 0) {
   
			where = where + " and userPass like '%" + userPass + "%'";
		}
		if(roleId != null && roleId.length() > 0) {
   
			where = where + " and roleId like '%" + roleId + "%'";
		}
		String sql = select + where;
		
		// 实例化DBUtil,使用里面的查询方法
		DBUtil dbUtil = new DBUtil();
		ResultSet rs = dbUtil.query(sql);
		try {
   
			while(rs.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aspiriln

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值