package com.bao.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.bao.dao.IStudentDao;
import com.bao.domain.Student;
import com.bao.utils.JDBCUtils;
/**
* 实现接口的增删改查的方法 包括查找所有,根据学号查找,根据姓名查找,增加一个学生,修改一个学生,删除一个学生
*
*/
public class StudentDaoJdbcImpl implements IStudentDao {
/**
* 查询所有学生
*/
public List<Student> findAll() {
Connection conn = null;// 链接数据库
PreparedStatement ps = null;// 预编译
ResultSet rs = null;// 结果集--
List<Student> allStu = null;// 储存获得的结果到列表中
try {
conn = JDBCUtils.getConnection();// 获得数据库链接
String sql = "select * from t_student";// SQL语句
ps = conn.prepareStatement(sql);// 用SQL语句实例化prepareStatement
rs = ps.executeQuery();// 执行查询并获得结果集
while (rs.next()) {// 如果结果不为空
if (allStu == null) {// 只需要第一次实例化,
allStu = new ArrayList<Student>();// 用array实例化
}
Student s = new Student();// new一个student实体类用于接收结果集
s.setId(rs.getInt("id"));// 取得id并写入student实体类
s.setName(rs.getString("name"));// 取得name并写入student实体类
s.setMyclass(rs.getString("myclass"));// 取得myclass并写入student实体类
s.setScore(rs.getDouble("score"));// 取得socre并写入student实体类
allStu.add(s);// 依次添加到集合中
}
} catch (SQLException e) {
System.err.println("查询所有学生失败,请查看具体原因!");
e.printStackTrace();
}
return allStu;
}
/**
* 根据班级查询,返回一个学生列表
*/
public List<Student> findByClass(String myclass) {
Connection conn = null;// 链接数据库
PreparedStatement ps = null;// 预编译
ResultSet rs = null;// 结果集--
List<Student> allStu = null;// 储存获得的结果到列表中
try {
conn = JDBCUtils.getConnection();// 获得数据库链接
String sql = "select * from t_student where myclass like ";// SQL语句
sql = sql + "'%"+myclass+"%'";//支持了模糊查询
ps = conn.prepareStatement(sql);// 用SQL语句实例化prepareStatement
//ps.setString(1, "'%"+myclass+"%'");// 传入的myclass
rs = ps.executeQuery();// 执行查询并获得结果集
while (rs.next()) {// 如果结果不为空
if (allStu == null) {// 只需要第一次实例化,
allStu = new ArrayList<Student>();// 用array实例化
}
Student s = new Student();// new一个student实体类用于接收结果集
s.setId(rs.getInt("id"));// 取得id并写入student实体类
s.setName(rs.getString("name"));// 取得name并写入student实体类
s.setMyclass(rs.getString("myclass"));// 取得myclass并写入student实体类
s.setScore(rs.getDouble("score"));// 取得socre并写入student实体类
allStu.add(s);// 依次添加到集合中
}
} catch (SQLException e) {
System.err.println("根据班级查询学生失败,请查看具体原因!");
e.printStackTrace();
}
return allStu;
}
/**
* 根据分数查询,返回一个学生列表
*/
public List<Student> findByScore(int score) {
Connection conn = null;// 链接数据库
PreparedStatement ps = null;// 预编译
ResultSet rs = null;// 结果集--
List<Student> allStu = null;// 储存获得的结果到列表中
try {
conn = JDBCUtils.getConnection();// 获得数据库链接
String sql = "select * from t_student where score < ?";// SQL语句
ps = conn.prepareStatement(sql);// 用SQL语句实例化prepareStatement
ps.setInt(1, score);// 传入的score
rs = ps.executeQuery();// 执行查询并获得结果集
while (rs.next()) {// 如果结果不为空
if (allStu == null) {// 只需要第一次实例化,
allStu = new ArrayList<Student>();// 用array实例化
}
Student s = new Student();// new一个student实体类用于接收结果集
s.setId(rs.getInt("id"));// 取得id并写入student实体类
s.setName(rs.getString("name"));// 取得name并写入student实体类
s.setMyclass(rs.getString("myclass"));// 取得myclass并写入student实体类
s.setScore(rs.getDouble("score"));// 取得socre并写入student实体类
allStu.add(s);// 依次添加到集合中
}
} catch (SQLException e) {
System.err.println("根据分数查询学生失败,请查看具体原因!");
e.printStackTrace();
}
return allStu;
}
/**
* 根据学号查询学生
*/
public Student findById(int sid) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Student stu = null;
try {
conn = JDBCUtils.getConnection();
String sql = "select * from t_student where id = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, sid);// 传入的id
rs = ps.executeQuery();
if (rs.next()) {
stu = new Student();
int id = rs.getInt("id");
String name = rs.getString("name");
String myclass = rs.getString("myclass");
double socre = rs.getDouble("score");
stu.setId(id);
stu.setName(name);
stu.setMyclass(myclass);
stu.setScore(socre);
}
} catch (SQLException e) {
System.err.println("根据学号查询学生失败,请查看具体原因!");
e.printStackTrace();
}
return stu;// 返回一个学生
}
/**
* 根据姓名查询学生
*/
public List<Student> findByName(String sname) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<Student> allStu = null;
try {
conn = JDBCUtils.getConnection();
String sql = "select * from t_student where name like ";
sql = sql + "'%"+sname+"%'";//支持了模糊查询
ps = conn.prepareStatement(sql);
//ps.setString(1, sname);
rs = ps.executeQuery();
while (rs.next()) {// 如果结果不为空
if (allStu == null) {// 只需要第一次实例化,
allStu = new ArrayList<Student>();// 用array实例化
}
Student s = new Student();// new一个student实体类用于接收结果集
s.setId(rs.getInt("id"));// 取得id并写入student实体类
s.setName(rs.getString("name"));// 取得name并写入student实体类
s.setMyclass(rs.getString("myclass"));// 取得myclass并写入student实体类
s.setScore(rs.getDouble("score"));// 取得socre并写入student实体类
allStu.add(s);// 依次添加到集合中
}
} catch (SQLException e) {
System.err.println("根据姓名查询学生失败,请查看具体原因!");
e.printStackTrace();
}
return allStu;
}
/**
* 增加一个学生,传入姓名,班级,成绩,学号是自增的
*/
public int add(Student student) {
Connection conn = null;
PreparedStatement ps = null;
int result = 0;
try {
conn = JDBCUtils.getConnection();
String sql = "insert into t_student(name,myclass,score) values(?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, student.getName());
ps.setString(2, student.getMyclass());
ps.setDouble(3, student.getScore());
result = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
/**
* 修改一个学生 根据传入的学生类,的学号,修改其他的信息(学号是主键)
*/
public int modify(Student student) {
Connection conn = null;
PreparedStatement ps = null;
int result = 0;
try {
conn = JDBCUtils.getConnection();
String sql = "update t_student set name=?,myclass=?,score=? where id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, student.getName());
ps.setString(2, student.getMyclass());
ps.setDouble(3, student.getScore());
ps.setInt(4, student.getId());
result = ps.executeUpdate();
} catch (SQLException e) {
System.err.println("添加学生失败,请查看具体原因!");
e.printStackTrace();
}
return result;
}
/**
* 删除一个学生.根据传入的学号查找
*/
public int delete(int sid) {
Connection conn = null;
PreparedStatement ps = null;
int result = 0;
try {
conn = JDBCUtils.getConnection();
String sql = "delete from t_student where id = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, sid);
result = ps.executeUpdate();
} catch (SQLException e) {
System.err.println("删除�
没有合适的资源?快使用搜索试试~ 我知道了~
基于JSP+Servlet+MySQL实现的学生信息管理系统.zip
共741个文件
cpt:537个
svg:39个
frm:33个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 11 浏览量
2023-08-10
23:28:49
上传
评论
收藏 43.99MB ZIP 举报
温馨提示
用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。用Java写的项目,项目真实可靠,可以直接运行,欢迎下载使用。
资源推荐
资源详情
资源评论
收起资源包目录
基于JSP+Servlet+MySQL实现的学生信息管理系统.zip (741个子文件)
product.frm.bak 51KB
Commit3.class 3KB
gauthority.class 3KB
ParamSAPDataTest.class 3KB
commit1.class 3KB
Commit3$1.class 3KB
commit1$1.class 2KB
ExceltoCpt.class 1KB
StringCat.class 941B
StartFRDesigner.class 447B
WltRS.class 182B
.classpath 507B
org.eclipse.wst.common.component 560B
org.eclipse.wst.jsdt.ui.superType.container 49B
HyperlinkSwitchingSheet.cpt 6.14MB
DataVisualization.cpt 1.2MB
sheets.cpt 745KB
SwitchingDimension.cpt 464KB
Sparklines.cpt 313KB
ComplexBills.cpt 248KB
IOS.cpt 205KB
ContinuousPrint.cpt 152KB
heat.cpt 151KB
Infographic.cpt 142KB
EVA.cpt 126KB
dupont.cpt 109KB
DataAnalysis.cpt 106KB
liveup.cpt 102KB
Bathory.cpt 97KB
Z-score model.cpt 97KB
F-score model.cpt 96KB
Balance.cpt 95KB
index.cpt 88KB
AggregateReport.cpt 84KB
pallip.cpt 84KB
tree.cpt 83KB
tree_chart.cpt 82KB
contract.cpt 80KB
AssetLiabilitieEquityt.cpt 77KB
FinereportTemplate.cpt 66KB
Slip.cpt 64KB
DropDownTree.cpt 62KB
detail.cpt 52KB
productivity.cpt 51KB
Taoda1.cpt 50KB
Taoda.cpt 50KB
NationalFlag.cpt 49KB
Column.cpt 46KB
ColumnChartOfPicture.cpt 45KB
product.cpt 42KB
orders.cpt 42KB
Assets.cpt 40KB
Customer.cpt 39KB
cashflow.cpt 38KB
profitstructure.cpt 37KB
AssetLiabilitieEquitys.cpt 37KB
staffchanges.cpt 37KB
erp.cpt 36KB
Authority_Content2.cpt 36KB
Online.cpt 34KB
erp.cpt 33KB
Backfill.cpt 32KB
Multifill.cpt 31KB
train.cpt 31KB
product.cpt 29KB
hy1.cpt 29KB
query_custom.cpt 29KB
profitstructure (2).cpt 28KB
Product&Cost.cpt 27KB
hy1.cpt 27KB
stuff.cpt 27KB
ConditionGroup.cpt 26KB
suguo.cpt 26KB
connect.cpt 26KB
RelateChart1.cpt 26KB
Radarchart3.cpt 25KB
Authority_Content1.cpt 25KB
Online.cpt 25KB
BubbleChart.cpt 24KB
ReceivablePayable.cpt 24KB
DifferentPagePrint.cpt 24KB
RepeatHeader.cpt 24KB
master-sub.cpt 24KB
MultiSheet1.cpt 24KB
MultiSheet2.cpt 24KB
selectdelete.cpt 24KB
hy1.cpt 23KB
NewColumnTrendLine.cpt 23KB
Chain.cpt 23KB
MultiSheet.cpt 23KB
emploree旧的数据删除.cpt 22KB
Freeze.cpt 22KB
worldmap.cpt 22KB
DailyReport.cpt 22KB
ParagraphDetails.cpt 22KB
AssetLiabilitieEquity.cpt 22KB
emploree填报.cpt 22KB
cashflow1.cpt 21KB
Columnrange.cpt 21KB
资产管理旧的数据删除.cpt 21KB
共 741 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
c++服务器开发
- 粉丝: 3181
- 资源: 4461
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 曼哈顿矢量边界行政边界shp
- #3综合设计资料给学生.rar
- 软包电芯自动上料&焊接设备sw18全套技术资料100%好用.zip
- 砂带打磨机二坐标移动sw20可编辑全套技术资料100%好用.zip
- 烧烤烙印机sw15可编辑全套技术资料100%好用.zip
- Hadoop_2024_Fa.zip
- 开中我_开中我.开中我.apk
- 软包锂电池自动上料设备sw18可编辑全套技术资料100%好用.zip
- 湿巾纸包装袋椭圆型盖贴合设备x_t全套技术资料100%好用.zip
- 升降料仓(含DFM)sw17可编辑全套技术资料100%好用.zip
- 手持式超声波切布ug12全套技术资料100%好用.zip
- 手机标签自动贴合sw17可编辑全套技术资料100%好用.zip
- 手机电池漏液检测设备sw18全套技术资料100%好用.zip
- 手机电池上料裁切设备sw18可编辑全套技术资料100%好用.zip
- 手机键冲切机x_t全套技术资料100%好用.zip
- 手机电池压合机sw18全套技术资料100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功