1、创建po类
根据数据库字段一一生成表的po类
在此处我们生成一个User类
//属性名和数据库表的字段一一对应
private int id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址
get and set...
2、配置映射文件(User.xml)
映射文件命名:
mapper代理的映射文件名称格式为xxxMapper.xml,比如:UserMapper.xml,ItemsMapper.xml
在映射文件中配置sql语句,插入初始化语句:
<?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">
</mapper>
我们在mapper中插入如下代码: <!-- 在映射文件中配置很多sql语句 -->
<!--
需求:通过id查询用户数据
-->
<!--
通过select来执行数据库的查询操作
ID:标识映射文件中的sql,成为statementid
将sql语句封装到mappedStatement对象中
parameterType: 指定输入参数的类型,这里指定为int型
#{}表示一个占位符
#{id},其中的id表示接受输入的参数,参数名称为id
resultType : 指定sql输出结果所映射的java对象类型,这里select指定resultType表示单条记录所映射成的java对象
-->
<select id="findUserById" parameterType="int" resultType="pojo.User">
SELECT * FROM USER WHERE id = #{id}
</select>
3、在SqlMapConfig.xml中加载映射文件
在SqlMapConfig.xml中加载User.xml
<!-- 加载映射文件 -->
<mappers>
<mapper resource="sqlmap/User.xml"></mapper>
</mappers>
4、程序编写
在这里我们先用Junit单元测试测试一下,
新建一个测试类,在测试类下加入如下代码(过程可看注释)
//根据id查询用户的信息,得到一条记录
@Test
public void findUserByIdTest(){
//mybatis配置文件
String resource = "SqlMapConfig.xml";
SqlSession sqlSession = null;
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂,传入mybatis的配置信息
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂得到SqlSession
sqlSession = sqlSessionFactory.openSession();
//通过SqlSession来操作数据库
//第一个参数:映射文件中的statementID 等于namespace + "." + ID
//第二个参数:和映射文件中所匹配的parameterType类型的参数
//sqlSession.selectOne 的结果类型就是你映射文件中所匹配的resultType类型
User user = sqlSession.selectOne("test.findUserById", 1);
System.out.print(user);
}catch (IOException e){
e.printStackTrace();
}finally {
//释放资源
sqlSession.close();
}
}
测试运行后可看结果
映射文件命名:
mapper代理的映射文件名称格式为xxxMapper.xml,比如:UserMapper.xml,ItemsMapper.xml