日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql test 映射到实体_从零搭建SpringBoot+MyBatis+MySQL工程

發布時間:2024/1/23 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql test 映射到实体_从零搭建SpringBoot+MyBatis+MySQL工程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 創建工程
    • 了解MVC模型
    • 屬性配置文件.yml
    • springboot里的數據庫布局
    • 創建包
      • 創建數據表
      • 創建實體類DAO(model)
      • 創建mapper
        • 語句直接寫在class中(全注解方式)
        • 語句寫在xml中
        • 添加掃描接口的注解
      • controller
    • 啟動項目

小白上路,寸草不生
若文章內容有誤,歡迎留言指出~~~


創建工程


使用依賴:web(前后端交互)、mybatis(持久層)、mysql(數據庫驅動)


了解MVC模型

  • 模型(model或server):一個或多個 JavaBean 對象,用于存儲數據(實體模型,由 JavaBean 類創建)和處理業務邏輯(業務模型,由一般的 Java 類創建)。
  • 控制器(controller):一個或多個 Servlet 對象,根據視圖提交的請求進行控制,即將請求轉發給處理業務邏輯的 JavaBean,并將處理結果存放到實體模型 JavaBean 中,輸出給視圖顯示。
  • 視圖:一個或多個頁面,向控制器提交數據和為模型提供數據顯示,頁面主要使用 HTML 標記和 JavaBean 標記來顯示數據。

屬性配置文件.yml

使用更加方便的yml文件,而不是默認的properties文件。刪除application.properties,新增application.yml和application-dev.yml,并修改內容。

application.yml:

spring:profiles:active: dev

application-dev.yml:

server:port: 8080 spring:datasource:username: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC

自動配置時會將數據庫連接相關信息注入到mybatis中.


springboot里的數據庫布局

  • controller:類;接收http(get/post)請求,查詢數據庫,返回數據。
  • mapper:接口;數據庫的各種查詢語句的定義。
  • model:類;數據庫各字段的JavaBean,將數據庫映射為類。

創建包

創建數據表

CREATE TABLE `user` (`id` int(11) NOT NULL COMMENT 'id',`username` varchar(50) DEFAULT NULL,`password` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

創建實體類DAO(model)

該類中跟數據表對應,提供get和set方法。

package com.sxf.demo.model; public class User {private Long id;private String name;private String pwd;public Long getId(){return id;}public String getName() {return name;}public String getPwd() {return pwd;}public void setId(Long id) {this.id = id;}public void setName(String name) {this.name = name;}public void setPwd(String pwd) {this.pwd = pwd;} }

創建mapper

SQL的查詢語句。

語句直接寫在class中(全注解方式)

package com.sxf.demo.mapper; import com.sxf.demo.model.User; import org.apache.ibatis.annotations.Select; import java.util.List;public interface UserMapper {@Select("select * from user")List<User> getAllUsers();@Select("select * from user where id=#{id}")User getUserById(Long id); }

語句寫在xml中

UserMapper.java:

package com.sxf.demo.mapper; import com.sxf.demo.model.User; import java.util.List;public interface UserMapper {User getUserById(Long id); }

在resource文件夾下新建一個mapper文件夾編寫對應的xml

UserMapper.xml:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 此處與接口類地址對應 --> <mapper namespace="com.sxf.demo.mapper.UserMapper"><!-- 此處與接口方法名對應 指定參數類型與返回結果類型--><select id="getUserById" parameterType="java.lang.Long" resultType="com.sxf.demo.model.User">select * from user where id = #{id}</select> </mapper>

注意:
1.namespace中需要與使用@Mapper的接口對應
2.UserMapper.xml文件名稱必須與使用@Mapper的接口一致
3.標簽中的id必須與@Mapper的接口中的方法名一致,且參數一致

在application-dev.yml中添加路徑,指明映射文件位置:

mybatis:mapper-locations: classpath:mapper/*Mapper.xmltype-aliases-package: com.sxf.demo.mapper

注意:
1.mybatis中的mapper-locations是mapper的xml文件位置
2.mybatis中的type-aliases-package是為了配置xml文件中resultType返回值的包位置,如果未配置請使用全包名

添加掃描接口的注解

這里掃描的是接口,不是xml。
啟動類DemoApplication.java:

package com.sxf.demo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan(basePackages = "com.sxf.demo.mapper") // 添加掃描 public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

controller

邏輯代碼在這里吧。

package com.sxf.demo.controller; import com.sxf.demo.mapper.UserMapper; import com.sxf.demo.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List;@Controller @ResponseBody public class UserController {@Autowired(required = false)private UserMapper userMapper;@RequestMapping("/getUser")public User getAllUsers(Long id){return userMapper.getUserById(id);} }

啟動項目


瀏覽器訪問:

總結

以上是生活随笔為你收集整理的mysql test 映射到实体_从零搭建SpringBoot+MyBatis+MySQL工程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。