Mybatis入门

今天我们来看看ssm框架中的mybatis。

Mybatis定义

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 简单来说就是操作数据库进行CRUD的操作,简化了JBDC代码

1.Mybatis的核心配置文件

 

perproties

 

<properties resource="db.properties" >

</properties>

可以连接外部的资源文件,也可以在property中配置属性

setting

<settings>
<!--设置开启日志输出-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

用来设置一些配置 比如日志,驼峰命名规则

typeAliases

<!--可以给实体类设置别名,在程序中只需要写别名就好-->
<typeAliases>
<typeAlias type="com.zhang.pojo.User" alias="User"/>
</typeAliases>

environments

<!--环境配置-->
<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>
表明我们连接的事务管理JDBC,下面的属性property来自我们的perproties中连接的db.properties配置文件

mappers

<!--每一个Mapper.xml都需要在Mybatis核心配置文件中注册!-->
<mappers>
<mapper class="com.zhang.Dao.UserMapper"/>
</mappers>

2.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="com.zhang.Dao.UserMapper">
<!--select查询语句-->
<select id="getListUser" resultType="User">
select * from mybatis.mybatis
</select>
</mapper>

<!--namespace(命名空间) = 绑定一个对应的Dao/Mapper接口  需要写全限定名-->
<!--id用来绑定接口中的方法名称-->
<!--resultType:返回值类型-->
中间就是sql语句

3.sqlSessionFactory & sqlSession

//sqlSessionFactory  -->  sqlSession
public class MybatisUtil{
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用mybatis的第一步,获取到sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}

//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
// 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}

这是我们的一个工具类用来生产可以执行SQL的sqlSession
1.通过Resources.getResourceAsStream(resource)将mybatis的核心配置文件读进来
2.SqlSessionFactoryBuilder().build(inputStream)生产出sqlSessionFactory
3.通过sqlSessionfactory的openSession()得到可以执行sql的sqlSession







上一篇:通过java编程 不使用 XML 构建 SqlSessionFactory


下一篇:Mybatis 作用域和生命周期