本节主要内容
1:根据上节课中提出的需求完成①:根据用户id查询用户信息(#{}的使用)
2:代码实现
3:总结&下节预告
本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第四篇 mybatis入门程序之需求开发1根据id进行精确查找.
一:根据用户id查询用户信息
1:在config目录下,创建userMapper.xml文件(这种命名规范是由ibatis遗留下来的)
userMapper.xml中内容:
说明:
namespace:命名空间。作业:其实就是对sql语句也就是statement进行分类管理。如果我们java中报名作用一样。同一个命名空间下,id只能是唯一的。不能重复。在不同命名空间下,id可以相同。
另:在mapper代理时候,有具体特殊及重要的作用。
: 表示一个mappedStatementduix .执行那种操作。select执行的是查询操作
id:statement的唯一标示。一般和namespace命名空间联合使用确定整个项目中该sql语句是唯一的
#{}:表示一个占位符.就是jdbc连接中的?占位符一样的
#{id}:里面的id表示输入参数的名称。如果该参数是简单类型的。那么#{}里面的参数名称可以任意写
parameteType:输入参数的Java类型。可以是基本类型、对象类型、map类型等
resultType:输出结果所映射的java类型(也就是单条结果所以对应的java类型)。在本例中我们通过id查询后的结果对象就userpojo对象。所以就是pojo.user了。
完整代码:
<?xml>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
2:将创建的userMapper.xml文件添加到mybatis的全局配置文件中进行管理。
如下图:
二:测试代码开发
开发步骤:
回忆mybatis的执行步骤
1:获取全局的配置文件
2:根据配置文件信息创建sqlsessionFactory对象
3:有sqlsessionFactory对象获取到sqlsession对象
4:调用sqlsession对象的执行方法进行数据库操作
5:根据输入参数(类型)、sql语句得到对应的返回数据
所以根据上面步骤我们可以写出如下代码:
3.1:设置读取配置文件
3.2:使用流读取
3.3:创建sqlsessionFactory对象
3.4:由sessionfactroy对象获取到sqlsession对象
3.5://5:调用sqlsessiond 增删改查方法
说明:
第一参数:需要执行的sql语句唯一标示。命名空间+语句id
第二个参数:就是占位符?需要传递的值
3.6:关闭资源
完整代码:
代码如下:
public class TestUser {
/**
*测试根据id进行查询
*@throws Exception
*/
@Test
public void findUserByIdTest() throws Exception{
//1:设置读取配置文件。全局配置文件的路径
String resourcePath = "SqlMapConfig.xml";
//2:使用流读取
InputStream inputStream = Resources.getResourceAsStream(resourcePath);
//3:创建sqlsessionFactory对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//4:由sessionfactroy对象获取到sqlsession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//5:调用sqlsessiond 增删改查方法
//第一个参数:statement的唯一标示。
User user = sqlSession.selectOne("test.findUserById",1);
System.out.println(user==null?new User():user.toString());
//6:关闭资源
sqlSession.close();
}
}
使用junit运行后:
绿色表示成功。执行后结果:
查看数据库中id为1的用户信息:
说明测试代码正确!
三:总结&下节预告
通过本文学习我们需要掌握的
1:userMapper.xml中配置怎么写以及各个参数分别表示什么
namespace、select、id、parameterType、resultType分别代表什么意思
2:mybatis的执行顺序(执行流程)
3:mybatis测试代码开发的步骤
4:#{}的用户
下节预告:
完成了根据id进行精确查找后,下面我们接着学习根据name进行模糊查询。以及${}的用法欢迎学习下一篇《框架学习系列 mybatis 第五篇 mybatis入门程序之需求开发2根据用户名模糊查询》
框架学习系列 mybatis 第二篇 mybatis的工作原理
框架学习系列 mybatis 第三篇 mybatis入门程序之工程项目的搭建