1. 程式人生 > 實用技巧 >程式碼改造實錄--迴圈外能確定的事情別放迴圈內

程式碼改造實錄--迴圈外能確定的事情別放迴圈內

目錄

Mybatis

配置

pom檔案

需要在pom中加入mybatis和jdbc的依賴

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.2</version>
</dependency>

application.yml

1、配置spring的資料來源

注意 driver-class-name: com.mysql.cj.jdbc.Driver

#配置資料來源資訊
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/zg_test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    password: 123456
    username: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    #com.mysql.jdbc.Driver是MySQL 5版本的。MySQL 5以上需要使用 com.mysql.cj.jdbc.Driver

2、配置mybatis資訊
包掃描和別名的掃描包可以直接在application.yml中配置,對於setting等更多屬性需要mybatis-config.xml


mybatis:
  # 配置mybatis的resultType別名,預設是別名為小寫
  type-aliases-package: com.lexiaoyao.mybatisdemo.domain
  # 配置掃描的xml檔案位置
  mapper-locations: classpath:mybatis/mapper/*.xml
  # mybatis詳細配置檔案
  config-location: classpath:mybatis/mybatis-config.xml

mybatis-config配置

配置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>
    <!--    日誌資訊,控制檯輸出-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!--    別名配置-->
    <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>

介面掃描

需要在啟動類上新增MapperScan註解

@SpringBootApplication
@MapperScan("com.lexiaoyao.mybatisdemo.mapper")
public class MybatisdemoApplication {

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

介面和mapper對映

mybatis採用一個介面對應一個mapper的方式對映。

介面

介面中只需要定義介面

/**
 * Repository 新增防止mapper注入時飆紅,但是不會影響程式執行
 */
@Repository
public interface UserMapper {

    void insertUser(User user);

    List<User> listAll();

}

mapper

以上介面對應的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.lexiaoyao.mybatisdemo.mapper.UserMapper">
    <sql id="Base_Column_List">
        id,name,age
    </sql>

    <insert id="insertUser" parameterType="user">
        insert into user (name,age) values (#{name},#{age})
    </insert>

    <select id="listAll" resultType="user">
        select
        <include refid="Base_Column_List"/>
        from user
    </select>

</mapper>

接下來對重點的標籤解釋

mapper

mapper檔案最外層標籤

namespace為對應介面的路徑

sql

替換sql,類似於指代重複的sql欄位的變數,通過和標籤配合使用

id設定id,在include中通過refid欄位進行定位

insert

對應sql的新增操作

id為介面中的方法名,parameterType為返回的型別,這裡的user是別名

select

對應sql查詢操作