1. 程式人生 > >jdbc篇第7課:封裝增刪改查

jdbc篇第7課:封裝增刪改查

  這節課我們來封裝增刪改查

 

實現:

package com.tool;



import com.bean.Employee;



import java.sql.*;

import java.util.*;



public class EmployeeMapper {



    Connection connection;



    public EmployeeMapper(Connection connection)

    {

        
this.connection = connection;     }     public void insert(Employee employee) throws SQLException {         String sql = "insert into tbl_employee (id,last_name,email,gender,d_id) values (?,?,?,?,?)";        
PreparedStatement preparedStatement = connection.prepareStatement(sql);         preparedStatement.setInt(1,employee.getId());         preparedStatement.setString(2,employee.getLastName());        
preparedStatement.setString(3,employee.getEmail());         preparedStatement.setString(4,employee.getGender());         preparedStatement.setInt(5,employee.getdId());         preparedStatement.executeUpdate();     }     public void delete(int id) throws SQLException {         String sql = "delete from tbl_employee where id = ?";         PreparedStatement preparedStatement = connection.prepareStatement(sql);         preparedStatement.setInt(1,id);         preparedStatement.executeUpdate();     }     public void update(Employee employee) throws SQLException {         String sql = "update tbl_employee set last_name = ?,email = ?,gender = ?, d_id = ? where id = ?";         PreparedStatement preparedStatement = connection.prepareStatement(sql);         preparedStatement.setString(1,employee.getLastName());         preparedStatement.setString(2,employee.getEmail());         preparedStatement.setString(3,employee.getGender());         preparedStatement.setInt(4,employee.getdId());         preparedStatement.setInt(5,employee.getId());         preparedStatement.executeUpdate();     }     public Employee selectById(int id) throws SQLException {         Employee employee = null;         String sql = "select * from tbl_employee where id = ?";         PreparedStatement preparedStatement = connection.prepareStatement(sql);         preparedStatement.setInt(1,id);         ResultSet resultSet = preparedStatement.executeQuery();         if (resultSet.next())         {             employee = new Employee();             employee.setId(resultSet.getInt(1));             employee.setLastName(resultSet.getString(2));             employee.setEmail(resultSet.getString(3));             employee.setGender(resultSet.getString(4));             employee.setdId(resultSet.getInt(5));         }         return employee;     }     /**      *      * @param conditionMap 鍵是列名,值是要匹配的值      * @return      */     public List<Employee> selectByExample(Map<String,String> conditionMap) throws SQLException {         List<Employee> employeeList = new ArrayList<Employee>();         int size = conditionMap.keySet().size();         String[] keyArr = new String[size];         String[] valueArr = new String[size];         conditionMap.keySet().toArray(keyArr);         conditionMap.values().toArray(valueArr);         String sql = "select * from tbl_employee where ";         for (int i = 0; i < size; i++) {             sql += keyArr[i] + "=" + valueArr[i] + " and ";         }         //末尾多了一個and,去掉         sql = sql.substring(0,sql.lastIndexOf("and") - 1);         Statement statement = connection.createStatement();         ResultSet resultSet = statement.executeQuery(sql);         while (resultSet.next())         {             Employee employee = new Employee();             employee = new Employee();             employee.setId(resultSet.getInt(1));             employee.setLastName(resultSet.getString(2));             employee.setEmail(resultSet.getString(3));             employee.setGender(resultSet.getString(4));             employee.setdId(resultSet.getInt(5));             employeeList.add(employee);         }         return employeeList;     } }

 

 

測試程式碼:

public static void main(String[] args) throws SQLException, ClassNotFoundException, IOException {

    Connection conn = Dbc.getConnection("src/com/resource/dbc.properties");



    EmployeeMapper employeeMapper = new EmployeeMapper(conn);



    //測試selectById()

    Employee employee = employeeMapper.selectById(2);

    System.out.println(employee.toString());



    //測試insert

    employee = new Employee(100,"wangdachui","[email protected]","1",1003);

    employeeMapper.insert(employee);



    //測試delete

    employeeMapper.delete(12);



    //測試update

    employee = new Employee(13,"mayun","[email protected]","1",1004);

    employeeMapper.update(employee);
    //測試selectByExample

    Map<String,String> map = new HashMap<String, String>();

    map.put("gender","1");  

    map.put("d_id","1001");

    List<Employee> employees = employeeMapper.selectByExample(map);

    for (Employee employee1 : employees) {

        System.out.println(employee1.toString());

    }



}

 

原來的資料:

執行後:

可以看到id為12的行已經被刪除了

Id為100的被插入了

第13行資料也被更改了

 

結果:

Employee{id=2, lastName='bb', email='[email protected]', gender='0', dId=1003}

Employee{id=1, lastName='xiaoye', email='[email protected]', gender='1', dId=1001}

Employee{id=4, lastName='dd', email='[email protected]', gender='1', dId=1001}

 

第一條是selectById的結果

後兩行是selectByExample的結果