仅仅列出一些简单用法,需详细了解可以到:mybatis官网
一、引入Mybatis:
-
两种应用场景:
-
1 .普通项目:导入jar包:
mybatis-x.x.x.jar;
2 .使用maven构建项目:在pom.xml中添加依赖;
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
二、构建sqlSessionFatory
-
有两种方式构建sqlSessionFatory,仅详细介绍xml构建方式
-
1 .java代码创建配置
2 .xml配置文件
通常将myBatis的核心配置文件命名为:mybatis-config.xml;
核心配置文件通常放置位置(classpath加载资源文件):
(1)普通web项目:src/根目录
(2)maven项目:resources/目录下
mybatis-config.xml基本配置实例:
<!-- 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>
<!-- 加载properties文件,获取数据源信息 -->
<properties resource="db.properties"></properties>
<!-- 指定实体类别名的两种方式:一 -->
<typeAliases>
<!-- 一对一指定 -->
<typeAlias type="org/mybatis/example/Blog" alias="Blog"/>
</typeAliases>
<!-- 指定实体类别名的两种方式:二 ;推荐-->
<typeAliases>
<!-- 扫描包,别名为类名 -->
<package name="org/mybatis/example" />
</typeAliases>
<!-- environment 元素体中包含了事务管理和连接池的配置:必备项 -->
<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>
<!-- 映射器,映射dao层Mapper:必备项 -->
<mappers>
<!-- 方式一:全路径引用 ,需一对一引用-->
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
<!-- 方式二:完全限定资源定位符(URL) -->
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<!-- 方式三:接口实现类的完全限定类名 -->
<mapper class="org.mybatis.builder.AuthorMapper"/>
<!-- 方式四:包扫描方式,包内所有全部映射;推荐 -->
<package name="org/mybatis/example" />
</mappers>
</configuration>
-
dao层接口与映射:
-
1 .接口类命名必须与对应Mapper命名一致;
2 .接口中定义方法名必须与Mapper对应sql的id一致;
还是来个示例比较实在:
1.命名一致
2.StandardMapper
public interface StandardMapper {
//增加
Integer insertStandard(Standard standard);
//查询
public List<Standard> selectAllStandard(@Param("stdNum") String stdNum);
}
2.StandardMapper.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.xxx.dao.StandardMapper"><!-- namespace:全路径引用,必须 -->
<!-- id:对应接口中的方法名;-->
<!-- parameterType(传入数据类型,基本数据类型可省略):在核心配置xml中设置了别名可直接写实体类的名,否则需写全路径;-->
<!-- resultType(查询结果的返回值类型,基本数据类型可省略):在核心配置xml中设置了别名可直接写实体类的名,否则需写全路径 -->
<insert id="insertStandard" parameterType="Standard">
insert into standard(stdNum,stdname,version) values(#{stdNum},#{stdname},#{version})
</insert>
<!-- 返回值为集合时;resultType设置为集合中包含的类型 -->
<select id="selectAllStandard" resultType="Standard">
select * from standard
<!-- 查询条件 -->
<trim prefix="where" prefixOverrides="and | or">
<if test="stdNum != null">
and stdNum=#{stdNum}
</if>
</trim>
</select>
</mapper>
简单测试test
//核心类:SqlSessionFactoryBuilder;SqlSessionFactory;SqlSession
public String doSelect() {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
StandardMapper mapper = session.getMapper(StandardMapper.class);
List<Standard> standardList= mapper.selectList(stdNum);
//可以把结果打印到控制台查看一下
} catch (IOException e) {
e.printStackTrace();
}finally {
session.close();//一定不要忘记关闭!
}
return "";
}