1.什么是 MyBatis ?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。(以上摘抄自Mybatis官网)
2.对比JDBC和Mybatis
3.Mybatis中generator的使用
generatorConfig.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<classPathEntry location="D:\IDEA\IdeaProjects\mybatis-dmeo1\src\main\resources\generator\mysql-connector-java-5.1.6.jar"/>
<context id="MysqlTables" targetRuntime="MyBatis3">
<!--去除注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mmall?useUnicode=true&characterEncoding=utf-8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
userId="your username"
password="your password">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<javaModelGenerator targetPackage="com.ylc.vo" targetProject="D:\IDEA\IdeaProjects\mybatis-dmeo1\src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="xml" targetProject="D:\IDEA\IdeaProjects\mybatis-dmeo1\src\main\resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.ylc.dao" targetProject="D:\IDEA\IdeaProjects\mybatis-dmeo1\src\main\java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table schema="mmall" tableName="mmall_user" domainObjectName="mmall_user">
<property name="useActualColumnNames" value="false"/>
</table>
</context>
</generatorConfiguration>
在pom.xml中配置
<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.3</version> <configuration> <configurationFile>${project.basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>idea中按如下图片中进行点击操作
效果如下图所示,生成3个文件
4.作用域SCOPE的声明周期
5.Mybatis中的xml和annotation两种形式来编写sql语句
注意:annotation与xml形式可以相互兼容,但id不可相同,否则会报错
两种方式的优缺点对比
6.Mybatis中的typeHandler
/**
* 实现TypeHandler接口 或者 继承BaseTypeHandler
* (具体的可以去Mybatis官网--》XML配置下面去查找实现TypeHandler接口)
* @author yeleichao
* @date 2018-3-25.
*/
@MappedJdbcTypes(JdbcType.VARCHAR)
public class MyTypeHandler extends BaseTypeHandler {
@Override
public void setNonNullParameter(PreparedStatement preparedStatement, int i, Object o, JdbcType jdbcType) throws SQLException {
preparedStatement.setString(i, o+"yeleichao");//此处是自己添加的东西
}
@Override
public Object getNullableResult(ResultSet resultSet, String s) throws SQLException {
return null;
}
@Override
public Object getNullableResult(ResultSet resultSet, int i) throws SQLException {
return null;
}
@Override
public Object getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
return null;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/2b064b48cd04c1dab1ed31a756b85bd7.png)
效果如下