Mybatis动态SQL
Mybatis,在带注解的映射器接口类中使用动态SQL,可使用script元素,即:。

案例代码
Model
package com.what21.mybatis.model;
import lombok.Data;
@Data
public class Employee {
// ID
private Integer id;
// 名称
private String name;
// 邮箱
private String email;
// 性别
private String gender;
// 年龄
private Integer age;
}
Mapper<映射器接口>
package com.what21.mybatis.demo03.mapper;
import com.what21.mybatis.model.Employee;
import org.apache.ibatis.annotations.*;
import java.util.List;
public interface EmployeeMapper {
@Select(value = "select * from `employee` where id = #{id}")
@ResultType(Employee.class)
public Employee findEmployeeById(Integer id);
@Update(value = "")
public int updateEmployee(Employee employee);
@Delete(value = "")
public int deleteEmployeeByIds(@Param("idList") List idList);
}
配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
测试类
package com.what21.mybatis.demo03;
import com.what21.mybatis.demo03.mapper.EmployeeMapper;
import com.what21.mybatis.model.Employee;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
import java.util.Arrays;
import java.util.List;
public class MybatisDemoMain {
/**
* 创建sessionFactory
*
* @param mybatisConfig
* @return
*/
private static SqlSessionFactory getSessionFactory(String mybatisConfig) {
SqlSessionFactory sessionFactory = null;
try {
Reader reader = Resources.getResourceAsReader(mybatisConfig);
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
return sessionFactory;
}
public static void main(String[] args) {
String resource = "com/what21/mybatis/demo03/mybatisConfig.xml";
// 从SessionFactory中获取SqlSession
SqlSession sqlSession = getSessionFactory(resource).openSession();
// Mapper
EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
// select操作
Employee findEmployee = employeeMapper.findEmployeeById(2);
System.out.println(findEmployee);
findEmployee.setName("学习测试demo");
findEmployee.setEmail("leran@demo.com");
findEmployee.setAge(34);
findEmployee.setGender("1");
int updateOperate = employeeMapper.updateEmployee(findEmployee);
System.out.println("update操作结果:" + updateOperate);
List idsList = Arrays.asList(findEmployee.getId());
// delete操作
int deleteOperate = employeeMapper.deleteEmployeeByIds(idsList);
// SQL正确,没有删除任何一条数据,返回结果为:0
System.out.println("delete操作结果:" + deleteOperate);
// 提交
//sqlSession.commit();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。