Mybatis学习(一)

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;
    }
}

效果如下



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值