先來"增"操作
在UserInfoXMLMapper.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="com.example.mybatisdemo.mapper.UserInfoXMLMapper"><insert id="insert">insert into userinfo(username,password,age,gender,phone)values(#{username},#{password},#{age},#{gender},#{phone})</insert>
</mapper>
然后在 UserInfoXMLMapper 接口中寫
package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UserInfoXMLMapper {Integer insert(UserInfo userInfo);}
然后右鍵,generate,test,勾選insert,ok
然后進行完善
package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid insert() {UserInfo userInfo = new UserInfo();userInfo.setUsername("haha");userInfo.setPassword("666");userInfo.setAge(22);userInfo.setGender(1);userInfo.setPhone("556699");Integer result = userInfoXMLMapper.insert(userInfo);log.info("影響的行數:{}",result);}
}
插入成功?
?
如果我們想插入完以后拿到它的 id 該怎么拿?
在?UserInfoXMLMapper.xml 稍作修改,加上 useGenerateKeys 和 keyProperty
<?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.example.mybatisdemo.mapper.UserInfoXMLMapper"><insert id="insert" useGeneratedKeys="true" keyProperty="id">insert into userinfo(username,password,age,gender,phone)values(#{username},#{password},#{age},#{gender},#{phone})</insert>
</mapper>
?然后在 UserInfoXMLMapperTest 的log.info 里面加上插入的結果
package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid insert() {UserInfo userInfo = new UserInfo();userInfo.setUsername("haha");userInfo.setPassword("666");userInfo.setAge(22);userInfo.setGender(1);userInfo.setPhone("556699");Integer result = userInfoXMLMapper.insert(userInfo);log.info("影響的行數:{},插入結果的id:{}",result,userInfo.getId());}
}
插入成功?
在數據庫中也能看到確實是6?
插入數據如何進行重命名呢?
用@Param
package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;import java.util.List;@Mapper
public interface UserInfoXMLMapper {Integer insert(UserInfo userInfo);Integer insert2(@Param("userInfo2") UserInfo userInfo);
}
?然后右鍵,Generate,test,勾選insert2,ok
package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.Configuration;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;
import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid insert2() {UserInfo userInfo = new UserInfo();userInfo.setUsername("haha");userInfo.setPassword("666");userInfo.setAge(22);userInfo.setGender(1);userInfo.setPhone("556699");Integer result = userInfoXMLMapper.insert2(userInfo);log.info("影響的行數:{},插入結果的id:{}",result,userInfo.getId());}
}
然后在 UserInfoXMLMapper.xml 里面,每個字段前面都要加上 UserInfo2(@Param后面的內容)
<?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.example.mybatisdemo.mapper.UserInfoXMLMapper"><insert id="insert2" useGeneratedKeys="true" keyProperty="id">insert into userinfo(username,password,age,gender,phone)values(#{userInfo2.username},#{userInfo2.password},#{userInfo2.age},#{userInfo2.gender},#{userInfo2.phone})</insert>
</mapper>
這樣就能插入成功了?
接下來是"刪"操作
package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;import java.util.List;@Mapper
public interface UserInfoXMLMapper {Integer delete(Integer id);}
然后右鍵,Generate,test,勾選delete,ok
把Id為8 的數據刪了
package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.Configuration;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;
import static org.junit.jupiter.api.Assertions.*;@Slf4j
@SpringBootTest
class UserInfoXMLMapperTest {
@Autowiredprivate UserInfoXMLMapper userInfoXMLMapper;@Testvoid delete() {userInfoXMLMapper.delete(8);}
}
然后在 UserInfoXMLMapper.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="com.example.mybatisdemo.mapper.UserInfoXMLMapper"><delete id="delete">delete from userinfo where id=#{id}</delete>
</mapper>
在數據庫中再次驗證是否刪除,上面是刪除前,下面是刪除后,刪除成功了