springboot mybatis xml版

1.添加相关maven文件

<dependencies>
    <!--springboot mybatis-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.0.0</version>
    </dependency>
    <!--mysql-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2.pom 中build  这个resources 需要加一下 不然idea 启动项目的时候不会将mapp.xml文件打进去 

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    <!--解决Intellij构建项目时,target/classes目录下不存在mapper.xml文件-->
    <resources>
        <resource>
            <directory>${basedir}/src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

3.application.properties添加相关配置

#mysql
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/jiyu?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC
#这个serverTimezone=UTC 解决时区问题
spring.datasource.username = root
spring.datasource.password = 123456
#mybatis
mybatis.config-location=classpath:conf/mybatis-config.xml
mybatis.mapper-locations=classpath*:cn/mufeng/dal/*.mapper.xml

#指定了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>
   <typeAliases>
      <typeAlias alias="Integer" type="java.lang.Integer" />
      <typeAlias alias="Long" type="java.lang.Long" />
      <typeAlias alias="HashMap" type="java.util.HashMap" />
      <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
      <typeAlias alias="ArrayList" type="java.util.ArrayList" />
      <typeAlias alias="LinkedList" type="java.util.LinkedList" />
   </typeAliases>
</configuration>

4.在启动类中添加对mapper包扫描@MapperScan

@SpringBootApplication
@MapperScan("cn.mufeng.dal")
public class SpringBootMybatisXmlApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootMybatisXmlApplication.class, args);
    }

}

5.建一个实体类

public class VideoEntity implements Serializable {

   private static final long serialVersionUID = 1L;
   private String id;
   private String videoName;
   private String videoUrl;

   public VideoEntity() {
      super();
   }

   public VideoEntity(String videoName, String videoUrl) {
      super();
      this.videoUrl = videoUrl;
      this.videoName = videoName;
   }

   public String getId() {
      return id;
   }

   public void setId(String id) {
      this.id = id;
   }

   public String getVideoName() {
      return videoName;
   }

   public void setVideoName(String videoName) {
      this.videoName = videoName;
   }

   public String getVideoUrl() {
      return videoUrl;
   }

   public void setVideoUrl(String videoUrl) {
      this.videoUrl = videoUrl;
   }


   @Override
   public String toString() {
      // TODO Auto-generated method stub
      return "videoName " + this.videoName + ", videoUrl " + this.videoUrl ;
   }

}

6.建一个mapper 接口 (dal层)

public interface VideoMapper {
    List<VideoEntity> getAll();
    VideoEntity getOne(Long id);

    void insert(VideoEntity video);

    void update(VideoEntity video);

    void delete(Long id);

}

7.建一个xml(添加VideoMapper 的映射文件) 注意<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 这个引用  

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.mufeng.dal.VideoMapper">
   <resultMap id="BaseResultMap" type="cn.mufeng.entity.VideoEntity">
       
   </resultMap>
    <sql id="Base_Column_List" >
        id, videoName, videoUrl
    </sql>

    <select id="getAll" resultMap="BaseResultMap"  >
        SELECT
        <include refid="Base_Column_List" />
        FROM video
    </select>

    <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
        SELECT
        <include refid="Base_Column_List" />
        FROM video
        WHERE id = #{id}
    </select>

    <insert id="insert" parameterType="cn.mufeng.entity.VideoEntity" >
        <selectKey keyProperty="id" resultType="String" order="BEFORE">
            select uuid()
        </selectKey>
        insert into video(id, videoName, videoUrl)
        values(#{id},#{videoName},#{videoUrl})
    </insert>

    <update id="update" parameterType="cn.mufeng.entity.VideoEntity" >
        UPDATE
        video
        SET
        <if test="videoName != null and videoName != ''">userName = #{videoName},</if>
        <if test="videoUrl != null">passWord = #{videoUrl}</if>

        WHERE
        id = #{id}
    </update>

    <delete id="delete" parameterType="java.lang.Long" >
       DELETE FROM
               video 
       WHERE 
               id = #{id}
    </delete>
</mapper>
8.新加一个Controller
@RestController
public class VideoController {

    @Autowired
    private VideoMapper videoMapper;

    @RequestMapping("/getVideos")
    public List<VideoEntity> getVideos() {
        List<VideoEntity> videos = videoMapper.getAll();
        return videos;
    }

    @RequestMapping("/getVideo/{id}")
    public VideoEntity getVideo(@PathVariable("id") Long id) {
        VideoEntity video = videoMapper.getOne(id);
        return video;
    }


    @RequestMapping("/add")
    public void save(VideoEntity video) {
        videoMapper.insert(video);
    }

    @RequestMapping(value = "update")
    public void update(VideoEntity video) {
        videoMapper.update(video);
    }

    @RequestMapping(value = "/delete/{id}")
    public void delete(@PathVariable("id") Long id) {
        videoMapper.delete(id);
    }
    
}

9.我的sql

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for video
-- ----------------------------
DROP TABLE IF EXISTS `video`;
CREATE TABLE `video`  (
  `id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键id',
  `videoName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名称',
  `videoUrl` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '地址',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of video
-- ----------------------------
INSERT INTO `video` VALUES ('1', '测试url', 'https://cloud.video.taobao.com/play/u/2577498496/p/1/e/6/t/1/50016620184.mp4');

SET FOREIGN_KEY_CHECKS = 1;
10.启动项目访问url

http://localhost:8080/getVideos

发布了11 篇原创文章 · 获赞 4 · 访问量 6020

猜你喜欢

转载自blog.csdn.net/qq_15304369/article/details/88061039