mybatis(3.3.1version)是一个比较轻量级的O/R Mapping框架,跟Hibernate对比安装和配置都要简单许多。将mybatis.jar引入到项目中即可。安装之后下面的工作就是要配置相关文件。mybatis配置文件主要包含两个部门一个是核心配置文件也可称为主配文件,另一部分的配置就是若干个Mapper配置文件。
mybatis主配置文件,配置项标签要有序,顺序如下
( properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, plugins?,environments?,databaseIdProvider?,mappers?)
<?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>
<properties resource="conf/datasource/jdbc.properties"></properties>
<settings>
<!-- 配置开启日志 Log4j -->
<setting name="logImpl" value="LOG4J"/>
<!-- <setting name="logImpl" value="SLF4J"/> -->
</settings>
<typeAliases>
<typeAlias alias="Group" type="org.lian.domain.Group"/>
<package name="org.lian.domain"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="conf/mybatis/mapper/GroupMapper.xml"/>
<mapper resource="conf/mybatis/mapper/MusicMapper.xml"/>
</mappers>
</configuration>
下面是*Mapper.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="org.lian.domain.Music">
<!-- <resultMap id="musicResult" type="Music">
<id property="groupId" column="group_id"/>
<result property="groupName" column="group_name"/>
</resultMap> -->
<!-- <select id="selectGroup" parameterType="String" resultType="Group">
select group_id ,group_name from t_group where group_id = #{group_id}
</select> -->
<!-- 开启二级缓存 Music domain类 Javabean对象要实现Serializable接口 -->
<!-- <cache/> -->
<sql id="musicColumns"> id, name, singer, author, composer, album, duration, style </sql>
<select id="selectMusic" parameterType="String" resultType="Music">
select
<include refid="musicColumns"></include>
from t_music
where id = #{musicId}
</select>
</mapper>
domain实体类Music.java,省略setter和getter方法,这里采用了mybatis注解,来简化typeAliases配置。
@SuppressWarnings("serial")
@Alias("Music")
public class Music implements Serializable {
private String id;
/**
* 名称
*/
private String name;
/**
* 歌手
*/
private String singer;
/**
* 专辑
*/
private String album;
/**
* 歌曲时长
*/
private String duration;
/**
* 作词
*/
private String author;
/**
* 作曲
*/
private String composer;
/**
* 曲风
*/
private String style;
}
上面工作将jdomain类Javabean对象和mybatis映射上,下面工作如何来获取SqlSessionFactory和SqlSession对象,这是我们写dao层要使用到最重要的两个对象。
public class MyBatisUtil {
private static final SqlSessionFactory sqlSessionFactory = buildSqlSessionFactory();
private static SqlSessionFactory buildSqlSessionFactory() {
String resource = "conf/mybatis/mybatis_core.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
return sqlSessionFactory;
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException();
}
}
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
}
dao层通过SqlSession对象来访问数据库
public class MusicDaoImpl implements MusicDao {
@Override
public Music selectMusicById(String musicId) {
StringBuilder statement = new StringBuilder();
statement.append(namespace);
statement.append("selectMusic");
SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();
try {
// 这里使用泛型
Music music = sqlSession.selectOne(statement.toString(), musicId);
return music;
} finally {
sqlSession.close();
}
}
}
参考网址:http://www.mybatis.org/mybatis-3/zh/index.html
本文介绍了MyBatis 3.3.1版本的安装配置流程及使用方法,包括核心配置文件与Mapper配置文件的设置,并展示了如何通过SqlSession进行数据库操作。
1559

被折叠的 条评论
为什么被折叠?



