正则表达式
咱们一般称为增删改查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 '[^张蔡王]杰'
查询出不姓“张”,“蔡”,“王”的“林杰”,“赵杰”等