什么是MyBatis?
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。 MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录
1.MyBATIS 目前提供了三种语言实现的版本,包括:Java、.NET以及Ruby。(我主要学习java,就讲java的使用)
2.它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
3.mybatis与hibernate的对比?
<?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="mysql.properties"></properties>
<!-- 配置mybatis运行环境 -->
<environments default="cybatis">
<environment id="cybatis">
<!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
<transactionManager type="JDBC" />
<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- UNPOOLED 表示不支持数据源连接池 -->
<!-- JNDI 表示支持外部数据源连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
</configuration>
一、查询
一对一查询:
resultType:自定义一个pojo类包含查询结果的所有字段即可实现映射,无特殊需求(其别名、延迟加载)是用resultType
resultMap:映射到一个项目的vo类,关联的属性用association进行进一步的关联查询,用javaType表示类型,用可实现延迟加载,可用继承省略相同的联系
一对多查询:
由于一对多关系较为特殊,多的部分如果列入每个pojo则一的部分会出现重复,及每个情况一条记录,一对多也可使用resultMap,多的部分设为一的部分的集合属性,用collection关键字,用oftype表示类型
多对多查询:
同理,有映射要求的(关联关系定义)用resultMap,且collection和association可自嵌套和互相嵌套
IntelliJ IDEA 的使用
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。简而言之,Maven是一个跨平台的项目管理工具。主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。
在IDEA上编写一个简单的maven项目
新建一个工程,选择Maven,project 选择本地的jdk,下面Create from archetype,一定要勾选,然后选择下面(本截图最后一行)的-webapp。
2.点next,然后对GroupId和ArtifactId,分别写上自己的项目组名和项目名。groupId 定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联,譬如你在 googlecode 上 建 立 了 一 个 名 为 myapp 的 项 目 , 那 么 groupId 就 应 该 是com.googlecode.myapp,如果你的公司是 mycom,有一个项目为 myapp,那么 groupId 就应该是 com.mycom.myapp。
配置Maven