整合Mybatis
1.创建新工程
2.相关配置
在pom文件引入druid依赖
在工程新建application.yml文件
在yml配置文件引入配置代码(将文档中的文件复制到工程的yml中):
新建配置DruidConfig类
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druid(){
return new DruidDataSource();
}
//配置Druid的监控
//1、配置一个管理后台的Servlet
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
Map<String,String> initParams = new HashMap<>();
initParams.put("loginUsername","admin");
initParams.put("loginPassword","123");
initParams.put("allow","");
// initParams.put("deny","");
bean.setInitParameters(initParams);
return bean;
}
//2、配置一个web监控的filter
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map<String, String> initParams = new HashMap<>();
initParams.put("exclusions", "*.js,*.css,/druid/*");
bean.setInitParameters(initParams);
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
}
访问 http://localhost:8080/druid ,出现如下错误:
我们需要引入log4j2依赖:
引入之后:
将资料里的sql文件复制到工程文件夹下:
在yml配置文件中配置如下文件路径:
运行工程后,发现mybatis数据库下表没有被创建,这时我们需要再配置文件中加入如下:
加入之后就能够创建数据表了。
在创建bean文件夹,在里面创建employee和department类:
之后就能够创建employee和department两个数据表。
创建完成之后删除yml文件中的建表配置语句。
创建mapper文件夹,并在下面创建DepartmentMapper接口:
@Mapper
public interface DepartmentMapper {
@Select("select * from department where id=#{id}")
public Department getDeptById(Integer id);
@Delete("delete from department where id=#{id}")
public int deleteDeptById(Integer id);
@Options(useGeneratedKeys = true,keyProperty = "id")
@Insert("insert into department(departmentName) values(#{departmentName})")
public int insertDept(Department department);
@Update("update department set departmentName=#{departmentName} where id=#{id}")
public int updateDept(Department department);
}
1.注释版mybatis:
创建DeptController类:
@RestController
public class DeptController {
@Autowired
DepartmentMapper departmentMapper;
@GetMapping("/dept/{id}")
public Department getDepartment(@PathVariable("id") Integer id){
return departmentMapper.getDeptById(id);
}
@GetMapping("/dept")
public Department insertDept(Department department){
departmentMapper.insertDept(department);
return department;
}
}
按id自增创建department
按照id查询:
在入口类加入如下注释,能够直接扫描mapper包下的所有mapper:
//使用MapperScan批量扫描所有的Mapper接口
@MapperScan(value = "com.example.springboot06datamybatis.mapper")
2.配置版Mybatis:
创建EmployeeMapper
(之后会将该接口配置在EmployeeMapper.xml文件里):
在resources资源文件下创建mybatis文件夹并在下面创建mapper文件夹,在里面创建EmployeeMapper.xml配置文件,在mybatis文件夹下创建mybatis-config.xml全局配置文件。(https://mybatis.org/mybatis-3/getting-started.html)
进入mybatis网站复制如下全局配置代码到mybatis-config.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
将如下操作数据库的SQL配置代码复制到EmployeeMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.springboot06datamybatis.mapper.EmployeeMapper">
<select id="getEmpById" resultType="com.example.springboot06datamybatis.bean.Employee">
SELECT * FROM employee WHERE id = #{id}
</select>
<insert id="insertEmp">
INSERT INTO employee(lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{dId})
</insert>
</mapper>
yml文件添加:
创建EmpController:
@RestController
public class EmpController {
@Autowired
EmployeeMapper employeeMapper;
@GetMapping("/emp/{id}")
public Employee getEmployee(@PathVariable("id") Integer id){
return employeeMapper.getEmpById(id);
}
@GetMapping("/emp")
public Employee insertDept(Employee employee){
employeeMapper.insertEmp(employee);
return employee;
}
}
输入网页查询: