第七周(2)

本周的难点在于持久接口和实体的的转换,需要较强的思维逻辑。

比如这个持久接口

package com.project.dao;

import java.util.List;

import com.project.bean.EmployeeBean;

/**
* 员工持久接口
*
* @author zxiaoyuer
*
*/
public interface IEmployeeDao {

/**
* 登录业务。查询拥有用户名和密码的对象,如果没有返回空;
*
* @param emAccord
* 用户名
* @param pwd
* 密码
* @return 拥有用户名和密码的员工对象,如果没有找到返回null
*/
public EmployeeBean login(String emAccord, String pwd);

/**
* 员工添加
*
* @param bean
* 员工对象
*/

public void add(EmployeeBean bean);

/**
* 按id删除员工;
*
*
* @param id
* 员工id
*/
public void del(int id);

/**
* 根据id查找员工信息,链表查询职位名称,部门名称,
*
* @param id
* 员工id
* @return 员工对象
*/
public EmployeeBean findById(int id);

/**
* 根据员工id修改员工
* @param id
* 员工id
* @param phone
* 员工联系方式
* @param political
* 员工政治面貌
* @param posId 员工表外键
* 员工职位id
* @param deptId
* 员工部门id
*/
public void update(int id, String phone, String political, int posId, int deptId);

/**
* 动态条件查询员工,同时查询员工的部门名称和员工名称
* @param emName 按员工姓名查找
* @param grade 按员工学历查找
* @param posName 按工作职位查找
* @param deptName 按所在部门查找
* @return 员工集合
*/
public List<EmployeeBean> findByItem(String emName, String grade, String posName, String deptName);

/**
* 根据员工id修改密码
*
* @param emId
* 员工id
* @param newPwd
* 新密码
*/
public void updatePwd(int emId,String newPwd);
/**
* 按部门id查询该部门所有员工
* @param deptId 部门id
* @return 员工集合
*/
public List<EmployeeBean> findByDeptId(int deptId);
/**
* 查询指定id的学校,负责部门所有员工
* @param schoolID 学校id
* @return 员工集合
*/
public List<EmployeeBean> findBySchoolId(int schoolID);
}

而他的实现类应该这样书写

package com.project.dao.impl;

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

import com.project.bean.EmployeeBean;
import com.project.dao.IEmployeeDao;

/**
* 员工持久接口实现类
*
* @author zxiaoyuer
*
*/
public class EmployeeDaoImpl extends BaseDao implements IEmployeeDao {

public static void main(String[] args) {
EmployeeDaoImpl dao = new EmployeeDaoImpl();
// EmployeeBean bean=dao.login("zhanghao", "123456");
// System.out.println(bean);
// dao.add(new EmployeeBean("duanyu", "段誉", "男", Date.valueOf("1990-06-11"),
// "大理路", "17711050087", "本科", "民主党", "厨师", 3,"助理", 2, "财务部", "段誉头像",null));
// dao.del(11);
// List<EmployeeBean> list = dao.findByItem("王", "大", "理", "部");
// System.out.println(list);
// dao.update(1, "17712344321", "群众", 1, 1);
// EmployeeBean bean = dao.findById(1);
// System.out.println(bean);
// dao.updatePwd(1, "669996");
// List<EmployeeBean> list = dao.findByDeptId(2);
//// System.out.println(list);
List<EmployeeBean> list=dao.findBySchoolId(3);
System.out.println(list);
}

@Override
public EmployeeBean login(String emAccord, String pwd) {
EmployeeBean bean = null;
this.setConnection();

try {
ps = con.prepareStatement(
"SELECT e.*,p.pos_name,d.dept_name FROM t_employee e,t_position p,t_department d WHERE e.pos_id=p.id AND e.dept_id=d.id AND e.em_accord=? AND e.em_pwd=?");
ps.setString(1, emAccord);
ps.setString(2, pwd);
rs = ps.executeQuery();

if (rs.next())
{
bean = new EmployeeBean();
bean.setEmployeeId(rs.getInt("id"));
bean.setEmAccord(rs.getString("em_accord"));
bean.setEmName(rs.getString("em_name"));
bean.setEmPwd(rs.getString("em_pwd"));
bean.setEmSex(rs.getString("em_sex"));
bean.setEmBrithday(rs.getDate("em_birthday"));
bean.setEmAddress(rs.getString("em_address"));
bean.setEmPhone(rs.getString("em_phone"));
bean.setEmGrade(rs.getString("em_grade"));
bean.setEmPolitical(rs.getString("em_political"));
bean.setEmSpecialty(rs.getString("em_specialty"));
bean.setPosId(rs.getInt("pos_id"));
bean.setPosName(rs.getString("pos_name"));
bean.setDeptId(rs.getInt("dept_id"));
bean.setDeptName(rs.getString("dept_name"));
bean.setEmDate(rs.getDate("em_date"));
bean.setAccImage(rs.getString("em_imageName"));
return bean;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
return null;
}

@Override
public void add(EmployeeBean bean) {
this.setConnection();

try {
ps = con.prepareStatement(
"INSERT INTO t_employee(em_accord,em_name,em_pwd,em_sex,em_birthday,em_address,em_phone,em_grade,em_political,em_specialty,em_date,em_imageName,pos_id,dept_id)"
+ "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,? )");
ps.setString(1, bean.getEmAccord());
ps.setString(2, bean.getEmName());
ps.setString(3, bean.getEmPwd());
ps.setString(4, bean.getEmSex());
ps.setDate(5, bean.getEmBrithday());
ps.setString(6, bean.getEmAddress());
ps.setString(7, bean.getEmPhone());
ps.setString(8, bean.getEmGrade());
ps.setString(9, bean.getEmPolitical());
ps.setString(10, bean.getEmSpecialty());
ps.setDate(11, bean.getEmDate());
ps.setString(12, bean.getAccImage());
ps.setInt(13, bean.getPosId());
ps.setInt(14, bean.getDeptId());
ps.executeUpdate();
} catch (SQLException e) {

e.printStackTrace();
} finally {
this.closeConnection();
}

}

@Override
public void del(int id) {
this.setConnection();
try {
ps = con.prepareStatement("DELETE FROM t_employee WHERE id=?");
ps.setInt(1, id);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection();
}

}

@Override
public EmployeeBean findById(int id) {
EmployeeBean bean = null;
this.setConnection();

try {
ps = con.prepareStatement(
"SELECT e.*,p.pos_name,d.dept_name "
+ "FROM t_employee e,t_position p,t_department d "
+ "WHERE e.pos_id=p.id AND e.dept_id=d.id AND e.id=?");
ps.setInt(1, id);
rs = ps.executeQuery();
if (rs.next()) {
bean = new EmployeeBean();
bean.setEmployeeId(rs.getInt("id"));
bean.setEmAccord(rs.getString("em_accord"));
bean.setEmName(rs.getString("em_name"));
bean.setEmPwd(rs.getString("em_pwd"));
bean.setEmSex(rs.getString("em_sex"));
bean.setEmBrithday(rs.getDate("em_birthday"));
bean.setEmAddress(rs.getString("em_address"));
bean.setEmPhone(rs.getString("em_phone"));
bean.setEmGrade(rs.getString("em_grade"));
bean.setEmPolitical(rs.getString("em_political"));
bean.setEmSpecialty(rs.getString("em_specialty"));
bean.setPosId(rs.getInt("pos_id"));
bean.setPosName(rs.getString("pos_name"));
bean.setDeptId(rs.getInt("dept_id"));
bean.setDeptName(rs.getString("dept_name"));
bean.setEmDate(rs.getDate("em_date"));
bean.setAccImage(rs.getString("em_imageName"));
return bean;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
return null;
}

@Override
public void update(int id, String phone, String political, int posId, int deptId) {

this.setConnection();
try {
ps = con.prepareStatement("UPDATE t_employee "
+ "SET em_phone=?,em_political=?,pos_id=?,dept_id=? "
+ "WHERE id=? ");
ps.setString(1, phone);
ps.setString(2, political);
ps.setInt(3, posId);
ps.setInt(4, deptId);
ps.setInt(5, id);

ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
}

@Override
public List<EmployeeBean> findByItem(String emName, String grade, String posName, String deptName) {
List<EmployeeBean> list = new ArrayList<EmployeeBean>();
String sql = "SELECT e.*,p.pos_name,d.dept_name "
+ "FROM t_employee e,t_position p,t_department d "
+ "WHERE e.pos_id=p.id AND e.dept_id=d.id";
if (emName != null && emName.length() != 0) {
sql += " AND em_name LIKE ‘%" + emName + "%‘ ";
}
if (grade != null && grade.length() != 0) {
sql += " AND em_grade LIKE ‘%" + grade + "%‘ ";
}
if (posName != null && posName.length() != 0) {
sql += " AND p.pos_name LIKE ‘%" + posName + "%‘ ";
}
if (deptName != null && deptName.length() != 0) {
sql += " AND d.dept_name LIKE ‘%" + deptName + "%‘ ";
}
this.setConnection();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
EmployeeBean bean = new EmployeeBean();
bean.setEmployeeId(rs.getInt("id"));
bean.setEmAccord(rs.getString("em_accord"));
bean.setEmName(rs.getString("em_name"));
bean.setEmPwd(rs.getString("em_pwd"));
bean.setEmSex(rs.getString("em_sex"));
bean.setEmBrithday(rs.getDate("em_birthday"));
bean.setEmAddress(rs.getString("em_address"));
bean.setEmPhone(rs.getString("em_phone"));
bean.setEmGrade(rs.getString("em_grade"));
bean.setEmPolitical(rs.getString("em_political"));
bean.setEmSpecialty(rs.getString("em_specialty"));
bean.setPosId(rs.getInt("pos_id"));
bean.setPosName(rs.getString("pos_name"));
bean.setDeptId(rs.getInt("dept_id"));
bean.setDeptName(rs.getString("dept_name"));
bean.setEmDate(rs.getDate("em_date"));
bean.setAccImage(rs.getString("em_imageName"));
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
return list;
}

@Override
public void updatePwd(int emId, String newPwd) {
this.setConnection();

try {
ps = con.prepareStatement("UPDATE t_employee SET em_pwd=? WHERE id=?");
ps.setString(1, newPwd);
ps.setInt(2, emId);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeConnection();
}

}

@Override
public List<EmployeeBean> findByDeptId(int deptId) {
List<EmployeeBean> list = new ArrayList<EmployeeBean>();
this.setConnection();

try {
ps = con.prepareStatement(
"SELECT e.*,p.pos_name,d.dept_name "
+ "FROM t_employee e,t_position p,t_department d "
+ "WHERE e.pos_id=p.id AND e.dept_id=d.id AND d.id=? GROUP BY e.id;");
ps.setInt(1, deptId);
rs = ps.executeQuery();
while (rs.next()) {
EmployeeBean bean = new EmployeeBean();
bean.setEmployeeId(rs.getInt("id"));
bean.setEmAccord(rs.getString("em_accord"));
bean.setEmName(rs.getString("em_name"));
bean.setEmPwd(rs.getString("em_pwd"));
bean.setEmSex(rs.getString("em_sex"));
bean.setEmBrithday(rs.getDate("em_birthday"));
bean.setEmAddress(rs.getString("em_address"));
bean.setEmPhone(rs.getString("em_phone"));
bean.setEmGrade(rs.getString("em_grade"));
bean.setEmPolitical(rs.getString("em_political"));
bean.setEmSpecialty(rs.getString("em_specialty"));
bean.setPosId(rs.getInt("pos_id"));
bean.setPosName(rs.getString("pos_name"));
bean.setDeptId(rs.getInt("dept_id"));
bean.setDeptName(rs.getString("dept_name"));
bean.setEmDate(rs.getDate("em_date"));
bean.setAccImage(rs.getString("em_imageName"));
list.add(bean);
}
} catch (SQLException e) {

e.printStackTrace();
} finally {
this.closeConnection();
}

return list;
}

@Override
public List<EmployeeBean> findBySchoolId(int schoolID) {
List<EmployeeBean> list = new ArrayList<EmployeeBean>();
this.setConnection();
try {
ps = con.prepareStatement(
"SELECT*FROM t_addschool s,t_employee e,t_department d WHERE s.employee_id=e.id AND s.dept_id=d.id AND s.school_id=?");
ps.setInt(1, schoolID);
rs = ps.executeQuery();
while (rs.next()) {
EmployeeBean bean = new EmployeeBean();
bean.setEmployeeId(rs.getInt("id"));
bean.setEmAccord(rs.getString("em_accord"));
bean.setEmName(rs.getString("em_name"));
bean.setEmPwd(rs.getString("em_pwd"));
bean.setEmSex(rs.getString("em_sex"));
bean.setEmBrithday(rs.getDate("em_birthday"));
bean.setEmAddress(rs.getString("em_address"));
bean.setEmPhone(rs.getString("em_phone"));
bean.setEmGrade(rs.getString("em_grade"));
bean.setEmPolitical(rs.getString("em_political"));
bean.setEmSpecialty(rs.getString("em_specialty"));
bean.setDeptId(rs.getInt("dept_id"));
bean.setDeptName(rs.getString("dept_name"));
bean.setEmDate(rs.getDate("em_date"));
bean.setAccImage(rs.getString("em_imageName"));
list.add(bean);
}
} catch (SQLException e) {

e.printStackTrace();
} finally {
this.closeConnection();
}
return list;
}

}

时间: 2024-10-11 08:42:09

第七周(2)的相关文章

《七周七数据库》读书分享

# 七周七数据库 读书分享会第一期 2017.02.12 <七周七数据库> - Eric Redmond ## 预备知识 ACID:原子 一致 隔离 持久 CAP原则:一致性 可用性 分区容错性,在分布式环境下,至多只能同时满足其二 "小明,你的数据库作业呢?""我可以今天提交一半的作业,或者明天提交全部的作业,但无法在今天提交全部的作业.""...小明你给我滚出去!" 小知识点: * 原子性:原子性代表中间状态的透明性,想象从a账户

第七周周记

第七周周记: 本周完成了 1.学习了高数的隐函数的求导和多元函数的求导,复习了偏导数和全微分. 2.学习了数据结构的顺序表和链式表的动态存储和应用,以及如何写代码. 3.HTML的网页设计:关于’滚动页面’的页面设计和开始学习用全代码做网页. 4.学会了在配置中设置网关,用命令行写配置和绘制一张交换机网络拓扑图. 5.再读了一本外国著作. 希望能够做好眼前事儿好好复习准备半期考,把以前落下的知识补回,更刻苦一点学习早日把知识掌握好. 周数 专业学习目标 专业学习时间 新增代码量 博客发表量 人文

第七周的问题总结

第七周的问题总结 阅读完了52.53班所有同学的第七周学习总结(大部分同学都没怎么提问题),归纳如下: 5201 问题1:为什么用中间位做索引? 解答:参看415页习题6.12和416页旁注.高位的话,任何时刻高速缓存都只保存着一个块大小的数组内容. 问题2:在这一节中好几个概念很容易混淆,在做题时就会产生错误.区分如下: 5204 1.linux下移动文件.复制文件cp [file_name] [destination]剪切文件mv [file name] [destination]如下图所示

学习进度条 第七周

这周由于是团队作业而且是大作业形式,代码除了复习数据结构算法写的代码其他基本没有写,安卓的代码只是下下来源码自己在看,自己的任务一旦确定就开始着手完成安卓应用.   第七周 所花时间(H) 11 代码量(行) 220 博客量(篇) 2 了解到的知识点 安卓开发的一些技巧

《Linux内核分析》第七周学习总结 可执行程序的装载

第七周.可执行程序的装载 一.可执行程序是如何产生的? (1).c文件gcc汇编形成.s和.asm汇编代码: (2)汇编代码经过gas变成.o目标文件: (3)目标文件变成可执行文件: (4)可执行文件loader之后存储. 预处理:gcc –E –o hello.cpp hello.c –m32 编译:gcc –x cpp-output –S –o hello.s hello.cpp –m32 //编译为汇编代码 gcc –x assembler –c hello.s –o hello.o –

大一下学期第七周周记

算一算虚度了一个学期了现在已经是大一下学期第七周了,还是一样的浑浑噩噩度过每一天,学习不尽人意,人际交往也坎坎坷坷没什么实质性的进展,每天都呆在宿舍里,感觉以后程序员的生活就是这样吗!!想想太恐怖了,赶紧喝口水压压惊.说到最近的代码学习方面,我感觉学会了制作网页小游戏的代码很欣喜,虽然不是很熟悉,但总有一点起色了,希望以后能让自己学到更多..也希望自己能更努力!

Linux内核分析——第七周学习笔记20135308

第七周 可执行程序的装载 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么来的 C代码—>预处理—>汇编代码—>目标代码—>可执行文件 .asm汇编代码 .o目标码 a.out可执行文件 预处理负责把include的文件包含进来及宏替换工作. 2.目标文件的格式ELF (1)常见的ELF格式文件: (2)ABI——应用程序二进制接口 在目标文件中,他已经是二进制兼容,即适应二进制指令. (3)ELF中三种目标文件: 一个可重定位(relocatable)文件保存着代码和

《七周七语言:理解多种编程范型》のruby课后习题答案

本系列是<七周七语言>的课后习题答案.这本书不拘泥于语法细节,而是横向比较各种编程语言(非热门)之间的编程范式. 是本对编程觉悟能有所帮助的好书,这里就不多做介绍了,感兴趣的同学不妨去看一下. 不得不说,Ruby的风格很黑客. 1. 打印字符串"Hello, world." puts "Hello, world." 2. 在字符串“Hello, Ruby.”中,找出"Ruby."所在下标. puts "Hello, Ruby

2014025688 《嵌入式程序设计》第七周学习总结

2014025688(30) <嵌入式程序设计>第七周学习总结 有名管道 FIFO也称为有名管道,它是一种文件类型.FIFO简单理解,就是它能把两个不相关的进程联系起来,FIFO就像一个公共通道,解决了不同进程之间的"代沟".普通的无名管道只能让相关的进程进行沟通(比如父shell和子shell之间).FIFO严格遵循先进先出(first in first out),对管道及FIFO的读总是从开始处返回数据,对它们的写则把数据添加到末尾.它们不支持诸如lseek()等文件定

第七周学习进度表

时间 第七周 所花时间 10个小时左右 代码量 400行左右 博客量 3篇 了解到的知识点 Javabean的运用,web网页的跳转