- IDEA的Maven使用Mybatis
- mybatis的两种使用方法(注解版、xml配置版)
文档:
https://mybatis.org/mybatis-3/index.html
中文版:https://mybatis.org/mybatis-3/zh/index.html
IDEA引入mybatis
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
<!-- 使用mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
注解版使用方法
以表factor为例
CREATE TABLE `factor` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`enabled` tinyint(3) NOT NULL DEFAULT '1' COMMENT '1 - 可用,2 - 不可用',
`name` varchar(32) NOT NULL DEFAULT '' COMMENT '因子名称',
`factor_desc` varchar(32) NOT NULL DEFAULT '' COMMENT '因子描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='因子';
1.编写实体类Factor
package com.springbootdata.demo.bean;
public class Factor {
private Integer id;
private String enabled;
private String name;
private String factorDesc;
public Integer getId() { return id;}
public void setId(Integer id) { this.id = id; }
public String getEnabled() { return enabled; }
public void setEnabled(String enabled) { this.enabled = enabled; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getFactorDesc() { return factorDesc; }
public void setFactorDesc(String factorDesc) { this.factorDesc = factorDesc; }
}
2.写对应mapper方法
package com.springbootdata.demo.dal.mapper;
import com.springbootdata.demo.bean.Factor;
import org.apache.ibatis.annotations.Select;
//@Mapper
public interface FactorMapper {
@Select("select * from factor where id=#{id}")
Factor getFactorById(Integer id);
}
3.新增配置application.properties
spring.datasource.url= jdbc:mysql://111.229.111.111:3306/test01?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
4.在启动类上加注解@MapperScan
指定要扫描的Mapper类的包的路径
//指定要扫描的Mapper类的包的路径
@MapperScan(value = "com/springbootdata/demo/dal/mapper")
@SpringBootApplication
public class SpringbootDataApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDataApplication.class, args);
}
}
5.写个请求试试
@Autowired
FactorMapper factorMapper;
@ResponseBody
@RequestMapping(value = "/query/id", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public Factor getFactor(@RequestParam("id") Integer id) {
Factor factor = factorMapper.getFactorById(id);
return factor;
}
总体目录

结果

xml配置版
以表template为例
CREATE TABLE `template` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`enabled` tinyint(3) NOT NULL DEFAULT '1' COMMENT '逻辑删除标识:1-可用,2-不可用',
`template_id` varchar(64) NOT NULL DEFAULT '' COMMENT '模板ID',
`template_name` varchar(32) NOT NULL DEFAULT '' COMMENT '模板名称',
`is_default` tinyint(3) NOT NULL DEFAULT '0' COMMENT '默认模板:0-否,1-是',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='模板';
1.编写实体类 --略
2.application.properties新增配置
#mybatis配置位置
mybatis.config-location=classpath:mybatis/mybatis-config.xml
#mapper.xml所在位置
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
3.新增mybits的xml配置configuration
中的内容因在上一步的配置文件中已有配置,所以这里可以注释掉
<?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>
<!-- <environments default="development">-->
<!-- <environment id="development">-->
<!-- <transactionManager type="JDBC"/>-->
<!-- <dataSource type="POOLED">-->
<!-- <property name="driver" value="${driver}"/>-->
<!-- <property name="url" value="${url}"/>-->
<!-- <property name="username" value="${username}"/>-->
<!-- <property name="password" value="${password}"/>-->
<!-- </dataSource>-->
<!-- </environment>-->
<!-- </environments>-->
<!-- <mappers>-->
<!-- <mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
<!-- </mappers>-->
</configuration>
4.编写temolateMapper的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.springbootdata.demo.dal.mapper.TemplateMapper">
<select id="selectTemplate" resultType="com.springbootdata.demo.bean.Template">
select * from template where id = #{id}
</select>
</mapper>
编写mapper
package com.springbootdata.demo.dal.mapper;
import com.springbootdata.demo.bean.Template;
public interface TemplateMapper {
Template selectTemplate(Template template);
}
6.写个接口试试
@Autowired
TemplateMapper templateMapper;
@ResponseBody
@RequestMapping(value = "/query/template", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public Template getTemplate(@RequestParam("id") Integer id) {
Template template_a = new Template();
template_a.setId(id);
Template template = templateMapper.selectTemplate(template_a);
return template;
}

网友评论