package com.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.entity.Fyxx; import com.entity.User; import com.util.DBhelper; public class FyxxDao { // 删除方法 public int delete(String id) { int n = 0; Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try { con = DBhelper.getCon(); ps = con.prepareStatement("delete from fyxx where bh like '"+id+"'"); n = ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { DBhelper.myClose(con, ps, rs); } return n; } // 增加方法 public int add(Fyxx car) { int n = 0; Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try { con = DBhelper.getCon(); ps = con.prepareStatement( "insert into fyxx values(?,?,now(),?)"); ps.setString(1, car.getBh()); ps.setString(2, car.getLx()); ps.setFloat(3, car.getJe()); n = ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { DBhelper.myClose(con, ps, rs); } return n; } // 得到所有 public List<Fyxx> getAll(String mc) { List<Fyxx> ss = new ArrayList<Fyxx>(); ResultSet rs = null; PreparedStatement ps = null; Connection con = null; try { con = DBhelper.getCon(); ps = con.prepareStatement("select * from fyxx where lx like '%"+mc+"%'"); rs = ps.executeQuery(); while (rs.next()) { Fyxx ta = new Fyxx(); ta.setBh(rs.getString(1)); ta.setLx(rs.getString(2)); ta.setJfsj(rs.getDate(3)); ta.setJe(rs.getFloat(4)); ss.add(ta); } } catch (Exception e) { e.printStackTrace(); } finally { DBhelper.myClose(con, ps, rs); } return ss; } }
时间: 2023-06-13 22:08:59 浏览: 167
这是一个 FyxxDao 类,其中包含了一些对数据库 fyxx 表的操作方法,包括删除、增加和查询所有信息。该类使用了 JDBC API 连接数据库,并使用了 DBhelper 类中的方法来获取和关闭连接。在增加和删除方法中,使用了 PreparedStatement 对象来设置 SQL 语句中的参数,以避免 SQL 注入攻击。在查询所有信息方法中,使用了 List 集合来存储查询结果,并通过 while 循环遍历查询结果并将其封装成 Fyxx 对象。
相关问题
package com.rain.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import com.rain.bean.AdminBean; import com.rain.bean.ProblemBean; import com.rain.util.DBUtil; public class ProblemDao {
这是一个问题Dao类的代码,它负责与数据库进行交互,从而实现对问题数据的增删改查等操作。
首先,它导入了java.sql和java.util包,其中java.sql包提供了访问数据库的功能,而java.util包则提供了ArrayList集合的支持。
接着,它引入了两个实体类:AdminBean和ProblemBean,这些类用于封装问题和管理员的相关信息。
然后,它使用了一个名为DBUtil的工具类。这个工具类是用来获取数据库连接的,它封装了JDBC的一些操作,避免了代码的冗余。
最后,该类定义了一个名为ProblemDao的类,其中包含了一些方法,例如增加问题、删除问题、修改问题以及查询问题等。这些方法中,使用了预编译的SQL语句,避免了SQL注入攻击,并且使用了try-catch语句块来捕获可能出现的异常。
帮我优化下面这段代码:package com.ethan.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.ethan.model.Student; import com.ethan.util.DBUtil; public class StudentDao { private static Connection conn = DBUtil.getConn(); private static PreparedStatement pstmt = null; private static ResultSet rs = null; public static List<Student> findAllStudent() throws Exception { String sql = "select * from student"; pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); List<Student> list = new ArrayList<Student>(); while (rs.next()) { Student student = new Student(); student.setUserId(rs.getInt("userId")); student.setUserName(rs.getString("userName")); student.setSex(rs.getString("sex")); student.setBirthYear(rs.getString("birthYear")); student.setGrade(rs.getString("grade")); student.setCollegeName(rs.getString("collegeName")); list.add(student); } return list; } }
下面是对你提供的代码进行优化的建议:
1. 使用 try-with-resources 语句管理数据库连接和声明的资源,确保它们在使用后正确关闭,避免资源泄漏。
2. 使用 Java 8 的 Stream API 简化代码,将 ResultSet 中的数据映射到 Student 对象,并使用 Collectors.toList() 将结果收集到一个 List 中。
3. 将方法的异常抛出声明更加具体,这样调用方可以更好地处理异常。
优化后的代码如下所示:
```java
package com.ethan.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.ethan.model.Student;
import com.ethan.util.DBUtil;
public class StudentDao {
public static List<Student> findAllStudent() throws Exception {
String sql = "select * from student";
try (Connection conn = DBUtil.getConn();
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery()) {
List<Student> list = new ArrayList<>();
while (rs.next()) {
Student student = new Student();
student.setUserId(rs.getInt("userId"));
student.setUserName(rs.getString("userName"));
student.setSex(rs.getString("sex"));
student.setBirthYear(rs.getString("birthYear"));
student.setGrade(rs.getString("grade"));
student.setCollegeName(rs.getString("collegeName"));
list.add(student);
}
return list;
}
}
}
```
请注意,这只是一种优化方式,具体的优化方案可能因情况而异。你可以根据实际需求进行调整和修改。
阅读全文