MyBatis XML 配置文件之從配置規(guī)范到 CRUD 開發(fā)實踐記錄
??前言
MyBatis的開發(fā)方式有兩種:注解、XML。下來要將的就是XML,如果想要看MyBatis注解的,可以看我上一篇文章
??MyBatis XML配置文件的作用
MyBatis是一款持久層框架,他支持將SQL語句與Java代碼分離,XML文件就是用來編寫SQL語句,配置結果映射(ResultMap)等信息載體,讓代碼等清晰、維護更方便。
??配置數據庫連接字符串和MyBatis
??數據庫配置
application.yml 配置內容
# 數據庫連接配置
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driverapplication.properties 配置內容
#驅動類名稱 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #數據庫連接的url spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false #連接數據庫的用戶名 spring.datasource.username=root #連接數據庫的密碼 spring.datasource.password=root
- datasource.url: 數據庫連接地址;
- datasource.username:數據庫登入用戶名(例root);
- datasource.password: 數據庫密碼(例root);
- datasource.driver-class-name:MySqL驅動類。
??MyBatis配置
application.yml 配置內容
mybatis:
# 配置 mybatis xml 的文件路徑,在 resources/mapper 創(chuàng)建所有表的 xml 文件
mapper-locations: classpath:mapper/**Mapper.xml
configuration: # 配置打印 MyBatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true #配置駝峰自動轉換application.properties 配置內容
# 配置 mybatis xml 的文件路徑,在 resources/mapper 創(chuàng)建所有表的 xml 文件 mybatis.mapper-locations=classpath:mapper/**Mapper.xml # 配置打印 MyBatis 日志 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl # 配置駝峰自動轉換 mybatis.configuration.map-underscore-to-camel-case=true
- mybatis.mapper-locations:指定映射文件(XML)位置。classpath:mapper/**Mapper.xml表示resource/mapper目錄以下所有以Mapper.xml為結尾的文件;
- mybatis.configuration.log-impl:配置MyBatis的日志實現;
- mybatis.configuration.map-underscore-to-camel-case:開啟駝峰命名。
??XML文件的核心組成成分
以映射文件(UserInfoMapper.xml)為例
??MyBatis的xml固定格式
<?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="對應的Mapper接口的全限定類名"> </mapper>
- 示例對應的Mapper接口的全限定類名:
<mapper namespace="com.mybatis.demo.mapper.UserInfoXMLMapper">
<!-- SQL語句 -->
</mapper>??文件創(chuàng)建
創(chuàng)建Mapper接口
@Mapper
public interface UserInfoXMLMapper {
}創(chuàng)建xml文件

??增刪查改操作
??增(Insert)
UserInfoMapper.xml
<insert id="insertUserInfo" parameterType="com.mybatis.demo.model.UserInfo">
insert into user_info(username,password,age) values (#{username},#{password},#{age})
</insert>- <insert>的id必須與UserInfoXMLMapper中的insertUserInfo一致;
- parameType:入參類型(可省略),如果要寫,要寫全類名。
UserInfoXMLMapper接口
@Mapper
public interface UserInfoXMLMapper {
Integer insertUserInfo(UserInfo userInfo);
}測試
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowired
private UserInfoXMLMapper userInfoXMLMapper;
@Test
void insertUserInfo() {
UserInfo userInfo=new UserInfo();
userInfo.setUsername("張三");
userInfo.setPassword("123");
userInfo.setAge(13);
System.out.println(userInfoXMLMapper.insertUserInfo(userInfo));
}
}結果

添加自增主鍵
</insert>
<insert id="insertUserInfo2" parameterType="com.mybatis.demo.model.UserInfo" useGeneratedKeys="true" keyProperty="id">
insert into user_info(username,password,age) values (#{username},#{password},#{age})
</insert>??刪除(delete)
UserInfoMapper.xml
<delete id="deleteUser">
delete from user_info where username=(#{username})
</delete>UserInfoXMLMapper接口
Integer deleteUser(UserInfo userInfo);
測試
@Test
void deleteUser() {
UserInfo userInfo=new UserInfo();
userInfo.setUsername("張三");
userInfoXMLMapper.deleteUser(userInfo);
}結果

??查(select)
UserInfoMapper.xml
<select id="selectUserById" resultType="com.mybatis.demo.model.UserInfo">
select username,password,age,phone from user_info where id=(#{id})
</select>- resultType:返回值類型,如果缺少,那么參數占位符寫法不規(guī)范。
UserInfoXMLMapper接口
UserInfo selectUserById(Integer id);
測試
@Test
void selectUserById() {
userInfoXMLMapper.selectUserById(1);
}結果

??改(update)
UserInfoMapper.xml
Integer updateUser(String username,Integer id);
UserInfoXMLMapper接口
<update id="updateUser">
update user_info set username=#{username} where id=#{id}
</update>測試
@Test
void updateUser() {
userInfoXMLMapper.updateUser("lisi",2);
}結果


到此這篇關于MyBatis XML 配置文件之從配置規(guī)范到 CRUD 開發(fā)實踐記錄的文章就介紹到這了,更多相關MyBatis XML 配置文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot整合Web開發(fā)之文件上傳與@ControllerAdvice
@ControllerAdvice注解是Spring3.2中新增的注解,學名是Controller增強器,作用是給Controller控制器添加統(tǒng)一的操作或處理。對于@ControllerAdvice,我們比較熟知的用法是結合@ExceptionHandler用于全局異常的處理,但其作用不止于此2022-08-08
背包問題-動態(tài)規(guī)劃java實現的分析與代碼
這篇文章主要給大家介紹了關于背包問題動態(tài)規(guī)劃java實現的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

