正則表達式
咱們一般稱爲增刪改查sql
增長(Create)、讀取(Retrieve)、更新(Update)和刪除(Delete)數據庫
第一步:編寫接口session
//查詢方法
List<User> fingAll() throws Exception;
User findById(Integer id) throws Exception;
第二步:編寫對應mapper中的sql語句mybatis
namespace就很少講了命名空間就是接口對應包名,id就是對應的方法名app
注意這裏SQL語句的佔位符#測試
<!--resultType返回類型-->
<select id="fingAll" resultType="User">
select * from mybatis.user
</select>
<!--經過id查詢一個user對象-->
<select id="findById" parameterType="Integer" resultType="User">
select * from user where id=#{id}
</select>
第三步:測試atom
第一步:編寫接口spa
//增長方法
void addUser(User user) throws Exception;
第二步:編寫mapper對應的sql語句對象
parameterType指的是參數類型
<!--添加一個User對象-->
<insert id="addUser" parameterType="User" >
insert into user (name,email,phone,gender,password,age,create_time,update_time) values (#{name},#{email},#{phone},#{gender},#{password},#{age},#{create_time},#{update_time});
</insert>
第三步:編寫測試
這裏須要注意提交事務(不是查詢都須要提交事務)
第一步:編寫接口
//刪除方法
void deleteUser(Integer id) throws Exception;
第二步:編寫mapper對應的SQL語句
<!--刪除一個User對象-->
<delete id="deleteUser" parameterType="Integer">
delete from user where id=#{id}
</delete>
第三步:編寫測試
仍是提醒最易提交事務
第一步:編寫接口
//修改方法
Integer updateUser(User user)throws Exception;
第二步:編寫mapper對應的SQL語句
<!--修改User字段-->
<update id="updateUser" parameterType="User" >
update user set name=#{name},email=#{email},phone=#{phone},gender=#{gender},password={password},age=#{age},create_time=#{create_time},update_time=#{update_time} where id=#{id}
</update>
第三步:編寫測試
仍是提醒最易提交事務
何時用萬能map? 爲何要用萬能map?
當咱們實體類,或者數據庫中表的字段過多,咱們就應當使用map
map在公司的開發中用的比較多
第一步:編寫接口(咱們這裏就直接用map)
//增長方法
void addUser2(Map<String,Object> map) throws Exception;
第二步:編寫mapper對應的sql語句
這裏就給了三個字段
parameterType指定的是參數類型
很明顯用map咱們值能夠自定義沒有按照數據庫或者實體類進行限定(也就是直接取出key就能夠了)
<!--添加一個User對象-->
<insert id="addUser2" parameterType="map" >
insert into user (name,age,email) values (#{isName},#{isAge},#{email});
</insert>
第三步:編寫測試
爲何須要模糊查詢?
主要仍是當咱們不肯定某個數據的時候固然也能夠查出數據庫表中具備相同元素的字段
第一步:編寫接口
//模糊查詢
List<User> findUserLike(String value) throws Exception;
第二步:編寫mapper對應的sql
這裏用到like關鍵字進行模糊查詢
<!--模糊查詢user集合-->
<select id="findUserLike" resultType="User">
select * from user where name like #{value}
</select>
第三步:編寫測試
我這裏是拿百分號(%)佔位 也能夠拿(_)下劃線佔位
下劃線是表示佔一個位 百分號表示佔0個或多個位
固然也能夠在sql語句中直接使用佔位符寫測試的時候就不用寫了
select * from user where name like "%"#{value}"%"
%:表示任意0個或多個字符。可匹配任意類型和長度的字符,有些狀況下如果中文,請使用兩個百 分號(%%)表示。
_: 表示任意單個字符。匹配單個任意字符,它經常使用來限制表達式的字符長度語句:
[ ]:表示括號內所列字符中的一個(相似正則表達式)。指定一個字符、字符串或範圍,要求所匹配對象爲它們中的任一個。
select * from user where realname like '[張蔡王]傑'
查詢出「張傑」,「蔡傑」,「王傑」(而不是「張蔡王傑」)
[^] :表示不在括號所列以內的單個字符。其取值和 [] 相同,但它要求所匹配對象爲指定字符之外的任一個字符。
select * from user where realname like '[^張蔡王]傑'
查詢出不姓「張」,「蔡」,「王」的「林傑」,「趙傑」等