Mybatis中的模糊查询

1.当我们从数据库中查询数据时,大批量的数据会存在相同的数据。比如重名的人,当我们使用姓名查询该姓名的所有数据时,我们需要在Mybatis中使用到模糊查询的概念。

在接口中定义函数:

    //模糊查询 使用name查询的数据为对象TB7,返回的不止一个对象使用List
	public List<TB7> queryByName(String name);

2.映射器中解析Mapper。

  <select id="queryByName" parameterType="java.lang.String" resultType="tB7" >
     select id,username,salary,age,depart from tb7
     where username like concat('%',#{username},'%')
  </select>
  • id为接口中函数名。
  • parameterType为方法的参数类型。
  • resultType为字段传入数据库中查询获得的数据返回的为什么类型。
  • concat('%',#{username},'%')的使用防止了SQL注入的产生。

3.PreparedStatement和Statement的区别?

联系:

  • PreparedStatement继承与Statement,两者均为接口。
  • PreparedStatement和Statement都可以实现对数据表的CURD操作。

区别:

  • PreparedStatement是预编译的,可以使用占位符,批处理比Statement效率高。
  • 在对数据库只执行一次性存取的时候,用Statement对象进行处理。使用PreparedStatement对象比Statement对象的开销大,对于一次性操作而言并不会带来额外的好处。
  • Statement每次执行SQL语句,相关数据库都要执行SQL语句的编译。而PreparedStatement对SQL语句进行预编译,支持批处理。
  • 执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象,通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候,PreparedStatement对象允许数据库预编译SQL语句,这样在随后的程序运行中可以节省时间并增加代码的可读性。
  • 使用PreparedStatement较于Statement的好处:(一)拼串(二)SQL注入问题

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值