MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
一、MyBatis框架的优点:
-
与JDBC相比,减少了50%以上的代码量。
-
MyBatis是最简单的持久化框架,小巧并且简单易学。
-
MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。
-
提供XML标签,支持编写动态SQL语句。
-
提供映射标签,支持对象与数据库的ORM字段关系映射。
mybatis框架使用的缺点
-
SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。
-
SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
三、MyBatis框架适用场合:
MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。
对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。
2.快速入门
2.1引入依赖
: 要使用mybtis的框架必须在pom文件中引入相关的依赖
完整的pom.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>itcast-parent</artifactId>
<groupId>cn.itcast.parent</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itcast</groupId>
<artifactId>mybatis</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
</dependencies>
</project>
2.2编写核心配置文件
在src/main/resources下创建mybatis核心配置文件mybatis-config.xml,核心配置文件的名字可以自定义,一般叫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="test">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--指定驱动类名-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!-- 指定连接地址 -->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<!-- 指定用户名 -->
<property name="username" value="root"/>
<!-- 指定密码 -->
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"></mapper>
</mappers>
</configuration>
-
2.3映射文件
-
里面存放了大量的sql语句; 一旦我们写了映射文件,我们就要在核心配置文件中引入,因为映射文件并不会被加载的进去的;
<?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"> <!--映射文件的作用:用来存放sql语句 namespace:命名空间 --> <mapper namespace="UserMapper"> <!--select标签:表示一条查询的sql语句 id属性:sql语句的唯一表示,在同一namespace下唯一,通过namespace+id的形式来调用sql语句 resultType属性:查询语句的结果类型,此处写的是全路径名 在select标签中写查询的sql语句:#{id}表示接收参数,如果只有一个参数,参数名随便写 --> <select id="findUserById" resultType="cn.itcast.domain.User"> select * from tb_user where id = #{id} </select> </mapper>
然后就可以编写代码进行测试了.