package com.st.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.st.entity.Student;
import com.st.utils.JdbcUtils;
/**
-
在本类中,完成增删改查
/
public class StudentDao {
/*- 三个常用对象
*/
private ResultSet rs; // 查询所有返回的结果集
private PreparedStatement ps; // 发送和执行sql语句
private Connection conn; // 数据库发送对象
/**
-
通过编号添加对应学生信息
-
@param s
-
@return
*/
public boolean addStudent(Student s) {
String sql = "insert into student values(?,?,?)"; // ?相当于占位符
try {
// 1.新建数据库连接
conn = JdbcUtils.getConnection();
// 2.得到prepareStatement
ps = conn.prepareStatement(sql);
// 3.对占位符赋值
ps.setInt(1, s.getStuid());
ps.setString(2, s.getStuname());
ps.setString(3, s.getStusex());// 4.sql语句的执行 int n = ps.executeUpdate(); // n 表示新增数据最终成功的数据条数 if (n > 0) { return true; }
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.close(null, ps, conn); // 5.资源的关闭
}
return false;
}
/**
-
通过编号删除对应学生信息
-
@param id
-
@return
*/
public boolean delStudent(int id) {
String sql = "delete from student where id=?";
try {
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
int n = ps.executeUpdate();
if (n > 0) {
return true;
}} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.close(null, ps, conn);
}return false;
}
/**
-
通过编号修改学生的姓名和性别
-
@param id
-
@param name
-
@param sex
-
@return
*/
public boolean updateStudent(int id, String name, String sex) {
String sql = "update student set name=?,sex=? where id=?";
try {
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
// 占位符设置
ps.setString(1, name);
ps.setString(2, sex);
ps.setInt(3, id);
int n = ps.executeUpdate();
if (n > 0) {
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.close(null, ps, conn);
}return false;
}
public ArrayList
getAllStudent() {
String sql = "select * from student";
ArrayListaList = new ArrayList<>();
try {
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(); // 查询的执行结果,此时全查询是一个结果集,里面包含很多个学生对象
while (rs.next()) {
int id = rs.getInt(1); // 取出学生的id
String name = rs.getString(2); // name
String sex = rs.getString(3); // sex
aList.add(new Student(id, name, sex));// 将取出的学生的属性创建为对象后存放到集合中
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.close(rs, ps, conn);
}return aList;
}
/**
- 条件查询
*/
public ArrayList
getAllStudentSex(String sex) {
String sql = "select * from student where sex=?";
ArrayListaList = new ArrayList<>();
try {
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
ps.setString(1, sex); // 占位符设置
rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt(1); // 取出学生的id
String name = rs.getString(2); // name
String s = rs.getString(3); // s
aList.add(new Student(id, name, s)); // 将取出的学生的属性创建为对象后存放到集合中
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.close(rs, ps, conn);
}
return aList;}
} - 三个常用对象