一、驼峰映射,写在mybits配置文件中
<setting name="mapUnderscoreToCamelCase" value="true"/>
二、别名
//查询
@Select("select id, username, password, name, gender, image, job, entrydate as ed, dept_id, create_time, update_time from emp")
List<Emp> findAll2();
三、自定义映射
//查询
@Results({//@Results: 自定义结果映射
@Result(column = "entrydate", property = "ed"),//@Result一条映射规则 (column = "数据表中字段名", property = "实体类属性名")
@Result(column = "dept_id", property = "deptId")
})
@Select("select * from emp")
List<Emp> findAll3();
四、模糊查询
where name like concat('%',#{name},'%')
五、动态SQL
<!--
字符串需要跟null和空串比较
其他类型只要跟null比较
if:使用test进行条件判断,只有条件成立,条件中的sql才会生效
where:只会在<where>标签内部有内容的情况下才插入where子句,而且会自动去除子句的开头的AND或OR。
-->
<select id="findByCondition" resultType="com.itheima.domain.Emp">
select * from emp
<where>
<if test="name != null and name != ''">
name like concat('%',#{name},'%')
</if>
<if test="gender != null">
and gender = #{gender}
</if>
<if test="begin != null and end != null">
and entrydate between #{begin} and #{end}
</if>
</where>
</select>
<update id="update">
update emp
<set>
<if test="username != null and username != ''">
username = #{username},
</if>
<if test="password != null and password != ''">
password = #{password},
</if>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="gender != null">
gender = #{gender},
</if>
<if test="image != null and image != ''">
image = #{image},
</if>
<if test="job != null">
job = #{job},
</if>
<if test="ed != null">
entrydate = #{ed},
</if>
<if test="deptId != null">
dept_id = #{deptId},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
where id = #{id}
</update>
* collection:集合名称 * item:集合遍历出来的元素 * separator:每一次遍历使用的分隔符 * open: 遍历开始前拼接的片段 * close:遍历结束后拼接的片段
<delete id="deleteByIds">
delete from emp where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
可能用到Arrays.asList()方法。
六、SQL片段
* 定义SQL片段: <sql id="selectUser"></sql> * 引用SQL片段: <include refid="selectUser"></include>
本文介绍了在Java应用中使用Hibernate进行数据库操作时,如何实现驼峰映射、别名、自定义映射、模糊查询、动态SQL和SQL片段的使用方法,帮助开发者更好地管理数据访问层。
994

被折叠的 条评论
为什么被折叠?



