Mybatis的入门helloworld的入门环境搭建

1.Mybatis的hello world的搭建

1.1mybatis的基本介绍

引用官网的一段话: “ MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。”

开发环境以及开发工具:jdk1.8+idea

第一步:
用idea创建maven工程(步骤省略)
第二步:添加pom文件依赖

 <dependencies>
        <!--导入mybaits的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!--数据库驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>
        <!--测试包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!--log4j-->
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>



    <!--配置多个资源节点-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

构建maven工程很好的地方就是不用自己下jar包,直接导入maven依赖的所需要jar包的坐标,maven就会自动从maven的中央厂库下载,如果不知道jar包的坐标是什么,这里提出两个解决方法:

1,可以从maven的中央厂库下载,网址我贴出来。maven中央厂库
进入网址后直接搜索mybatis就会出现对应各个版本:
在这里插入图片描述
选择第一个
在这里插入图片描述
进入之后就是mybatis各个版本的依赖的坐标
我用的版本是3,4.6 选择了对用的版本之后就会进入下面这个页面
在这里插入图片描述
复制对应的坐标信息到pom.xml文件上既可。
当然可以通过这种方法,找到我们所需要的大部分jar包的依赖

第二个解决:直接进入mybatis的官网 上面会有mybatis的依赖。

我们学习一个新的知识点的时候,一定要尝试看官方文档,上面会有很详细的案例讲解。

我们接着上面的步骤 第三步 :
配置mybatis-config.xml 这个是mybatis的核心配置文件包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)

<?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>
    <settings>
        <!--建议显示的指定我们需要配置的值,防止版本更新带来的问题-->
        <!--开启驼峰命名规则-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <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://localhost:3306/ideatest?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!--<mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
        <!--也可以使用package-->
        <package name="com.kuake.dao.mapper"></package>
    </mappers>
</configuration>

上面的配置可以分为三个部分:(这里参考官方文档介绍)
<settings></settings>
标签:这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表描述了设置中各项的意图、默认值等。

<environments></environments>
标签:MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中 使用相同的 SQL 映射。有许多类似的使用场景。

<mapper></mapper>
既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了。 但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。 Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用, 或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。

<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

第四步:编写mapper接口文件 与mapper.xml文件

注意:mapper接口的名字要与mapper.xml文件在同一文件夹下面,且文件名相同,package name=“org.mybatis.builder” 才能扫描到。

DepartMapper.java

package com.kuake.dao.mapper;

import com.kuake.bean.Department;

/**
 * @author hao
 * @create 2019-05-15 ${TIM}
 */
public interface DepartmentMapper {
    /**
     * 根据部门号查询部门号信息
     *
     * */
    public Department getDepartmentById(Integer id);
}

DepartmentMapper .xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

    <!--public Department getDepartmentById(Integer id);-->
    <mapper namespace="com.kuake.dao.mapper.DepartmentMapper">
        <select id="getDepartmentById"  resultType="com.kuake.bean.Department" >
            SELECT * FROM department WHERE id = #{id}
        </select>
    </mapper>

**注意:这里xxxxmapper与xxxmapper.xml 是接口绑定在一起的,要有下面几点要求:

  1. xxxxMapper .xml的命名空间要是对应接口的权限类名。如:
    <mapper namespace="com.kuake.dao.mapper.DepartmentMapper">
    这里的DepartmentMapper.xml的namaspace:就是DepartmentMapper这个接口的权限类名。

  2. 接口与xml配置文件的文件名相同,且在同一目录下

  3. 接口声明的方法入参数与返回值与xml文件中保持一致

  4. sql语句标签的id要是对应接口的方法名如:public Department getDepartmentById(Integer id); 的方法名与

     <select id="getDepartmentById"  resultType="com.kuake.bean.Department" >
           SELECT * FROM department WHERE id = #{id}
       </select>中的id要相同。

**实体类Department **

package com.kuake.bean;

import java.io.Serializable;

public class Department implements Serializable{

  private long id;
  private String depName;
  private String description;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getDepName() {
    return depName;
  }

  public void setDepName(String depName) {
    this.depName = depName;
  }


  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  @Override
  public String toString() {
    return "Department{" +
            "id=" + id +
            ", depName='" + depName + '\'' +
            ", description='" + description + '\'' +
            '}';
  }
}

最后进行测试:

package com.kuake.test;

import com.kuake.bean.Department;
import com.kuake.dao.mapper.DepartmentMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

/**
 * @author hao
 * @create 2019-05-17 ${TIM}
 */
public class DemoTest {

    /**
     *获得sessionFactory
     *
     */
    public  SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        return  sqlSessionFactory;
    }

    @Test
    public void test() throws IOException {
        //获得sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        // 获得Sqlsession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //获得mapper代理对象
        DepartmentMapper mapper = sqlSession.getMapper(DepartmentMapper.class);
        // 执行方法
        Department departmentById = mapper.getDepartmentById(1);
        // 输出结果
        System.out.println(departmentById);
		//关闭资源
		sqlSession.close();
    }
}

输出结果:
在这里插入图片描述

总结:

基本骤如下:
1.创建maven工程
2.添加mybatis ,数据库驱动,log4j, test 等相关依赖
3.编写mybatis-config.xml核心配置文件
4.编写xxxmapper接口与xxxmappe.xml(注意4点基本原则)
5.编写测试类

说明:

因为自己也是一个初学者,然后刚刚开始写博客,主要用于记录自己的学习过程,也方便自己以后复习,希望和大家一起共同进步…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值