Hibernate/Mybatis
BtWangZhi
这个作者很懒,什么都没留下…
展开
-
Mybatis-SQL注入
/** * 测试sql注入攻击-sql会睡眠5秒才返回 */ @Test public void test02() { QueryWrapper<Result> queryWrapper = new QueryWrapper<>(); queryWrapper.select(Result.ID); String param = "' and (select * from (select sle...原创 2022-05-05 14:26:03 · 1980 阅读 · 0 评论 -
MybatisPlus-特殊用法整理
多层嵌套查询@Test public void test1(){ QueryWrapper<User> queryWrapper=new QueryWrapper<>(); queryWrapper.select(User.ID); String param="admin"; queryWrapper.eq(User.SEX, 0); queryWrapper.and(Objects.nonNu原创 2020-11-17 17:43:53 · 834 阅读 · 0 评论 -
MybatisPlus--基础用法
碰到前端设置时间为空,要求更新到数据,安装正常情况下,mybatis-plus只会更新不为空的数据,可以设置TableField注解的updateStrategy值为IGNORED,但是比较危险,所有使用这个pojo的位置都会受到影响,比如我现在只更新a字段,pojo中b字段则为null,那样的设置就会更新b。比较保守的方式如下: @PostMapping("/editTest") public Object editTest(@RequestBody InspectReviewPlanDO原创 2020-08-29 18:51:13 · 405 阅读 · 0 评论 -
Mybatis--动态SQL
本文部分摘自官方文档。详情请自行翻阅文档。 1 if标签 if标签用于根据条件选择性的执行一段程序。需要说明的是传入的字段在if标签中条件判断中不用添加#或者其他符号,直接以字符串的形式。如下:<select id="findActiveBlogWithTitleLike"resultType="Blog">SELECT * FROM BLOGWHERE state = ‘ACTIVE’原创 2017-06-08 20:23:54 · 400 阅读 · 0 评论 -
Mybatis--缓存及整合ehcache
本文部分摘自传智博客燕青老师的视频。 由如下博主整理:http://www.360doc.com/content/17/0608/00/31123568_660928423.shtml,感谢楼主分享。 Mybatis支持缓存机制,用于缓解数据库的压力,提高数据库的性能。 1 一级缓存:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内原创 2017-06-08 00:12:25 · 945 阅读 · 0 评论 -
Mybatis--XML映射文件
1 select标签:执行查询操作。当执行带有参数的SQL语句,如<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id}</select>传递的参数在SQL中会以?来标示,被传递到一个新的预处理的语句中。底层执行的是JDBC中的Pre原创 2017-06-06 15:57:06 · 940 阅读 · 0 评论 -
Mybatis--XML配置
1 Plugins:MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。实现Intercept接口配置拦截方法的信息即可。 说明:在拦截后先执行setProperties方法,plugin方法执行三次(至于为毛执行三次,目前暂不得知。)//拦截UserMapper中的getUserById方法,args为配置方法参数类型信息@Intercepts({@Signature(type=原创 2017-06-05 17:19:08 · 448 阅读 · 0 评论 -
Mybatis--入门
mybatis基于XML的映射语音来实现。 尝试写demo。 1 方案一:基于XML 1.1 所需架包。 mybatis-3.3.0.jar mysql-connector-java-5.1.39-bin.jar1.2 mybatis配置文件。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-/原创 2017-06-05 14:33:04 · 319 阅读 · 0 评论 -
Mybatis--嵌套查询
本文部分参考:https://blog.csdn.net/qq_34777858/article/details/79209392 http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html 翻了一下Mybatis官方文档,之前看得不是很懂的位置,现在看有种豁然开朗的感觉。看到嵌套查询,写了几个Demo,觉得不错,整理记录一下。 构造的三张表:...原创 2018-08-24 00:26:44 · 1492 阅读 · 0 评论 -
Mybatis--动态SQL
foreach批量添加数据场景&amp;lt;select id=&quot;insertBatchAddTaskRun&quot;&amp;gt; insert into tb_ucpaas_task_run_${taskId} ( task_id, nbr, `status`, create_time ) values &amp;lt;foreach collection=&am原创 2018-09-18 10:14:34 · 229 阅读 · 0 评论 -
Mybatis--存储过程
Navicat创建存储过程点击保存时出现如下错误:参考了如下博客,说是要为字符串类型的参数设置长度。https://blog.csdn.net/weixin_38318037/article/details/78685900在Navicat中测试存储过程:Mybatis调用存储过程<select id="createUserTable" statementType="...原创 2018-09-18 14:58:51 · 429 阅读 · 0 评论 -
MyBatis--返回值为空记录
查询一张表的一个字段的值情况一: <select id="selectMoneyById" parameterType="java.lang.Integer" resultType="java.lang.Integer"> SELECT money FROM account WHERE 1=1 AND id=#{id} </select&g...原创 2019-05-09 00:49:06 · 1855 阅读 · 0 评论 -
MybatisPlus--整合
官网地址:http://baomidou.oschina.io/mybatis-plus-doc/#/page-plugin 1 整合。 只需要添加Mybatis-plus相关的架包即可,会自动添加Mybatis与整合Spring相关的架包。<!-- Mybatis插件 --> <dependency> <groupId>com.baomidou</gro原创 2018-01-18 17:09:54 · 37503 阅读 · 1 评论 -
Mybatis--参数与结果的映射
1 参数的映射 传递一个Map,在Xml中parameterType设置为”map”,在sql中可直接取map的key传递进去即可。 接口:public List<User> testMapParam(Map<String,Object> param);XML:<select id="testMapParam" parameterType="map" resultType="com.test.m原创 2018-01-18 18:57:48 · 790 阅读 · 0 评论 -
Hibernate--继承映射
1 多个结构整合到一张表中 1.1 比如Person类为父类,Teacher类和Student类均继承中,讲三个类生产一张表。 表结构说明: public class Person { private Integer id; private String name;//省略get与setpublic class Student extends Person{ privat原创 2017-09-13 01:11:23 · 304 阅读 · 0 评论 -
Hibernate--级联删除
1 一对多,当一的一方被删除时,由于多的一方指向该方,所以所以指向一方这条记录的信息均会被删除,以下是Demo。 实体类与配置–多的一方:public class Student { private int id; private String name; private int age; private Grade grade;}<class name="St原创 2017-07-07 10:47:38 · 551 阅读 · 0 评论 -
Hibernate--实体类与表映射01
1 主键映射;<!-- package声明pojo类所在的包,如果不写那么在class中需要指明pojo类所在的包 --><hibernate-mapping package="cn.siggy.pojo"> <!-- class指映射一个pojo类提供了公共的无参构造方法 通过反射产生对象属性用private修饰, 并且生成对应的get/set方法 ,name表示pojo类名原创 2017-07-06 14:40:55 · 544 阅读 · 0 评论 -
Hibernate--单向多对一&&单向一对多
1 多对一,从多的一方来看,即从多的一方修改配置文件。 案例:多个学生对于与一个年级。 一的一方,年级实体类:public class Grade { private int id; private String name;}实体与表字段映射:<class name="Grade"> <id name="id"> <generator c原创 2017-07-06 18:11:20 · 349 阅读 · 0 评论 -
Hibernate--hibernate.cfg.xml说明
1原创 2017-07-06 12:06:11 · 243 阅读 · 0 评论 -
Hibernate--增删改查
1 Hibernate是一个orm的轻量级框架,解决持久化操作,使得程序员可以从编写繁复的jdbc工作中解放出来。专注于我们的业务。提高程序员的开发效率。 2 Demo,实现保存用户信息 处理类:public static void main(String[] args) { // 读取src下的hibernate.cfg.xml配置文件。 Configurati原创 2017-07-06 11:48:56 · 384 阅读 · 0 评论 -
Hibernate--增删改查
1 Hibernate数据持久化,没有和Spring整合。先从Hibernate开始理解 用到的架包: 实体public class User { private int id; private String name; private String pwd; //省略get set 方法映射的表说明:<hibernate-mapping> <clas原创 2017-08-13 23:41:08 · 364 阅读 · 0 评论 -
Hibernate--与Spring整合及增删改查
1 因公司为求稳定,使用的是Spring2.5+Hibernate3,自己整合了一下,对Spring的理解又更深了一步。 使用到的架包: 通过jpa fact根据表结构生成实体@Entity@Table(name="user")@NamedQuery(name="User.findAll", query="SELECT u FROM User u")public class User原创 2017-08-13 23:24:57 · 1054 阅读 · 0 评论 -
Hibernate--HQL基础语法
package cn.siggy.test;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import org.hib转载 2017-09-08 00:01:33 · 525 阅读 · 0 评论 -
Hibernate--Criteria
//查询对象集合 @Test public void testQuery21(){ Session session = HibernateUtil.getSession(); Transaction tx = session.beginTransaction(); List<Book> list =session.createCrite原创 2017-09-25 14:55:48 · 279 阅读 · 0 评论 -
Hibernate--多对多
1 Hibernate的多对多又分为单相多对多和双向多对多,两者大同小异,产生的表结构基本相同, 中间表的外键映射: 不同的是单向能从一方通知获取一个定义为集合的字段获取另外一方的数据,而双向则均可以的。2 单向映射,只在一方配置与中间表的关系,另一方不用配置。 2.1 一方的表结构及说明 所谓单向,即该对象可以通过添加的一个集合字段来获取另一方相关的数据。 关键字cascade说明:原创 2017-09-10 16:37:05 · 370 阅读 · 0 评论 -
Hibernate--组件
1 组件作为联合标识符 组件作为联合标识符,但是必须要实现Serializable接口,必须重写equals()和hashCode方法。第二点非强制的,但是官方文档中提出推荐最好重写。 1.1 如下例子,分数表主键由学生id和课程ID联合组成。public class StudentCourse{ /** * 联合主键 */ private StudentCo原创 2017-09-11 22:39:00 · 284 阅读 · 0 评论 -
Hibernate--一对一的关联映射
1 基于外键的单向一对一关系 基于外键的一对一,只需要将多对一种外键约束添加唯一即可。配置如下:<class name="Person"> <id name="id"> <generator class="native"></generator> </id> <property name="name"/> <p原创 2017-07-09 23:45:51 · 329 阅读 · 0 评论