非常有用的jdbc操作数据库语句,记录下来,以方便以后的查询。
public class PersonDao { // 增加操作 public void insert(Person person) throws Exception; // 修改操作 public void update(Person person) throws Exception; // 删除操作 public void delete(String id) throws Exception ; // 按ID查询操作 public Person queryById(String id) throws Exception; // 查询全部 public List queryAll() throws Exception; // 模糊查询 public List queryByLike(String cond) throws Exception; }
// 此类需要完成具体的数据库操作,需要JDB代码 public class PersonDAOImpl implements PersonDAO { // 增加操作 public void insert(Person person) throws Exception { String sql = "INSERT INTO person (id,name,password,age,email) VALUES (?,?,?,?,?)" ; PreparedStatement pstmt = null ; DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作 try { // 连接数据库 dbc = new DataBaseConnection() ; pstmt = dbc.getConnection().prepareStatement(sql) ; pstmt.setString(1,person.getId()) ; pstmt.setString(2,person.getName()) ; pstmt.setString(3,person.getPassword()) ; pstmt.setInt(4,person.getAge()) ; pstmt.setString(5,person.getEmail()) ; // 进行数据库更新操作 pstmt.executeUpdate() ; pstmt.close() ; } catch (Exception e) { throw new Exception("操作出现异常") ; } finally { // 关闭数据库连接 dbc.close() ; } } // 修改操作 public void update(Person person) throws Exception { String sql = "UPDATE person SET name=?,password=?,age=?,email=? WHERE id=?" ; PreparedStatement pstmt = null ; DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作 try { // 连接数据库 dbc = new DataBaseConnection() ; pstmt = dbc.getConnection().prepareStatement(sql) ; pstmt.setString(1,person.getName()) ; pstmt.setString(2,person.getPassword()) ; pstmt.setInt(3,person.getAge()) ; pstmt.setString(4,person.getEmail()) ; pstmt.setString(5,person.getId()) ; // 进行数据库更新操作 pstmt.executeUpdate() ; pstmt.close() ; } catch (Exception e) { throw new Exception("操作出现异常") ; } finally { // 关闭数据库连接 dbc.close() ; } } // 删除操作 public void delete(String id) throws Exception { String sql = "DELETE FROM person WHERE id=?" ; PreparedStatement pstmt = null ; DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作 try { // 连接数据库 dbc = new DataBaseConnection() ; pstmt = dbc.getConnection().prepareStatement(sql) ; pstmt.setString(1,id) ; // 进行数据库更新操作 pstmt.executeUpdate() ; pstmt.close() ; } catch (Exception e) { throw new Exception("操作出现异常") ; } finally { // 关闭数据库连接 dbc.close() ; } } // 按ID查询操作 public Person queryById(String id) throws Exception { Person person = null ; String sql = "SELECT id,name,password,age,email FROM person WHERE id=?" ; PreparedStatement pstmt = null ; DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作 try { // 连接数据库 dbc = new DataBaseConnection() ; pstmt = dbc.getConnection().prepareStatement(sql) ; pstmt.setString(1,id) ; // 进行数据库查询操作 ResultSet rs = pstmt.executeQuery() ; if(rs.next()) { // 查询出内容,之后将查询出的内容赋值给person对象 person = new Person() ; person.setId(rs.getString(1)) ; person.setName(rs.getString(2)) ; person.setPassword(rs.getString(3)) ; person.setAge(rs.getInt(4)) ; person.setEmail(rs.getString(5)) ; } rs.close() ; pstmt.close() ; } catch (Exception e) { throw new Exception("操作出现异常") ; } finally { // 关闭数据库连接 dbc.close() ; } return person ; } // 查询全部 public List queryAll() throws Exception { List all = new ArrayList() ; String sql = "SELECT id,name,password,age,email FROM person" ; PreparedStatement pstmt = null ; DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作 try { // 连接数据库 dbc = new DataBaseConnection() ; pstmt = dbc.getConnection().prepareStatement(sql) ; // 进行数据库查询操作 ResultSet rs = pstmt.executeQuery() ; while(rs.next()) { // 查询出内容,之后将查询出的内容赋值给person对象 Person person = new Person() ; person.setId(rs.getString(1)) ; person.setName(rs.getString(2)) ; person.setPassword(rs.getString(3)) ; person.setAge(rs.getInt(4)) ; person.setEmail(rs.getString(5)) ; // 将查询出来的数据加入到List对象之中 all.add(person) ; } rs.close() ; pstmt.close() ; } catch (Exception e) { throw new Exception("操作出现异常") ; } finally { // 关闭数据库连接 dbc.close() ; } return all ; } // 模糊查询 public List queryByLike(String cond) throws Exception { List all = new ArrayList() ; String sql = "SELECT id,name,password,age,email FROM person WHERE name LIKE ? or email LIKE ?" ; PreparedStatement pstmt = null ; DataBaseConnection dbc = null ; // 下面是针对数据库的具体操作 try { // 连接数据库 dbc = new DataBaseConnection() ; pstmt = dbc.getConnection().prepareStatement(sql) ; // 设置模糊查询条件 pstmt.setString(1,"%"+cond+"%") ; pstmt.setString(2,"%"+cond+"%") ; // 进行数据库查询操作 ResultSet rs = pstmt.executeQuery() ; while(rs.next()) { // 查询出内容,之后将查询出的内容赋值给person对象 Person person = new Person() ; person.setId(rs.getString(1)) ; person.setName(rs.getString(2)) ; person.setPassword(rs.getString(3)) ; person.setAge(rs.getInt(4)) ; person.setEmail(rs.getString(5)) ; // 将查询出来的数据加入到List对象之中 all.add(person) ; } rs.close() ; pstmt.close() ; } catch (Exception e) { throw new Exception("操作出现异常") ; } finally { // 关闭数据库连接 dbc.close() ; } return all ; } };
PS:
1.pstmt操作时,第一个空格处,应该填写1,而不是0,否则会报错误的列索引;
2.查询完resultSet以后,先要对其进行非空判断,如果存在,再进行下一步的赋值;
3.数据库每次连接时,都要记住关闭,当然完全可以用数据库连接池来取代它,后面会对此做改进。
时间: 2024-12-15 01:34:45