更简化的办法:通过packge的name属性直接直接指定包名,mybatis会自动扫描指定包下的JavaBean,
并默认设置一个别名,默认名称为JavaBean的非限定类名.
例:
<typeAliases>
<package name="cn.smbms.model"/>
</typeAliases>
mappers元素
<mappers>
//第一种:设置指定mapper文件相对路径
<mapper resource="cn/smbms/dao/UserMapper.xml" />
//第二种:设置mapper文件所在包
<package name="cn.smbms.dao" />
</mappers>
mapper.xml SQL映射文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace的值为UuserMapper文件的所在路径 -->
<mapper namespace="cn.smbms.dao.UserMapper">
<!-- 查询用户表记录数 id为唯一调用的方法名 resultType为返回值类型-->
<select id="getAllUserName" resultType="String">
select userName from smbms_user
</select>
<select id="getAllUser" resultType="User">
select * from smbms_user
</select>
</mapper>
为什么需要使用框架技术?
框架技术是一个应用程序的半成品,提供可重用的公共结构,是按一定规则组织的一组组件。
主流框架
Strtus2
MVC设计模式的实现,拦截器,可变和可重用的标签.
HIBERNATE
ORM,简化数据库操作 DAO层.
Spring
依赖注入容器/AOP的实现
声明式事物
简化JavaEE应用
粘合剂,将上面两个框架组装起来
Spring MVC
结构最清新的MVCModel2实现
高度可配置,支持多种视图技术
定制化开发
MyBatis
半自动化的ORM实现
dao层
动态SQL
小巧灵活,简单易学
使用maven创建自动导包
- 1. 下载maven压缩包:
- 2. 解压下载好的压缩包,创建环境变量
a) 设置MAVEN_HOME:解压目录
b) 设置PATH环境变量为:%MAVEN_HOME%\bin
- 3. 在eclipse导入maven:Window-Preferences-Maven-Installations-Add添加maven选中,设置User Settings 两个都设置为maven解压目录下的conf-settings.xml文件.
- 4. 配置settings.xml文件
设置压缩包储存目录
<localRepository>F:\apache-maven-3.5.2\warehouse</localRepository>
设置JDK版本(放在<profiles>内</profiles>)
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
设置阿里云库(放在<mirrors>内</mirrors>)
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
- 5. 设置Window-Preferences-Maven-User Settings重新导入settings.xml文件应用,自动下载常用包文件到设定目录.
- 6. 创建maven项目,在pom.xml文件里编写需要导入的包
查询所在目录:
或自己配置的文件保存目录下查询
格式参考:
<dependencies>
<dependency>
<groupId>所在目录名</groupId>
<artifactId>文件名</artifactId>
<version>文件版本</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
MyBatis环境搭建或自己导包
第一步:导包
第二步:编写MyBatis核心配置文件
编写数据库连接配置文件 db.properties
jdbc.url=jdbc:mysql://localhost:3306/nodemgr_node_and_auth?serverTimezone=GMT&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.user=nodeManagementjdbc.password=nodeManagementjdbc.filters=statjdbc.maxActive=20jdbc.initialSize=1jdbc.maxWait=60000jdbc.minIdle=10jdbc.timeBetweenEvictionRunsMillis=60000jdbc.minEvictableIdleTimeMillis=300000jdbc.validationQuery=SELECT 'x'jdbc.testWhileIdle=truejdbc.testOnBorrow=falsejdbc.testOnReturn=falsejdbc.maxOpenPreparedStatements=20jdbc.removeAbandoned=truejdbc.removeAbandonedTimeout=1800jdbc.logAbandoned=true
|
编写logback配置文件
|
编写MyBatis核心文件
|
MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案,适用于性能要求较高或者需求多变的项目.
MyBatis的三个基本要素
MyBatis核心接口和类
SqlSessionFactoryBuilder
用过即丢,其生命周期只存在于方法体内
可重用其来创建多个SqlSessionFactory实例->调用build()方法
负责构建SqlSessionFactory,并提供多个build方法的重载
SqlSessionFactory
是每个mybatis应用的核心
作用:创建SqlSession实例 调用openSession(boolean autoCommit)方法,注:参数默认为true(关闭事务控制),false(开始事务控制)
作用域:Application
生命周期与应用的生命周期相同
单例模式:存在于整个运行时,并且同时只存在一个对象实例
SqlSession
包含了执行SQL所需的所有方法
对应一次数据库会话,会话结束必须关闭
线程级别,不能共享
两种使用方式:
通过SqlSession实例直接运行映射的sql语句
* 基于Mapper接口方式操作数据
在mapper.xml同级目录下创建一个接口,返回值类型为sql语句接收的类型,方法名跟mapper里面指定的id一致
mybatis-config.xml系统核心配置文件
settings的常用全局属性的设置(红色为默认的)
cacheEnabled 对在此配置文件下的所有缓存进行全局性开关 (true/false);
lazyLoadingEnabled 全局设置懒加载.(相关联不进行初始化加载).(true/false);
autoMappingBehavior mybatis对于resultMap自动进行映射匹配(NONE/PARTIAL/FULL);
typeAliases类型别名设置(简化返回类型冗余的代码)