1. 程式人生 > >Idea新建一個springBoot專案

Idea新建一個springBoot專案

Idea新建Spring boot專案

最近有一個需求寫Java後臺,所以就重新拾回我那一丁點的Java基礎

  • 開啟Idea新建專案

    選擇Spring Initializr,jdk選擇1.8


點選下一步

  • 編寫包名以及編寫者

    Artifact: 編寫者、group: 包名

  • 選擇需要的第三方

    這裡採用了mybatis + mysql,web處勾選web

  • 輸入專案名稱

到這裡你就成功建立了專案了

  • 匯入相關依賴在pom.xml裡操作

    • 新增resources(在build裡面)

    <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering
>true</filtering>
</resource> </resources>
  • 將resources下的application.prop…刪除,新增application.yaml檔案

    星號部分需替換

    
    
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/*yourdatabase*?useSSL=false
        username: *yourusername*
        password: 
    *yourpassword*
      driver-class-name: com.mysql.jdbc.Driver mybatis: mapperLocations: classpath:mapper/*Mapper.xml server: port: 9008  
  • 在main下建立entity/controller/services/mapper四個資料夾

    • entity: 和資料庫表一一對應欄位

    • controller: 暴露給外部的api介面

    • services: 對資料進行一些處理的地方

    • mapper: 對應mybatis mapper下的xml檔案

  • 在resources資料夾下新增mapper資料夾

    這裡是mabatis的一些對資料庫表對映的xml

    • a.xml

      需要注意的是,namespace和每個單獨的inserct或者select的parameterType/resultType要和類名一一對應

      ID要和mapper下的類方法名一一對應

    
    <?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.market.frank.mapper.AdminMapper">
        <!--<insert id="insertSelective" parameterType="com.market.frank.entity.Person">-->
            <!--INSERT INTO person-->
            <!--<trim prefix="(" suffix=")" suffixOverrides=",">-->
                <!--<if test="age != null">-->
                    <!--age,-->
                <!--</if>-->
                <!--<if test="name != null and name != ''">-->
                    <!--name,-->
                <!--</if>-->
            <!--</trim>-->
            <!--<trim prefix="VALUES (" suffix=")" suffixOverrides=",">-->
                <!--<if test="age != null">-->
                    <!--#{age},-->
                <!--</if>-->
                <!--<if test="name != null and name != ''">-->
                    <!--#{name},-->
                <!--</if>-->
            <!--</trim>-->
        <!--</insert>-->
        <insert id="insertNormal"  parameterType="com.market.frank.entity.Admin" >
            INSERT INTO admin
            <trim prefix="(" suffix=")" suffixOverrides=",">
            phone,password,
            <if test="name != null">
            name,
            </if>
            <if test="state != null">
            state,
            </if>
            </trim>
            <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
            #{phone},#{password},
            <if test="name != null">
            #{name},
            </if>
            <if test="state != null">
            #{state}
            </if>
            </trim>
        </insert>
    
        <select id="isExist" resultType="com.market.frank.entity.Admin" parameterType="com.market.frank.entity.Admin">
            SELECT *
            FROM admin
            <trim prefix="WHERE">
                <if test="phone != null">
                   phone = #{phone}
                </if>
                <if test="password != null and password.length()>0">
                  AND password = #{password}
                </if>
            </trim>
        </select>
        <update id="update" parameterType="com.market.frank.entity.Admin">
            UPDATE admin
            <trim prefix="SET" suffixOverrides=",">
              <if test="phone != null and phone.length() == 11">
                phone = #{phone}
              </if>
              <if test="password != null and password.length() >0">
                  password = #{password}
              </if>
              <if test="name != null and name.length() > 0">
                  name = #{name}
              </if>
    
            </trim>
    
        </update>
        <select id="selectAll" resultType="com.market.frank.entity.Admin">
            SELECT *
            FROM admin
            WHERE state != 404
        </select>
    
       <!--<select id="selectAllNonM" resultType="com.market.frank.entity.Admin">-->
           <!---->
       <!--</select>-->
    </mapper>

  • 編寫mapper下的檔案

    其實就是和resources下的xml一一對應

    
    
    
    import java.util.List;
    
    public interface AdminMapper {
        public List<Admin> selectAll();
        public Admin isExist(Admin admin);
        public int insertNormal(Admin admin);
        public int updateNormal(Admin admin);
    }
    

  • 編寫entity的實體類

    欄位必須和資料庫裡的表字段一一對應


public class Admin {

    private long id;
    private String account;
    private String phone;
    private String password;
    

    public long getId() {
        return id;
    }

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

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
  • 編寫service下的檔案

    • adminService(service/AdminService)

    
    import java.util.List;
    
    public interface AdminService {
        public Admin login(Admin admin);
        public int insertNormal(Admin admin);
        public int updateNormal(Admin admin);
        public List<Admin> selectAll();
    }
    
    • AdminServiceImpl(service/impl/AdminServiceImpl)

      
      import org.springframework.stereotype.Service;
      
      import javax.annotation.Resource;
      import java.util.List;
      
      @Service
      public class AdminServiceImpl implements AdminService {
          @Resource
          private AdminMapper adminMapper;
      
          @Override
          public Admin login(Admin admin) {
              return adminMapper.isExist(admin);
          }
      
          @Override
          public int insertNormal(Admin admin) {
              return adminMapper.insertNormal(admin);
          }
      
          @Override
          public int updateNormal(Admin admin) {
              return adminMapper.updateNormal(admin);
          }
      
          @Override
          public List<Admin> selectAll() {
              return adminMapper.selectAll();
          }
      }
      

    編寫controller下的檔案

    • AdminController

    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @RestController
    @RequestMapping("/api/admin/")
    public class AdminController {
    
        @Resource
        private AdminService adminService;
    
        /*
        * @function
        * @api
        * @params null
        * @return admin list
        * */
        @RequestMapping(value = "all", method = RequestMethod.GET)
        public @ResponseBody Object onAll() {
            List list = adminService.selectAll();
            return list;
        }
    }
    

    接下來就可以點選右上角的綠色小三角執行專案拉。

    輸入localhost:9008/api/admin/all你就可以得到資料庫裡的資料啦

    到這裡你就已經成功執行起來了一個mybatis + spring boot + mysql整合的Java專案