mysql的sql.xml_SpringBoot-MySQL(结合XML,多条查询,动态SQL)

XML文件

在resource下面建立一个包,命名为mapper,再创建sring config文件

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

SELECT*FROM t1

WHERE id=#{id}

注意头部的两个标签,制定了xml的属性信息,是公用的

其次指定标签表示其为在mapper中使用的信息,同时指定命名空间namespace(就是在mapper中定义的类名)

在内即包含了由sql语句命名的标签,如

在中,需要指定id,即namespace中的类对应的方法名(此处就完成了XML文件中sql语句和mapper文件中类方法的连接)

同时也需要指定resultType,来表示返回值的类型,如果是自定的实体类,需要完成写出,如com.Lee.connect.table.TableUser

如果没有返回值,则不需要指定

对于自增长id(增加数据操作),将如下的@Option设置添加到标签内

@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")

此时在select标签中就可以写入相应的select语句,但仍要使用mapper中定义的变量

(sql语句建议使用大写,并在必要的地方换行)

属性文件

mybatis.mapper-locations=classpath:**/mapper/*.xml

作用是扫描Mapper接口对应的XML文件,此处指的是resources下mapper位置对应的所有xml文件

mybatis.typeAliasesPackage=com.Lee.connect.mapper

使用如上方法来指定项目中的mapper

logging.level.com.Lee.connect.mapper=debug

使用logging.level来对mapper的执行进行输出

http请求调用了mapper,其会在idea控制台输出程序的执行信息,即调试日志

mapper

packagecom.Lee.connect.mapper;importcom.Lee.connect.table.TableUser;import org.apache.ibatis.annotations.*;importorg.springframework.stereotype.Component;

@Mapper

@Component(value= "UserMapper")public interfaceUserMapper {//select

TableUser getUserById(@Param("id") Integer id);

此时就可以不使用注解@Select进行加载,而可以直接定义方法

动态sql语句

mapper语句

//select by page

List getUserByPage(@Param("UserName") String UserName);

此处会返回多条数据,所以使用LIst来接收对象的多个数据

注意此处需要调用如下库

import java.util.List;

系统有时会自动调用如下库,会报错

import java.awt.*;

controller语句

@RequestMapping(value = "/getUserByPage")

@ResponseBodypublic Object getUserByPage(@RequestParam("UserName") String UserName){

List users =userMapper.getUserByPage(UserName);returnusers;

}

此处同样使用LIst实例后的user对象接收多条数据

sql语句

select *from sys_test

where1=1

and name=#{name}

标签里的内容会将select * from sys_test的数据进一步细分

在其内部添加,注意条件选择一般会加上and,表示条件符合则继续执行(sql中每个语句前面都要加个关键字)

所以上述的执行就是如果test中的name = != null成立,则执行where 1=1 and name = #{name}

(1=1的作用就是后面可以使用and来连接多个条件)

此处就是if条件成立,则共同执行1=1和name=#{name}

因为此处的where没有<>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值