程式碼改造實錄--迴圈外能確定的事情別放迴圈內
阿新 • • 發佈:2020-08-13
目錄
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查詢操作