抽取SqlSessionFactoryUtils工具类,共享SqlSessionFactory创建过程

  1. /**
  2. * SqlSessionFactory工具类
  3. * @author:Mr.Tan
  4. * @Create:2018-10-30-23-14
  5. **/
  6. public class SqlSessionFactoryUtils {
  7. private static SqlSessionFactory sqlSessionFactor;
  8.  
  9. static {
  10. try {
  11. //创建SqlSessionFactoryBuilder对象
  12. SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
  13. //创建核心配置文件的输入流
  14. InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
  15. //通过输入流创建SqlSessionFactor对象
  16. sqlSessionFactor=ssfb.build(inputStream);
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. }
  20.  
  21. }
  22.  
  23. /**
  24. * 获取SqlSessionFactory
  25. * @return
  26. */
  27. public static SqlSessionFactory getSqlSessionFactor() {
  28. return sqlSessionFactor;
  29. }
  30.  
  31. public static void setSqlSessionFactor(SqlSessionFactory sqlSessionFactor) {
  32. SqlSessionFactoryUtils.sqlSessionFactor = sqlSessionFactor;
  33. }
  34. }

根据用户ID查询用户信息

 

修改 映射文件与sql

  1. <!--#{}相当于jdbc的?-->
    <!--${}:字符串拼接指令,如果入参为普通数据类型{}内部职能写value-->
  1. <!--如果返回结果为集合时,只需设置为每一个的数据类型-->
  2. <select id="getUserByUserName" parameterType="String" resultType="com.tanlei.newer.pojo.User">
  3. <!--SELECT id,username,birthday,sex,address FROM user WHERE username LIKE #{name}-->
  4. SELECT id,username,birthday,sex,address FROM user WHERE username LIKE '%${value}%'
  5. </select>
  1. @Test
  2. public void testGetUserByUserName(){
  3. //获取SqlSessionFactory
  4. SqlSessionFactory sqlSessionFactor= SqlSessionFactoryUtils.getSqlSessionFactor();
  5. //创建sqlSession对象
  6. SqlSession sqlSession=sqlSessionFactor.openSession();
  7. // List<User> list=sqlSession.selectList("user.getUserByUserName","%张%");
  8. List<User> list=sqlSession.selectList("user.getUserByUserName","张");
  9. for(User user:list){
  10. System.out.println(user);
  11. }
  12. //释放资源
  13. sqlSession.close();
  14. }

  

Mybatis通过工具类根据用户名查找用户列表的更多相关文章

  1. Mybatis(二)入门程序-通过id查找用户、模糊查找用户、添加用户、删除用户

    根据下图myBatis的架构,创建一个使用MyBatis的工程.       一.配置MyBatis 环境(如图) 1.sqlMapConfig.xml 首先,导入jar包(上图右边)并加载路径,然后 ...

  2. (3).mybatis编写工具类

    编写工具类 复用与重构 复用:使用方法与函数,复用的类,构成JAR包.(工具类属于复用) 一.创建工具类(一般在src下创建util包,在util包下创建工具类). 例如:MybatisUtilds为 ...

  3. java工具类学习,系统中用户密码加密总结

    现在项目,用户注册登录部分很少有涉及到了,原因:现在热门开发框架都已经在底层帮我们做了一套用户注册,密码加密,登录认证,权限控制,缓存数据等基本功能. 这有利于项目的快速完成,只需要搬砖码畜们专注于业 ...

  4. MyBatis工厂工具类 MyBatisUtils

    import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apach ...

  5. [工具类]获取url中参数列表

    写在前面 在项目中经常用到解析url中参数的逻辑,今天先下载就自己封装了一个方法,方便以后使用的时候,信手拈来.当然这里给出的方法是针对常见的url参数类型的,对于重写url,或者路由格式的不考虑. ...

  6. Colletions工具类常用方法

    Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合 排序操作 void reverse(List list)/ ...

  7. Collections 工具类和 Arrays 工具类常见方法

    Collections Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void revers ...

  8. Collections 工具类常见方法

    Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void reverse(List list) ...

  9. mybatis的基本配置:实体类、配置文件、映射文件、工具类 、mapper接口

    搭建项目 一:lib(关于框架的jar包和数据库驱动的jar包) 1,第一步:先把mybatis的核心类库放进lib里

随机推荐

  1. map 的使用 UVA156

    借用这一水题来熟悉map的操作,以前以为看过c++ primer,对map虽然不熟悉但用还是会用的,实际上手发现不是那么回事,还是有很多坑的 #include <iostream> #in ...

  2. 嘴巴题3 「BZOJ1412」[ZJOI2009] 狼和羊的故事

    「BZOJ1412」[ZJOI2009] 狼和羊的故事 Description "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" Or ...

  3. 解决ios移动端双击页面下移

    ios移动端在双击弹出层的时候会出现页面下移,露出底层页面的现象 解决办法: <!DOCTYPE html> <html> <head> <meta char ...

  4. php连接数据库查询方法(还少一种pdo方法)

    <?php header("content-type:text/html;charset=utf-8"); $conn = mysql_connect("local ...

  5. HTTP协议①介绍

    HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/IP通信 ...

  6. [转]js设计模式-策略模式

    在程序设计中,常常遇到类似的情况,要实现某一个功能有多种方案可以选择.比如一个压缩文件的程序,既可以选择zip算法,也可以选择gzip算法.这些算法灵活多样,而且可以随意互相替换.这种解决方案就是本文 ...

  7. HTML连载58-绝对定位的参考点以及注意事项

    一.绝对定位参考点 1.规律: (1)默认情况下所有的绝对定位的元素,无论有没有祖先元素,都会以body作为参考点. <style> .box1{ width: 300px; height ...

  8. LintCode_41 最大子数组

    题目 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和. 注意事项 子数组最少包含一个数 样例 给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1] ...

  9. ES6 新的数据类型Map和Set

    Map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array: var names = ['Michael', 'Bo ...

  10. 关于neo4j的嵌入式和驱动包模式该如何选择,还请解惑

    看了网上的一些资料和Neo4j权威指南这本书.与图遍历相关的介绍都是基于嵌入式模式下的java Api.但是个人觉得在实际的项目中,嵌入式的模式,代码必须放在数据库所在服务器上,且服务器的启停操作都在 ...