这节课我们来封装增删改查
实现:
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","dachui@qq.com","1",1003);
    employeeMapper.insert(employee);
    //测试delete
    employeeMapper.delete(12);
    //测试update
    employee = new Employee(13,"mayun","mayun@alibaba.com","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='bb@sina.com', gender='0', dId=1003}
Employee{id=1, lastName='xiaoye', email='xiaoye@qq.com', gender='1', dId=1001}
Employee{id=4, lastName='dd', email='dd@sina.com', gender='1', dId=1001}
第一条是selectById的结果
后两行是selectByExample的结果









