对用户信息的模糊查找java_框架学习系列 mybatis 第五篇 mybatis入门程序之需求开发2根据用户名模糊查询...

框架学习系列 mybatis 第五篇 mybatis入门程序之需求开发2根据用户名模糊查询

凯哥Java 凯哥java

本节主要内容

1:根据上节课中提出的需求完成②:根据用户名模糊查询${}的使用

2:测试代码实现

3:总结&下节预告

本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第五篇 mybatis入门程序之需求开发2根据用户名模糊查询.

声明:本文系凯哥Java(www.kaigejava.com)原创(微信id:kaigejava)。转载请注明出处

一:根据用户名模糊查询分析

1.1:使用sql语句模糊查询出用户名是张三的sql语句怎么写?

SELECT * FROM USER WHERE username LIKE '%张三%'

查询结果:

c2f225f49738bcdbbb7c11db4314d702.png

那么在mybatis怎么使用?

思考

1:查询传入的是string类型的。那么parameterType应该怎么写?

2:mybatis中怎么使用%%并且原文解析?是使用#{}还是使用其他的呢?

3:既然是模糊查询,查询出的是多条数据,是列表。那么resultType由应该怎么写呢?

解答:

1:回忆上节所学的。parameteType:输入参数的Java类型。可以是基本类型、对象类型、map类型等。既然是java类型的。那么String对应java类型完整怎么写呢?

java.lang.String

2:使用${}进行处理

3:再次回忆上节课。resultType:输出结果所映射的java类型(也就是单条结果所以对应的java类型)

单条结果数据的数据类型。这里单条数据类型是pojo.user所以对应的类型应该是pojo.user了。

根据以上分析,我们可以在userMapper.xml文件中得到如下配置:

如果想用#{}写的话:

测试代码中:

d668f1569fb77a528f632994880c0329.png

userMapper.xml中:

e732bd81ef3e3b36265e735b0295ca54.png

在代码中写入%%不是很好。所以优化后,使用${}

01b9e4b26b2e701abe260cb00935fc52.png

说明:

${}:表示一个sql的连接符。如果java中 +作为连接符使用一样 连接前后语句的

${value}:里面的value表示输入参数的名称

如果该参数是简单类型的,那么${}里面的参数名称必须是value

${}:这种写法存在sql注入的风险。因为是连接符作用,其中数据原样输出的

所以需要慎用!!!!

但是在一些场景下,必须使用${}这种写法。

比如:排序的是,需要动态传入排序对应列名的。所以需要使用${}来原样输出。不过多解释.

SELECT * FROM USER WHERE username LIKE '%${value}%'

二:测试代码:

42a4f1e51a0f8432aa82bb14db3dfa66.png

唯一不同的就是查询返回的是list的时候使用的是selectList

完整代码:

@Test

public void findUsersByNameTest() throws Exception{

//读取配置文件

//全局配置文件的路径

String resource = "SqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

//创建SqlSessionFactory

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//创建SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession();

//调用SqlSession的增删改查方法

//第一个参数:表示statement的唯一标示

//List list = sqlSession.selectList("test.findUserByUserName1", "%张三%");

List list = sqlSession.selectList("test.findUserByUserName", "小明");

System.out.println(list);

//关闭资源

sqlSession.close();

}

执行结果:

ced782d1b3c612d24da992997f1a9a9e.png

如果想要查看打印出的sql语句。需要添加log4j日志。

1:添加jar

4dd94f787b71c26b12f70c90b247ce20.png

2:在config文件夹下添加log4j.properties文件。

内容如下:

95f4f7e441d4cabe1045c4bab8ceb21e.png

# Global logging configuration

log4j.rootLogger=DEBUG, stdout

# Console output...

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

重新执行查看控制台输入语句:

35e9b27ef412931f3691f55534a2a1cb.png

三:总结&下节预告

通过本文学习,我们需要掌握的:

1:${}的使用。

${}的作用是什么?在什么请求下需要使用

${}为什么要慎用!!

2:log4j的使用

下节预告:

现在我们已经完成了根据id精确查找、根据用户名进行模糊查找。接下来我们要学习的是,向数据库中添加数据。那么在向数据库插入数据需要注意些什么呢?欢迎学习下一篇:《框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值