mybatis可以直接执行sql吗,mybatis执行多条sql oracle

  mybatis可以直接执行sql吗,mybatis执行多条sql oracle

  00-1010 1.模糊查询2。批量删除3。表名4的动态设置。添加函数获得自增主键。

  00-1010你应该还记得sql语句的模糊查询是怎么写的,就是用关键字like,对应的通配符一起用。%表示多个字符,_表示一个字符。比如现在有一个表用户,查询名字第一个字母是L的人,选择* from user where name like _ lselect * from user where name like % l % 如果是查询名称中带有l的人;

  不能将# {0}用于模糊查询。接下来,给出一个案例来说明为测试提供了一个mapper接口,它定义了操作数据库的各种方法。

  /* * *基于用户名的模糊查询用户信息*/ListUserGetUserByLike(@ param( username )字符串用户名);在映射文件中写上我们要进行执行的sql语句

  select id= getUserByLike resulttype= com . at guigu . mybatis . POJO . user select * from t _ user where username like % # { username } % ;/选择然后进行测试

  那么如何解决上述问题呢?有两种方法可以解决。

  解决方法1

  SQL语句中的# {}被替换为$ {}

  select id= getUserByLike resulttype= com . at guigu . mybatis . POJO . user select * from t _ user where username like % $ { username } % ;/选择

  解决方法2

  使用字符串串联

  select id= getUserByLike resultType= com . at guigu . mybatis . POJO . user select * from t _ user where username like concat( % ,#{username}, % );/选择

  解决方法3(建议使用这种方式)

  select id= getUserByLike resultType= com . at guigu . mybatis . POJO . user select * from t _ user where username like % # { username } % ;/选择

  

目录

delete from 表名 where 筛选条件

 

  int delete(@Param(ids )字符串id);在映射文件中写下面的代码

  delete id= delete delete from t _ user where id in(# { ids });/删除

  那我们要怎么解决呢?

  可以使用${}

  delete id= delete delete from t _ user where id in(# { ids });/删除

  总结: 在这里不能使用# {0}进行批量删除,因为它会自动添加“”进行字符串拼接。但是,在我们的数据库中,字段id的属性是int类型,这是不正确的,因为# {0}会自动添加单引号。但是,如果id字段的属性是varchar,我们必须使用# {]而不是$ {}

  00-1010也就是说我们查询的时候,能不能不把表名写死?我们可以传入表名,然后根据表名查询数据。

  /* * *查询表名查询数据*/ListUserGetUserByTableName(@ param( TableName )字符串表);select id= getUserByTableName resultType= com . at guigu . mybatis . POJO . user select * from $ { tableName }/select

  比如注意点:以前学MySQL的时候,写了一个查询语句select * from user我们不能在这里引用表名,对吗?同理,我们也不能在映射文件中写的sql语句中引用表名,这样就变成了字符串,所以要用$ {}来动态设置表名。

  00-1010 t _ clazz (clazz _ id,clazz _ name)t _ student(student _ id,student _ name,clazz _ id) 1。添加班级信息2。获取新添加的类id3。给学生分配班级,也就是说把某个学生的班级id改成新增加的班级id/**添加用户信息useGeneratedKeys:设置keyProperty使用自增:因为添加、删除、更改的统一返回值是受影响的行数,所以只能把获取的自增键放在传递的参数User object */int inserter(User User)的某个属性中;-int insertUser(user user);-insert id= insertUser usegeneratedkeys= true key property= id insert into t _ user values(null,#{username},# { password })/在此插入。本文介绍了Mybatis中特殊SQL的执行。关于Mybatis SQL执行的更多信息,请搜索Popular IT之前的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: