构建一个使用mybatis框架的项目
mybatis是一个ORM框架,你可以把它当作是数据层跟数据库连接使用的框架。具体mybatis是什么,可以去官网,也可以百度搜索。温馨提醒:官网教程有中文版的。
本文目的
本文讲解的是如何在一个项目里面使用mybatis框架。
如何使用mybatis框架
步骤一
首先你应该新建了一个项目,这个项目就是你想要使用mybatis框架的项目。
步骤二
定义mybatis的配置文件。你可以命名为:mybatis-config.xml,并把该配置文件放在类路径下(其实并非一定要放在类路径下,但是如果不是放在类路径下,你就需要使用 file:// 的 URL 形式的文件路径来获取该配置文件)。
配置文件mybatis-config.xml的内容如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
其中dataSource标签是你需要修改的地方,你需要在${driver}等四个位置上换成你的数据库连接的驱动、用户名和密码等信息,就想在JDBC上使用的一样。
步骤三
在某一个包下,定义一个类和一个配置文件。下面进行代码的示范。
类名为:ModuleManageMapper.java,代码如下:
package com.wanggt.freedom.SHB.server.mapper;
import com.wanggt.freedom.SHB.bean.ModuleBean;
public interface ModuleManageMapper {
ModuleBean[] getModules(int id);
}
配置文件名称为ModuleManageMapper.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">
<mapper namespace="com.wanggt.freedom.SHB.server.mapper.ModuleManageMapper">
<select id="getModules" resultType="moduleBean">
SELECT * FROM module WHERE id = #{id}
</select>
</mapper>
你是否发现了有何特点?
- java类名称跟配置文件的名称只有后缀名的不同
- java类的包名加上类名等于配置文件<mapper>
元素的namespace属性的值
- 配置文件<mapper>
元素的子元素的id属性跟java类的方法名称对应,其实resultType属性的值跟java类对应方法上的返回值也是对应的,甚至于<select>
元素的占位符#{id}
跟对应方法的参数也是对应的
步骤四
写使用mybatis的类。
InputStream configStream = null;
SqlSession sqlSession = null;
ModuleBean[] allModuleBeans =null;
try {
configStream = Resources.getResourceAsStream("com/wanggt/freedom/SHB/mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configStream);
sqlSession = sqlSessionFactory.openSession();
ModuleManageMapper moduleManageMapper = sqlSession.getMapper(ModuleManageMapper.class);
// sqlSession.close();
allModuleBeans = moduleManageMapper.getModules();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
sqlSession.close();
}
注意:SqlSession对象要关闭。
参考资料
mybatis官网中文教程:http://www.mybatis.org/mybatis-3/zh/index.html