写在前面的话:暂无
- 【初学Mybatis】No.1 使用Maven创建一个JavaWeb3.0项目
- 【初学Mybatis】No.2 Mybatis的下载和搭建核心架构(Maven搭建)
- 【初学Mybatis】No.3 SQL基本配置与执行
No.1 拷贝SQL语句配置模版
路径为:\src\test\java\org\apache\ibatis\submitted\complex_property\User.xml
推荐拷贝到resources\mybatis\sqlxml\
下,如图所示:
由于此处的例子主要用于处理消息,我将它重命名为
message.xml
以示区别。
如图所示:
关于Message.xml的说明放在第二步中
No.2 在核心配置文件中导入SQL语句配置文件
- 打开核心配置文件:Configuration.xml
- 使用
<mappers></mappers>
标签对第一步中的SQL语句配置模版进行加载 - 在resource后面加上Message.xml的配置文件路径
<!-- Message SQL语句配置文件 -->
<mappers>
<mapper resource="mybatis/sqlxml/Message.xml"/>
</mappers>
关于Message.xml的简单说明(包含整个Message.xml文件):
<?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">
<!-- 类似于JAVA中的包,主要用于在JAVA代码对SQL语句的寻找,每个SQL语句配置文件都需要有这namespace -->
<mapper namespace="Message">
<!-- com.baofeidyz.entity.Message 对应关系,对比在JAVA JDBC代码中的各种set语句;
type对应java中的类,需要详细写明包名;
id是唯一的标识,在整个Mybatis环境中,不可重复;
<id/>表示在数据库中作为主键的参数,其他参数则使用<result/>标签表示;
jdbcType与JAVA代码中 java.sql.Types.* 中的相同,均表示该参数的数据类型;
property对应在java类中的属性名;
以此形成一一对应的关系。
-->
<resultMap type="com.baofeidyz.entity.Message" id="MessageResult">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="command" jdbcType="VARCHAR" property="command"/>
<result column="description" jdbcType="VARCHAR" property="description"/>
<result column="content" jdbcType="VARCHAR" property="content"/>
</resultMap>
<!-- 所有的.xml配置文件中,id都是唯一的
resultMap表示数据的对应关系,resultMap顺序应在select语句之前
-->
<select id="queryMessageList" parameterType="com.baofeidyz.entity.Message" resultMap="MessageResult">
SELECT id,command,description,content FROM message WHERE 1 = 1
</select>
</mapper>
No.3 在JAVA代码使用sqlSession对象进行数据库操作
返回到之前的dao层中去,找到之前写好的MessageDao类
package com.baofeidyz.dao;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.baofeidyz.db.DBAccess;
import com.baofeidyz.entity.Message;
/**
*
* 描述:和message表相关的数据库操作
* 开发人员:暴沸
* 开发时间: 2017年2月7日 下午9:08:11
* 联系方式:admin@baofeidyz.com
*
*/
public class MessageDao {
/**
* 根据查询条件查询消息列表
*/
public List<Message> queryMessageList(String command,String description){
List<Message> list = new ArrayList<>();
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
try {
//通过daAccess对象获取sqlSession对象
sqlSession = dbAccess.getSqlSession();
//通过sqlSession执行SQL语句
//直接使用namespace.id即可找到已经在Message.xml文件中配置好的SQL语句
list = sqlSession.selectList("Message.queryMessageList");
} catch (IOException e) {
e.printStackTrace();
}finally{
//sqlSession.close();
}
return list;
}
//测试类,请自行删除
public static void main(String[] args) {
MessageDao messageDao = new MessageDao();
List<Message> list = messageDao.queryMessageList("", "");
System.out.println(list.size());
}
}
git地址:https://code.csdn.net/baofeidyz/mybatisstudypratice02mircromessage_no-3/tree/master
资源地址:http://download.csdn.net/detail/baofeidyz/9752621 解压密码: baofeidyz