框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

来源:互联网 发布:nginx 注册域名 编辑:程序博客网 时间:2024/06/10 08:42

本节主要内容

1:根据上节课中提出的需求完成①:根据用户id查询用户信息(#{}的使用)

2:代码实现

3:总结&下节预告

本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第四篇 mybatis入门程序之需求开发1根据id进行精确查找.

声明:本文系凯哥原创。转载请注明出处

一:根据用户id查询用户信息

1:在config目录下,创建userMapper.xml文件(这种命名规范是由ibatis遗留下来的)

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

userMapper.xml中内容:

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

说明:

namespace:命名空间。作业:其实就是对sql语句也就是statement进行分类管理。如果我们java中报名作用一样。同一个命名空间下,id只能是唯一的。不能重复。在不同命名空间下,id可以相同。

另:在mapper代理时候,有具体特殊及重要的作用。

<select></select> : 表示一个mappedStatementduix .执行那种操作。select执行的是查询操作

id:statement的唯一标示。一般和namespace命名空间联合使用确定整个项目中该sql语句是唯一的

#{}:表示一个占位符.就是jdbc连接中的?占位符一样的

#{id}:里面的id表示输入参数的名称。如果该参数是简单类型的。那么#{}里面的参数名称可以任意写

parameteType:输入参数的Java类型。可以是基本类型、对象类型、map类型等

resultType:输出结果所映射的java类型(也就是单条结果所以对应的java类型)。在本例中我们通过id查询后的结果对象就userpojo对象。所以就是pojo.user了。

完整代码:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

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

<mapper namespace="test">

<!-- 根据用户ID查询用户信息 -->

<!-- select:表示一个mappedStatement对象。将要执行那种操作 -->

<!-- id:statement的唯一标示 -->

<!-- #{}:表示一个占位符?。就是jdbc中sql语句中的?一样 -->

<!-- #{id}:里面的id表示输入参数的参数名称,

如果该参数是简单类型的,那么#{}里面的参数名称可以任意 -->

<!-- parameterType:输入参数的java类型 -->

<!-- resultType:输出结果的所映射的Java类型(单条结果所对应的java类型) -->

<select id="findUserById" parameterType="int" resultType="com.kaigejava.mybatis.pojo.User">

SELECT

* FROM USER WHERE id =#{id}

</select>

</mapper>

2:将创建的userMapper.xml文件添加到mybatis的全局配置文件中进行管理。

如下图:

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

二:测试代码开发

开发步骤:

回忆mybatis的执行步骤

1:获取全局的配置文件

2:根据配置文件信息创建sqlsessionFactory对象

3:有sqlsessionFactory对象获取到sqlsession对象

4:调用sqlsession对象的执行方法进行数据库操作

5:根据输入参数(类型)、sql语句得到对应的返回数据

所以根据上面步骤我们可以写出如下代码:

3.1:设置读取配置文件

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

3.2:使用流读取

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

3.3:创建sqlsessionFactory对象

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

3.4:由sessionfactroy对象获取到sqlsession对象

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

3.5://5:调用sqlsessiond 增删改查方法

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

说明:

第一参数:需要执行的sql语句唯一标示。命名空间+语句id

第二个参数:就是占位符?需要传递的值

3.6:关闭资源

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

完整代码:

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

代码如下:

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运行后:

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

绿色表示成功。执行后结果:

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

查看数据库中id为1的用户信息:

框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1

说明测试代码正确!

三:总结&下节预告

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

1:userMapper.xml中配置怎么写以及各个参数分别表示什么

namespace、select、id、parameterType、resultType分别代表什么意思

2:mybatis的执行顺序(执行流程)

3:mybatis测试代码开发的步骤

4:#{}的用户

下节预告:

完成了根据id进行精确查找后,下面我们接着学习根据name进行模糊查询。以及${}的用法欢迎学习下一篇《框架学习系列 mybatis 第五篇 mybatis入门程序之需求开发2根据用户名模糊查询》

阅读全文
1 0
原创粉丝点击