package list_student;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
//小结
//添加、修改、删除 ——五部曲
//查询——六部曲
public class StudentImpl {
ArrayList<Student> list=new ArrayList<Student>();
//添加
public boolean insert(Student stu)throws Exception{
//1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.创建与数据库的连接
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=stu-manager"; //数据库名
String USER="sa"; //登录账号
String PASSWORD="123456"; //登录密码
Connection con=DriverManager.getConnection(URL, USER,PASSWORD);
//3.创建操作SQL语句的对象
Statement stmt=con.createStatement();
//4.执行SQL语句:增、删、改、查
String sql="insert into student values('"+stu.getId()+"','"+stu.getName()+"','"+stu.getSex()+"',"+stu.getAge()+",'"+stu.getMajor()+"')";
int n=stmt.executeUpdate(sql);//执行添加、修改或删除语句(省掉第5步)
//6.释放资源
stmt.close();
con.close();
if(n!=-1){
return true;
}else{
return false;
}
}
//修改
public boolean update(Student stu)throws Exception{
//1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.创建与数据库的连接
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=stu-manager"; //数据库名
String USER="sa"; //登录账号
String PASSWORD="123456"; //登录密码
Connection con=DriverManager.getConnection(URL, USER,PASSWORD);
//3.创建操作SQL语句的对象
Statement stmt=con.createStatement();
//4.执行SQL语句:增、删、改、查
String sql="update student set name='"+stu.getName()+"',sex='"+stu.getSex()+"',age="+stu.getAge()+",major='"+stu.getMajor()+"'where id='"+stu.getId()+"'";//需要大家写代码
int n=stmt.executeUpdate(sql);//执行添加、修改或删除语句(省掉第5步)
//6.释放资源
stmt.close();
con.close();
if(n!=-1){
return true;
}else{
return false;
}
}
//删除
public boolean delete(Student stu)throws Exception{
//1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.创建与数据库的连接
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=stu-manager"; //数据库名
String USER="sa"; //登录账号
String PASSWORD="123456"; //登录密码
Connection con=DriverManager.getConnection(URL, USER,PASSWORD);
//3.创建操作SQL语句的对象
Statement stmt=con.createStatement();
//4.执行SQL语句:增、删、改、查
String sql="delete from student where id='"+stu.getId()+"'";//需要大家写代码
int n=stmt.executeUpdate(sql);//执行添加、修改或删除语句(省掉第5步)
//6.释放资源
stmt.close();
con.close();
if(n!=-1){
return true;
}else{
return false;
}
}
//查询(按学号查询)
public Student findById(String id)throws Exception{
//1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.创建与数据库的连接
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=stu-manager"; //数据库名
String USER="sa"; //登录账号
String PASSWORD="123456"; //登录密码
Connection con=DriverManager.getConnection(URL, USER,PASSWORD);
//3.创建操作SQL语句的对象
Statement stmt=con.createStatement();
//4.执行SQL语句:增、删、改、查
String sql="select * from student where id='"+id+"'";//需要大家写代码
ResultSet rs=stmt.executeQuery(sql);//执行查询语句
//5.处理查询结果集(遍历)
Student stu=null;
while(rs.next()){//按学号查询,智慧查到1条记录,那么此处智慧循环1次
stu=new Student();
stu.setId(rs.getString("id"));
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setMajor(rs.getString("major"));
}
//6.释放资源
rs.close();
stmt.close();
con.close();
if(stu!=null){
return stu;
}else{
return null;
}
}
//查询(按姓名查询)
public List<Student> findByName(String name)throws Exception{
//1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.创建与数据库的连接
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=stu-manager"; //数据库名
String USER="sa"; //登录账号
String PASSWORD="123456"; //登录密码
Connection con=DriverManager.getConnection(URL, USER,PASSWORD);
//3.创建操作SQL语句的对象
Statement stmt=con.createStatement();
//4.执行SQL语句:增、删、改、查
String sql="select * from student where name='"+name+"'";//需要大家写代码
ResultSet rs=stmt.executeQuery(sql);//执行查询语句
//5.处理查询结果集(遍历)
ArrayList<Student> list=new ArrayList<Student>();
Student stu=null;
while(rs.next()){
stu=new Student();
stu.setId(rs.getString("id"));
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setMajor(rs.getString("major"));
list.add(stu);
}
//6.释放资源
rs.close();
stmt.close();
con.close();
return list;
}
//查询所有学生信息
public List<Student> findAll()throws Exception{
//1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.创建与数据库的连接
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=stu-manager"; //数据库名
String USER="sa"; //登录账号
String PASSWORD="123456"; //登录密码
Connection con=DriverManager.getConnection(URL, USER,PASSWORD);
//3.创建操作SQL语句的对象
Statement stmt=con.createStatement();
//4.执行SQL语句:增、删、改、查
String sql="select * from student";//需要大家写代码
ResultSet rs=stmt.executeQuery(sql);//执行查询语句
//5.处理查询结果集(遍历)
ArrayList<Student> list=new ArrayList<Student>();
Student stu=null;
while(rs.next()){
stu=new Student();
stu.setId(rs.getString("id"));
stu.setName(rs.getString("name"));
stu.setSex(rs.getString("sex"));
stu.setAge(rs.getInt("age"));
stu.setMajor(rs.getString("major"));
list.add(stu);
}
//6.释放资源
rs.close();
stmt.close();
con.close();
return list;
}
public int count()throws Exception{ //求人数
//1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.创建与数据库的连接
String URL="jdbc:sqlserver://localhost:1433;DatabaseName=stu-manager"; //数据库名
String USER="sa"; //登录账号
String PASSWORD="123456"; //登录密码
Connection con=DriverManager.getConnection(URL, USER,PASSWORD);
//3.创建操作SQL语句的对象
Statement stmt=con.createStatement();
//4.执行SQL语句:增、删、改、查
String sql="select count(*) from student";//需要大家写代码
ResultSet rs=stmt.executeQuery(sql);//执行查询语句
//5.处理查询结果集(遍历)
int n=0;
while(rs.next()){
n=rs.getInt(1);//下标是从1开始,表示提取第1列的值
}
//6.释放资源
rs.close();
stmt.close();
con.close();
return n;
}
//显示集合中所有学生信息
public void dispaly(List<Student> list){
for(int i=0;i<list.size();i++){
System.out.println("No." + (i+1));
System.out.println("-----------------------------------");
System.out.println("学号:"+list.get(i).getId());
System.out.println("姓名:"+list.get(i).getName());
System.out.println("性别:"+list.get(i).getSex());
System.out.println("年龄:"+list.get(i).getAge());
System.out.println("专业:"+list.get(i).getMajor());
System.out.println();
}
System.out.println("----------------------------------------");
System.out.println("小计:\t" + list.size() + " 人");
}
//显示指定学生的信息
public void show(Student stu) {
System.out.println("学生详细信息:");
System.out.println("-----------------------------------");
System.out.println("病案号:\t" + stu.getId());
System.out.println("患者姓名:\t" + stu.getName());
System.out.println