zoukankan      html  css  js  c++  java
  • MyBatis入门

      Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

      使用MyBatis的步骤:

    (1)引入所需的jar包 mybatis-3.4.4.jar mysql-connector-java-5.0.8-bin.jar(mySQl的JDBC操作包,其他数据库请自行更换)

      注意mybatis的jar包尽量引用3.4以上的版本,如果使用的是3.2的版本的话,在后面使用mybatis创建公用mapper的时候会出现兼容性问题。

    (2)创建mybatis-config.xml。(mybatis-config.xml 是MyBatis的全局配置文件 ,在该文件中配置:数据源,事务,等MyBatis运行的环境.)

      创建步骤:在新建的项目的上的src下创建一个XML File文件,文件内容如下

    <?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>        
        <!-- 环境:配置mybatis的环境  -->
        <environments default="development">    <!-- 可以使用多个环境变量,切换时只需修改对应default的属性为该环境变量的id即可 -->
            <!-- 环境变量:可以配置多个环境变量,比如使用多数据源时,就需要配置多个环境变量 -->
            <environment id="development">
                <!-- 事务管理 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- 数据源 -->
                <dataSource type="POOLED">  <!-- 注意贴过去的代码这一行会报错,网上说是复制过去的是utf-8的bom格式的,而xml支持的是不带bom格式的,这种这个部分自己手打一下,自动补全代码即可解决 -->
                    <property name="username" value="用户名" />
                    <property name="url" value="jdbc:mysql://localhost:3306/数据库名" />
                    <property name="password" value="用户密码" />
                    <property name="driver" value="com.mysql.jdbc.Driver" />  <!-- 定义驱动连接,根据所使用的数据库的不同进行更换,作者使用的是mySql -->
                </dataSource>
            </environment>
        </environments>    
    </configuration>

    这样我们就简单的配置了一个mybatis的config配置文件了,这一步就相当于我们平常编写JDBC连接数据库的操作。

    (3)接下来让我们为它建立一个表用来测试

      首先,我们先建立一个学生的数据库(Student),里面存放一张年级表(grade),sql语句如下:

    CREATE DATABASE `student`;
    
    USE `student`;
    
    CREATE TABLE `grade` (
      `gradeName` VARCHAR(20) DEFAULT NULL,
      `gradeId` INT(11) DEFAULT NULL
    ) ENGINE=INNODB DEFAULT CHARSET=utf8;
    
    INSERT  INTO `grade`(`gradeName`,`gradeId`) VALUES ('一年级',1),('二年级',2),('三年级',3);

    (4)在java代码中的src文件下建立一个entity的包,里面建立一个Grade的类

    package entity;
    
    public class Grade {
        private int gradeId;        //与表中的字段gradeId对应
        private String gradeName;    //与表中的字段gradeName对应
        public Grade() {
            super();
        }
        public int getGradeId() {
            return gradeId;
        }
        public void setGradeId(int gradeId) {
            this.gradeId = gradeId;
        }
        public String getGradeName() {
            return gradeName;
        }
        public void setGradeName(String gradeName) {
            this.gradeName = gradeName;
        }
    }

    (5)好了,有了实体类之后,我们就该编写实体类的接口了

      在src下新建一个dao的包,里面新建一个GradeDao的接口,里面定义了两个方法的接口,代码如下:

    package dao;
    
    import entity.Grade;
    
    public interface GradeDao {
        
        /**
         * 查询所有年级
         * @return
         */
        Grade queryAllGrade();
        
        /**
         * 根据年级编号查询年级
         * @param gradeId
         * @return
         */
        Grade queryGradeByID(int gradeId);
    }

    (6)建立好接口后,在建立接口的实现类之前,我们先定义一下SQL语句了,目前,我们先在xml文件中编写

      首先,在src文件下新建一个mapper包,里面新建一个GradeMapper.xml,文件名和包名都可以随便取,但尽量给每个实体类编写不同的xml文件,避免查找的时候发生混乱

      GradeMapper.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">
      <mapper namespace="dao.GradeDao">            <!-- 设置工作空间为dao.GradeDao这个类  -->
      <!-- 查询所有年级 -->
          <select id="queryAllGrade" resultType="entity.Grade">    <!-- resultType为返回值类型 -->
              select * from grade
          </select>
          <!-- 根据年级编号查询年级 -->
          <select id="queryGradeByID" resultType="entity.Grade" parameterType="int">  <!-- parameterType为传入参数类型 -->
              select * from grade where gradeId = #{gradeId}        <!-- #{gradeId}为占位符  -->
          </select>
      </mapper>

    建立好GradeMapper.xml后,我们还需要再做一件事,那就是在config文件中去映射到这个文件,找到我们刚才编写的mybatis-config.xml文件,

    <configuration>标签的里面</environments>的下方添加一个映射关系,代码如下

    <mappers>
        <mapper resource="mapper/GradeMapper.xml"/>    <!-- 包名.xml文件名 -->
    </mappers> 

    (7)好了,SQL语句写好后,接下来就是重点了——怎么调用它

      在src下建立一个common的包,里面存放一个SqlSessionUtil的类,类里面我们定义一个getSession的方法,代码如下

      在src包下建立一个dao.Impl的包,里面添加一个GradeDaoImpl的类,代码如下

     

  • 相关阅读:
    Linux内核RPC请求过程
    二分图
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 文本加密
    Java蓝桥杯 算法提高 九宫格
    Java蓝桥杯 算法提高 九宫格
  • 原文地址:https://www.cnblogs.com/365txrw/p/8030174.html
Copyright © 2011-2022 走看看