![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5f78c1fe29e95224825dd1103fbc6b5e.png)
优化前的
package itheima02.deo;
import itheima02.domain.Student;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.SimpleTimeZone;
public class StudentDaoImpI implements StudentDao{
@Override
public ArrayList<Student> findAll() {
ArrayList<Student> list = new ArrayList<>();
Connection con=null;
Statement statement=null;
ResultSet resultSet =null;
try
{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost:3306/db14?useUnicode=true&characterEncoding=utf-8", "root", "root");
statement = con.createStatement();
String sql = "select * from student";
resultSet =statement.executeQuery(sql);
while (resultSet.next())
{
Integer sid = resultSet.getInt("sid");
String name = resultSet.getString("NAME");
Integer age = resultSet.getInt("age");
Date birthday= resultSet.getDate("birthday");
Student student = new Student(sid,name,age,birthday);
list.add(student);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if(con!=null)
{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null)
{
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(resultSet!=null)
{
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
@Override
public Student findById(Integer id) {
Student student = new Student();
Connection con=null;
Statement statement=null;
ResultSet resultSet =null;
try
{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost:3306/db14?useUnicode=true&characterEncoding=utf-8", "root", "root");
statement = con.createStatement();
String sql = "select * from student where sid='"+id+"'";
resultSet =statement.executeQuery(sql);
while (resultSet.next())
{
Integer sid = resultSet.getInt("sid");
String name = resultSet.getString("NAME");
Integer age = resultSet.getInt("age");
Date birthday= resultSet.getDate("birthday");
student.setSid(sid);
student.setName(name);
student.setAge(age);
student.setBirthday(birthday);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if(con!=null)
{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null)
{
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(resultSet!=null)
{
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return student;
}
@Override
public int insert(Student student) {
Connection con=null;
Statement statement=null;
int result =0;
try
{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost:3306/db14?useUnicode=true&characterEncoding=utf-8", "root", "root");
statement = con.createStatement();
Date date=student.getBirthday();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String birthday = simpleDateFormat.format(date);
String sql = "insert into student values('"+student.getSid()+"','"+student.getName()+"','"+student.getAge()+"','"+birthday+"') ";
result=statement.executeUpdate(sql);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if(con!=null)
{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return result;
}
@Override
public int update(Student student) {
Connection con=null;
Statement statement=null;
int result =0;
try
{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost:3306/db14?useUnicode=true&characterEncoding=utf-8", "root", "root");
statement = con.createStatement();
Date date=student.getBirthday();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String birthday = simpleDateFormat.format(date);
String sql = "update student set sid='"+student.getSid()+"',name ='"+student.getName()+"'," +
"age='"+student.getAge()+"',birthday='"+birthday+"'where sid='"+student.getSid()+"'";
result=statement.executeUpdate(sql);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if(con!=null)
{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return result;
}
@Override
public int delete(Integer id) {
Connection con=null;
Statement statement=null;
int result =0;
try
{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost:3306/db14?useUnicode=true&characterEncoding=utf-8", "root", "root");
statement = con.createStatement();
String sql = "delete from student where sid='"+id+"'";
result=statement.executeUpdate(sql);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if(con!=null)
{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return result;
}
}
优化后代码
package itheima02.deo;
import itheima02.domain.Student;
import itheima02.utils.JDBCUtils;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.SimpleTimeZone;
public class StudentDaoImpI implements StudentDao{
@Override
public ArrayList<Student> findAll() {
ArrayList<Student> list = new ArrayList<>();
Connection con=null;
Statement statement=null;
ResultSet resultSet =null;
try
{
con= JDBCUtils.getConnection();
statement = con.createStatement();
String sql = "select * from student";
resultSet =statement.executeQuery(sql);
while (resultSet.next())
{
Integer sid = resultSet.getInt("sid");
String name = resultSet.getString("NAME");
Integer age = resultSet.getInt("age");
Date birthday= resultSet.getDate("birthday");
Student student = new Student(sid,name,age,birthday);
list.add(student);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
JDBCUtils.close(con,statement,resultSet);
}
return list;
}
@Override
public Student findById(Integer id) {
Student student = new Student();
Connection con=null;
Statement statement=null;
ResultSet resultSet =null;
try
{
con= JDBCUtils.getConnection();
statement = con.createStatement();
String sql = "select * from student where sid='"+id+"'";
resultSet =statement.executeQuery(sql);
while (resultSet.next())
{
Integer sid = resultSet.getInt("sid");
String name = resultSet.getString("NAME");
Integer age = resultSet.getInt("age");
Date birthday= resultSet.getDate("birthday");
student.setSid(sid);
student.setName(name);
student.setAge(age);
student.setBirthday(birthday);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
JDBCUtils.close(con,statement,resultSet);
}
return student;
}
@Override
public int insert(Student student) {
Connection con=null;
Statement statement=null;
int result =0;
try
{
con= JDBCUtils.getConnection();
statement = con.createStatement();
Date date=student.getBirthday();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String birthday = simpleDateFormat.format(date);
String sql = "insert into student values('"+student.getSid()+"','"+student.getName()+"','"+student.getAge()+"','"+birthday+"') ";
result=statement.executeUpdate(sql);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
JDBCUtils.close(con,statement);
}
return result;
}
@Override
public int update(Student student) {
Connection con=null;
Statement statement=null;
int result =0;
try
{
con= JDBCUtils.getConnection();
statement = con.createStatement();
Date date=student.getBirthday();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String birthday = simpleDateFormat.format(date);
String sql = "update student set sid='"+student.getSid()+"',name ='"+student.getName()+"'," +
"age='"+student.getAge()+"',birthday='"+birthday+"'where sid='"+student.getSid()+"'";
result=statement.executeUpdate(sql);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
JDBCUtils.close(con,statement);
}
return result;
}
@Override
public int delete(Integer id) {
Connection con=null;
Statement statement=null;
int result =0;
try
{
con= JDBCUtils.getConnection();
statement = con.createStatement();
String sql = "delete from student where sid='"+id+"'";
result=statement.executeUpdate(sql);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
JDBCUtils.close(con,statement);
}
return result;
}
}