/**
 * 学生dao层
 */
package com.qingmang.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.qingmang.dao.IStudentDao.IStudentDao;
import com.qingmang.domain.Student;
import com.qingmang.utils.JdbcUtil;

/**
 * @author administrator
 * 
 */
public class StudentDao implements IStudentDao {

private Connection conn = null;
private PreparedStatement pstmt = null;
private Statement stmt = null;
private ResultSet rs = null;

/*
* (non-Javadoc) 
* 根据 名字 得到学生对象
* @see com.qingmang.dao.inter.IUserDao#getByName(java.lang.String)
*/
public Student getByName(String name) {
Student student = null;

try {
conn = JdbcUtil.getConnection();
String sql = "select * from student where name=?";
pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setString(1, name);

rs = pstmt.executeQuery();
if (rs.next()) {
Student stu = new Student();
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setGrade(rs.getInt("grade"));

}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
try {
JdbcUtil.close(conn, pstmt, rs);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
return student;
}

/*
* (non-Javadoc) 
* 得到所有学生
* @see com.qingmang.dao.inter.IStudentDao#getAll()
*/
public List<Student> getAll() {
List<Student> list = new ArrayList<Student>();

try {
conn = JdbcUtil.getConnection();
String sql = "select * from student";
pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();
while (rs.next()) {
Student stu = new Student();

stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setGrade(rs.getInt("grade"));

list.add(stu);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
try {
JdbcUtil.close(conn, pstmt, rs);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}

return list;
}

/*
* (non-Javadoc)
* 添加学生信息
* @see com.qingmang.dao.IStudentDao#addStudent(com.qingmang.domain.Student)
*/
@Override
public boolean addStudent(Student stu) {
boolean flag = false;

try {
conn = JdbcUtil.getConnection();
String sql = "INSERT INTO student " + "(id,name,sex,"
+ "age,grade) " + "VALUES (?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, stu.getId());
pstmt.setString(2, stu.getName());
pstmt.setString(3, stu.getSex());
pstmt.setInt(4, stu.getAge());
pstmt.setInt(5, stu.getGrade());

int count = pstmt.executeUpdate();
if (count > 0)
flag = true;

} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
} finally {
try {
JdbcUtil.close(conn, pstmt);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
return flag;
}

/*
* (non-Javadoc)
* 根据id删除学生信息
* @see com.qingmang.dao.IStudentDao#delStudent(int)
*/
@Override
public boolean delStudent(String id) {
boolean flag = false;
try {
// 连接数据库
conn = JdbcUtil.getConnection();

// 静态的sql语句
String sql = "delete from student where id='" + id + "'";
// 得到Statement对象
pstmt = conn.prepareStatement(sql);

// 执行sql语句(结果和数据库一样,)
int count = pstmt.executeUpdate();
if (count >= 1) {
flag = true;
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
try {
JdbcUtil.close(conn, pstmt);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
return flag;
}

/*
* (non-Javadoc)
* 修改学生信息
* @see
* com.qingmang.dao.IStudentDao#updateStudent(com.qingmang.domain.Student)
*/
@Override
public boolean updateStudent(Student stu) {
boolean falg = false;
try {
conn = JdbcUtil.getConnection();
String sql = "update student set name=?,sex=?,age=?,grade=? where id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, stu.getName());
pstmt.setString(2, stu.getSex());
pstmt.setInt(3, stu.getAge());
pstmt.setInt(4, stu.getGrade());
pstmt.setInt(5, stu.getId());

pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
try {
JdbcUtil.close(conn, pstmt);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}

}
return falg;

}

/*
* (non-Javadoc) 
* 根据id查询学生信息,并返回学生对象
* @see com.qingmang.dao.IStudentDao#findStudentById(int)
*/
@Override
public Student findStudentById(int id) {
// 创建user的null
Student stu = null;
try {
conn = JdbcUtil.getConnection();
String sql = "select * from student where id=?";
pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, id);

rs = pstmt.executeQuery();
if (rs.next()) {
stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setGrade(rs.getInt("grade"));

}

} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
} finally {
try {
JdbcUtil.close(conn, pstmt);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}

return stu;
}

/*
* (non-Javadoc) 
* 根据关键字查询学生信息,并返回学生集合
* @see com.qingmang.dao.IStudentDao#getByKey(java.lang.String)
*/
@Override
public List<Student> getByKey(String key) {
List<Student> list = new ArrayList<Student>();
try {
conn = JdbcUtil.getConnection();
String sql = "";
sql = "select * from student where 1=1";

/* 此处where 1=1 妙处在于在之后加条件时直接用and并列条件即可;也有一个在jsp页面多条件查询的方法,但需用到没学过的知识 */

if (key != null && !"".equals(key)) {
sql += " and name like '" + key + "%'";
}

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);
while (rs.next()) {
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setGrade(rs.getInt("grade"));

list.add(stu);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
try {
JdbcUtil.close(conn, pstmt, rs);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
return list;
}

}

基于mysql,servlet,jsp的学生信息管理系统,dao层相关推荐

  1. jsp mysql简单仓库信息管理系统_基于jsp+mysql的JSP简单学生信息管理系统

    运行环境: 最好是java jdk 1.8,我们在这个平台上运行的.其他版本理论上也可以. IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 7.x, ...

  2. 基于java eclipse+jsp+mysql+servlet+Spring的学生信息管理系统基础版

    项目背景 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分.特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的 ...

  3. py222基于python+django的高校学生信息管理系统

    开发语言:Python 编号:py222基于python+django的高校学生信息管理系统#毕业设计 python框架:django 软件版本:python3.7/python3.8 数据库:mys ...

  4. 基于jsp的教师科研工作量_基于jsp+mysql的JSP教师科研信息管理系统

    运行环境: jdk 1.8 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可,理论上Tomcat版本不是太老都可以. ...

  5. JSP+SQL基于JSP的学生信息管理系统(源代码+论文+答辩PPT)

    随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长.面对如此庞大的信息量,开发学生信息管理系统来提高学生管理工作的效率就成为必然.通过该系统,可以做到信息的规范管理.科学统计和快速 ...

  6. 基于GUI+MySQL技术的简单学生信息管理系统

    简单的学生信息管理系统 1. 需求分析 1.1 系统总体分析 1.2 用户系统分析 2. 课题及任务功能描述 2.1 课题研究背景 2.2 功能描述 3. 总体设计 3.1 系统总体设计 3.2 系统 ...

  7. 基于python的师生一体化学生信息管理系统——python期末设计!!!

    系统介绍 该系统使用python语言进行程序设计,设计的主要内容可概括为以下几点:师生一体化学生信息管理系统,首先由管理员(教师)增加.删除.修改.查找.导出学生信息(excel表格的形式),再有学生 ...

  8. MySQL课程设计——简易学生信息管理系统

    学生信息管理系统 一 分析 1.1 系统需求分析 1.1.1 业务分析 1.1.2 分析系统 1.2 功能模块 1.2.1 学生模块 1.2.2 教师模块 二 构建模型 2.1 概念模型:ERP模型 ...

  9. 基于JAVA实现的简易学生信息管理系统(附源码)

    一.前言 最近在学习JAVA,这几天跟着网上的视频学完基础知识之后,做了一个学生信息管理系统,写的比较普通,没太大亮点,希望可以给初学者一些参考经验,另外,如有不恰当的地方还请各位指正! 学生信息管理 ...

最新文章

  1. .net core在vs开发环境下脱离iis运行
  2. 小项目--bank1
  3. web公选课js基础Part1
  4. 数据“被”覆盖有假象,SQL数据库恢复终极绝招(数据恢复高级技术)
  5. jboss-AS目录结构了解(资料摘取)
  6. 可能存在无限递归_你为什么学不会递归?读完这篇文章轻松理解递归算法
  7. flinksql获取系统当前时间搓_FlinkSQL 动态加载 UDF 实现思路
  8. 无人驾驶汽车遭遇AI路障
  9. leetcode 杨辉三角 III
  10. 6.1儿童节特别礼物,mysql同步失败
  11. JS判断字符串变量是否含有某个字串的实现方法
  12. 2020年到2021年计算机技术,2020年读计算机技术专业好不好
  13. 卷积神经网络中的参数计算(转载)
  14. 【运维】安装Ghost镜像系统步骤
  15. 虚拟机Linux服务器网络设置
  16. 出口商贸易融资工具:出口保理
  17. Hadoop2.x Yarn作业提交(客户端)
  18. 解决thinkbook14p 的windows11系统关机或者睡眠时间长扩展坞无法加载网口和hdmi接口
  19. 计算请假时间(不算节假日)
  20. 利用Python实现scissors-rock-paper-lizard-Spock小游戏

热门文章

  1. IO流全面解析(含NIO部分说明)
  2. Android应用OneAPM测评
  3. mint-ui font icon
  4. 智慧物流主题汇总(附链接)
  5. java设计模式1,单一职责原则
  6. STM32CUBEMX(13)--SPI,W25Q128外部Flash移植
  7. 07.爱芳地产项目小程序全栈项目经验(已上线)
  8. CLUECorpus2020: A Large-scale Chinese Corpus for Pre-training Language Model
  9. 安装habor并配置阿里云ssl证书
  10. 软件开发,标准化流水线式开发的实施构想