使用注解的方式定义SQL语句 与 使用Mybatis映射文件xml的方式定义SQL语句的具体实现

1.使用注解的方式定义SQL语句: 

Controller层:

@RequestMapping("/emps")
@Slf4j
@RestController
public class EmpController {

    @Autowired
    private EmpService empService;

    //根据ID修改员工数据
    @PutMapping()
    public Result update(@RequestBody Emp emp){
        log.info("修改员工数据:{}", emp);
        empService.update(emp);
        return Result.success();
    }
}

Service接口层:

public interface EmpService {
    /**
     * 修改员工数据
     */
    void update(Emp emp);
}

Service接口实现层:

@Service
public class EmpServiceImpl implements EmpService{
    @Autowired
    private EmpMapper empMapper;

    @Override
    public void update(Emp emp) {
        empMapper.update(emp.getUsername(), emp.getName(), emp.getGender(), emp.getImage(), emp.getId(), LocalDateTime.now());
    }
}

Mapper接口层:

@Mapper
public interface EmpMapper {
    /**
     * 根据ID修改员工数据
     */
    @Update("update emp set username = #{username},name = #{name},gender=#{gender},update_Time=#{updateTime} ,image=#{image} where id=#{id}")
    void update(String username, String name, Short gender, String image, Integer id, LocalDateTime updateTime);
}
 2.使用Mybatis映射文件xml的方式:

Controller层(相同): 

@RequestMapping("/emps")
@Slf4j
@RestController
public class EmpController {

    @Autowired
    private EmpService empService;

    //根据ID修改员工数据
    @PutMapping()
    public Result update(@RequestBody Emp emp){
        log.info("修改员工数据:{}", emp);
        empService.update(emp);
        return Result.success();
    }
}

public interface EmpService {
    /**
     * 修改员工数据
     */
    void update(Emp emp);
}

Service接口实现类:

@Service
public class EmpServiceImpl implements EmpService{
    @Autowired
    private EmpMapper empMapper;

    //使用映射文件xml
    @Override
    public void update(Emp emp){
        emp.setUpdateTime(LocalDateTime.now());
        empMapper.update(emp);
    }
}

Mapper层:

@Mapper
public interface EmpMapper {

    //使用映射文件xml的方式
    void update(Emp emp);
}

Mapper映射文件xml:





    
    
        update emp
        
            
                username = #{username},
            
            
                password = #{passwprd},
            
            
                name =#{name},
            
            
                gender=#{gender},
            
            
                image =#{image},
            
            
                job=#{job},
            
            
                entrydate=#{entrydate},
            
            
                dept_id=#{deptId},
            
            
                update_time =#{updateTime}
            
        
        where id=#{id}
    

Mapper映射文件xml的路径要求如下:

  1. 放在项目的resources目录下。
  2. 在resources目录下创建一个与mapper接口全名相同的包名,例如:com.example.mapper。
  3. 在创建的包名目录下,创建一个与mapper接口同名的文件,例如:UserMapper.xml。
  4. 将mapper映射文件中的内容按照MyBatis的语法编写。

你可能感兴趣的:(Javaweb,sql,xml,java)