mybatis基礎(chǔ)使用(手寫sql)

  • IDEA的Maven使用Mybatis
  • mybatis的兩種使用方法(注解版、xml配置版)

文檔:

https://mybatis.org/mybatis-3/index.html
中文版:https://mybatis.org/mybatis-3/zh/index.html

IDEA引入mybatis

        <!-- mysql驅(qū)動(dòng)-->
        <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.編寫實(shí)體類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.寫對應(yīng)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.在啟動(dòng)類上加注解@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.寫個(gè)請求試試

@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;
    }

總體目錄


image.png

結(jié)果


image.png

xml配置版

以表template為例

CREATE TABLE `template` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
  `enabled` tinyint(3) NOT NULL DEFAULT '1' COMMENT '邏輯刪除標(biāo)識(shí):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 '默認(rèn)模板:0-否,1-是',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='模板';

1.編寫實(shí)體類 --略
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中的內(nèi)容因在上一步的配置文件中已有配置,所以這里可以注釋掉

<?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.寫個(gè)接口試試

@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;
    }
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容