Mybatis入门最简单实例

Mybatis入门实例

本文使用IDEA创建mybatis项目,并成功coding一个最简单的mybatis示例
(本文参靠自以下文章,非常感谢原作者!)

MyBatis:快速入门实例 HelloWorld
https://my.oschina.net/kolbe/blog/508052
MyBatis官方文档(中文版)
http://www.mybatis.org/mybatis-3/zh/getting-started.html

MyBatis官方文档的一句话,道出了mybatis框架的核心要素

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。

所有代码都是围绕SqlSessionFactory展开的。

接下来展示创建mybatis的步骤
一、在IDEA中创建一个maven项目。
在maven的pom.xml配置文件中加入mybatis依赖、jdbc驱动如下

    
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
        <version>3.3.0version>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <version>5.1.29version>
    dependency>

二、为代码方便,还可以使用mybatis的generator插件
继续在pom中添加依赖

    <build>
        <finalName>xxx工程名finalName>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generatorgroupId>
                <artifactId>mybatis-generator-maven-pluginartifactId>
                <version>1.3.2version>
                <configuration>
                    <verbose>trueverbose>
                    <overwrite>trueoverwrite>
                configuration>
            plugin>
        plugins>
    build>

然后在resources文件夹下添加generatorConfig.xml的配置文件




<generatorConfiguration>
    
    <properties resource="datasource.properties">properties>

    
    <classPathEntry location="${db.driverLocation}"/>

    <context id="default" targetRuntime="MyBatis3">

        
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        commentGenerator>

        
        <jdbcConnection
                driverClass="${db.driverClassName}"
                connectionURL="${db.url}"
                userId="${db.username}"
                password="${db.password}">
        jdbcConnection>


        
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        javaTypeResolver>


        
        
        <javaModelGenerator targetPackage="com.mybatis.pojo" targetProject="./src/main/java">
            
            <property name="enableSubPackages" value="false"/>
            
            <property name="constructorBased" value="true"/>
            
            <property name="trimStrings" value="true"/>
            
            <property name="immutable" value="false"/>
        javaModelGenerator>

        
        
        <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources">
            <property name="enableSubPackages" value="false"/>
        sqlMapGenerator>

        

        
        
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.mybatis.dao" targetProject="./src/main/java">
            
            <property name="enableSubPackages" value="false" />
        javaClientGenerator>

        
        <table tableName="Student" domainObjectName="Student" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">table>


        
    context>
generatorConfiguration>

然后在idea右侧maven标签中找到mybatis-generator,根据配置文件中的相应配置来生成对应的bean类和mapper类

三、完成上述两步环境搭建后,需要配置mybatis的配置文件
在resources文件夹下,新建一个mybatis-config.xml的xml文件



<configuration>


    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            dataSource>
        environment>
    environments>
    
    <mappers>
        <mapper resource="mappers/StudentMapper.xml"/>
    mappers>
configuration>

四、完成配置后,新建一个测试类,来测试mybatis的配置效果

public class StudentTest {

    public static void main (String[] args) throws IOException {
        String resource = "mybatis-config.xml";
        //1.加载MyBatis的配置文件:mybati-config.xml(它也加载关联的映射文件,也就是mappers节点下的映射文件)
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //2.SqlSessionFactoryBuuilder实例通过输入流调用build方法来创建sqlsession工厂
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //3.通过工厂来获取sqlsession的实例,sqlsession完全包含了面向数据库执行sql命令所需的所有方法。
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.准备基本信息
        //4.1)statement:用来定位映射文件(StudengtMapper.xml)中的语句(通过namespace id + select id) 下句中 com.mybatis.dao.StudentMapper为namespace id/selectByPrimaryKey为select id
        String statement = "com.mybatis.dao.StudentMapper.selectByPrimaryKey";
        //4.2)parameter:传进去的参数,也就是需要获取students表中主键值为1的记录
        int parameter = 1;
        //5.sqlsession实例来直接执行已映射的sql语句,selectOne表示获取的是一条记录
        Student student = sqlSession.selectOne(statement,parameter);
        System.out.print(student.toString());
        //6.关闭输入流和sqlsession实例
        inputStream.close();
        sqlSession.close();
    }
}

为体现接口式编程的思想,可将上述部分代码替换为

        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
        Student student = mapper.selectByPrimaryKey(2);

以上,最简单的mybatis示例已经完成!

你可能感兴趣的:(JAVA,mybatis)