Mybatis實現增、刪、改操作時返回主鍵


需求:查詢出剛剛插入(刪除/修改)的記錄的詳細信息

  1、xxxMapper接口

public interface EmployeeMapper {
    // 添加操作
    public int insertEmployee(Employee employee);

    // 根據ID查詢出一條記錄
    public Employee queryEmployeeByEmployeeId(Integer employeeId);
}

  2、xxxMapper.xml

<mapper namespace="com.mybatis.dao.EmployeeMapper">
	// 插入一條記錄
	// useGeneratedKeys:默認值是true,但是還是建議寫上
	// keyProperty:將剛剛插入的記錄的主鍵使用傳入的Employee對象中的employeeId屬性接收
    <insert id="insertEmployee" useGeneratedKeys="true" keyProperty="employeeId">
        INSERT INTO employee VALUES (null,#{employeeName},#{employeePassword},#{employeeAge},#{departmentId})
    </insert>
	// 根據employeeId查詢Employee對象
    <select id="queryEmployeeByEmployeeId" resultType="com.mybatis.entity.Employee">
        SELECT EMPLOYEE_ID,EMPLOYEE_NAME,EMPLOYEE_PASSWORD,EMPLOYEE_AGE,DEPARTMENT_ID FROM employee
        WHERE EMPLOYEE_ID=#{employeeId}
    </select>
</mapper> 

  3、測試類

@Test
    public void test01() throws IOException {
        SqlSession session = TestMybatis.openSession();
        EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
        Employee employee = new Employee();
        employee.setEmployeeName("田七");
        employee.setEmployeeAge("27");
        employee.setEmployeePassword("4456");
        employee.setDepartmentId(4);
        // 這里返回的是影響的行數
        int i = mapper.insertEmployee(employee);
        // 根據插入的id,查詢出剛剛插入的記錄,因為我們將插入的主鍵封裝進了Employee對象的employeeId屬性中
        Employee e = mapper.queryEmployeeByEmployeeId(employee.getEmployeeId());
        System.out.println(e);
    }

  4、測試結果

Employee{employeeId=9, employeeName='田七', employeePassword='4456', employeeAge='27', departmentId=4}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM