• 基于Maven的Mybatis开发环境搭建


    1.首先我们需要创建一个基于Maven的java项目

    2.在数据库中创建一张表及在idea中创建对应实体类

    1.  package com.ffyc.mybatisdemo.model;
    2.  ​
    3.  public class Admin {
    4.  ​
    5.       private int id;
    6.       private String account;
    7.       private String password;
    8.       private String xb;
    9.       private String adminPhone;
    10.  ​
    11.  ​
    12.      public String getXb() {
    13.          return xb;
    14.     }
    15.  ​
    16.      public void setXb(String xb) {
    17.          this.xb = xb;
    18.     }
    19.  ​
    20.      public String getAdminPhone() {
    21.          return adminPhone;
    22.     }
    23.  ​
    24.      public void setAdminPhone(String adminPhone) {
    25.          this.adminPhone = adminPhone;
    26.     }
    27.  ​
    28.      public Admin() {
    29.          System.out.println("Admin无参构造");
    30.     }
    31.  ​
    32.      public Admin(String account, String password, String gender) {
    33.          this.account = account;
    34.          this.password = password;
    35.          this.xb = gender;
    36.     }
    37.  ​
    38.      public int getId() {
    39.          return id;
    40.     }
    41.  ​
    42.      public void setId(int id) {
    43.          System.out.println("SetId");
    44.          this.id = id;
    45.     }
    46.  ​
    47.      public String getAccount() {
    48.          return account;
    49.     }
    50.  ​
    51.      public void setAccount(String account) {
    52.          this.account = account;
    53.     }
    54.  ​
    55.      public String getPassword() {
    56.          return password;
    57.     }
    58.  ​
    59.      public void setPassword(String password) {
    60.          this.password = password;
    61.     }
    62.  ​
    63.  ​
    64.  ​
    65.      @Override
    66.      public String toString() {
    67.          return "Admin{" +
    68.                  "id=" + id +
    69.                  ", account='" + account + '\'' +
    70.                  ", password='" + password + '\'' +
    71.                  ", xb='" + xb + '\'' +
    72.                  ", adminPhone='" + adminPhone + '\'' +
    73.                  '}';
    74.     }
    75.  }
     
    
    • 注:

      • 我们在创建实体类时尽量保证属性名与数据库中的字段名相同

      • 在实体类中一定要给私有属性提供公共的get()和set()方法

      • 保证类中有无参构造方法

    3.在pom.xml中导入Mybatis jar包,数据库驱动包

    Mybatis在Maven仓库中的项目坐标如下:

    1.    <dependency>
    2.      <groupId>org.mybatisgroupId>
    3.      <artifactId>mybatisartifactId>
    4.      <version>3.4.2version>
    5.    dependency>

    数据库驱动包在Maven仓库中的项目坐标如下:

    1.  
    2.  
    3.  <dependency>
    4.      <groupId>mysqlgroupId>
    5.      <artifactId>mysql-connector-javaartifactId>
    6.      <version>8.0.16version>
    7.  dependency>

    4.创建外部配置文件保存jdbc连接信息

    我们将此文件命名为config.properties

    1.  driverName=com.mysql.cj.jdbc.Driver
    2.  url=jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai
    3.  username=root
    4.  password=111
    • 注:

      • 此处为键值对封装,所以配置属性文件中并没有双引号此处应特别注意

    5.创建AdminMapper.xml SQL映射文件

    我们创建SQL映射文件后要在全局配置文件中进行注册,之后在此文件中进行SQL映射.

    1.  "1.0" encoding="UTF-8" ?>
    2.  mapper
    3.          PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4.          "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5.  <mapper namespace="com.ffyc.mybatisdemo.dao.AdminDao">
    6.      <select id="findAdminById" parameterType="int" resultType="Admin">
    7.         select * from admin where id = #{id}
    8.      select>
    9.  mapper>
    • 注:

      • 此处开发时我们应该遵循接口开发规范:

        • 1.此处的namespace命名空间与dao所在目录一致

        • id与dao中所需抽象方法名一致

        • 方法名与对应的mapper中的标签id一致

        • 方法参数,返回值类型与mapper中标签定义的参数烈性返回值一致

    6.创建全局配置文件

    全局配置文件用于配置数据库的连接信息,此处我们一次将后续经常使用的配置直接进行配置

     
    1. "1.0" encoding="UTF-8" ?>
    2.  configuration
    3.          PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    4.          "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5.  <configuration>
    6.  
    7.      
    8.      <properties resource="config.properties">properties>
    9.      
    10.      <settings>
    11.          
    12.          <setting name="logImpl" value="STDOUT_LOGGING"/>
    13.          
    14.          <setting name="mapUnderscoreToCamelCase" value="true"/>
    15.          
    16.          <setting name="cacheEnabled" value="true">setting>
    17.      settings>
    18.      
    19.      <typeAliases>
    20.          
    21.          <package name="com.ffyc.mybatisdemo.model"/>
    22.      typeAliases>
    23.      <environments default="development">
    24.          <environment id="development">
    25.              
    26.              <transactionManager type="JDBC"/>
    27.              
    28.              <dataSource type="POOLED">
    29.                  <property name="driver" value="${driverName}"/>
    30.                  <property name="url" value="${url}"/>
    31.                  <property name="username" value="${username}"/>
    32.                  <property name="password" value="${password}"/>
    33.              dataSource>
    34.          environment>
    35.      environments>
    36.  ​
    37.      
    38.      <mappers>
    39.          <mapper resource="mappers/AdminMapper.xml"/>
    40.      mappers>
    41.  configuration>
    • 注:

      • 在此处我们需要在标签中导入我们的属性文件以用来获取数据库连接

      • 必须在标签中注册对应的SQL映射文件,每一个mapper文件都必须在全局配置文件中进行注册

      • 开启日志功能之后Mybatis会自动帮我们打印日志信息

      • 为我们的自定义类配置类型别名之后,我们在编写时就可以不用每次都编写全类名,直接写别名即可

    7.编写dao

    我们需要将dao创建为一个接口,并在其中编写所需抽象方法

    1.  package com.ffyc.mybatisdemo.dao;
    2.  ​
    3.  import com.ffyc.mybatisdemo.model.Admin;
    4.  import org.apache.ibatis.annotations.Param;
    5.  ​
    6.  public interface AdminDao {
    7.  ​
    8.      Admin findAdminById(int id);
    9.  ​
    10.  }

    8.编写测试类

    1.  package com.ffyc.mybatisdemo.test;
    2.  ​
    3.  import com.ffyc.mybatisdemo.dao.AdminDao;
    4.  import com.ffyc.mybatisdemo.model.Admin;
    5.  import com.ffyc.mybatisdemo.util.MybatisUtil;
    6.  import org.apache.ibatis.session.SqlSession;;
    7.  import java.io.IOException;
    8.  ​
    9.  public class Test1 {
    10.  ​
    11.      public static void main(String[] args) throws IOException {
    12.  ​
    13.  ​
    14.          //创建SqlSession
    15.          SqlSession sqlSession = MybatisUtil.getSqlSession();
    16.         // Admin admin = sqlSession.selectOne("com.ffyc.admin.findAdminById", 1);
    17.  ​
    18.          //动态生成一个代理对象(mybatis框架生成),由代理对象去调用mapper文件中的方法
    19.          AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
    20.          Admin admin = adminDao.findAdminById(1);
    21.          System.out.println(admin);
    22.          sqlSession.close();
    23.     }
    24.  }
    • 注:

      • 此处由于SqlSessionFactory创建的开销比较大,且是用于封装数据库的连接信息,所以我们没有必要在每个测试中都创建一次.因此我们直接将创建SQLSessionFactory的部分封装到一个Util类中,这样我们整个项目只有在第一次创建SQLSessionFactory,之后的使用过程中直接调用Util方法创建SQLSession即可.

        1. package com.ffyc.mybatisdemo.util;
        2.  ​
        3.  import org.apache.ibatis.io.Resources;
        4.  import org.apache.ibatis.session.SqlSession;
        5.  import org.apache.ibatis.session.SqlSessionFactory;
        6.  import org.apache.ibatis.session.SqlSessionFactoryBuilder;
        7.  ​
        8.  import java.io.IOException;
        9.  import java.io.InputStream;
        10.  ​
        11.  public class MybatisUtil {
        12.  ​
        13.      static SqlSessionFactory sqlSessionFactory = null;
        14.      static{
        15.          //读取mybatis全局配置文件
        16.          InputStream inputStream = null;
        17.          try {
        18.              inputStream = Resources.getResourceAsStream("mybatisConfig.xml");
        19.         } catch (IOException e) {
        20.              e.printStackTrace();
        21.         }
        22.          //创建SqlSessionFactory.由于SQLSessionFactory创建开销大,用于封装数据库连接信息,所以没有必要每次创建
        23.          sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        24.     }
        25.  ​
        26.      public static SqlSession getSqlSession(){
        27.          return sqlSessionFactory.openSession();
        28.     }
        29.  }

    到此我们的基于Maven的Mybatis框架就搭建完成了!!!

  • 相关阅读:
    涂鸦Wi-Fi&BLE SoC开发幻彩灯带
    串口转HID键鼠功能芯片CH9329应用指南
    数据预处理(预备知识)
    Go 1.21 新内置函数:min、max 和 clear
    pyqt5学习-01 UI界面创建以及生成python代码
    上海亚商投顾:沪指震荡调整 转基因概念股逆势大涨
    μC/OS-II---整理学习1
    MySQL补充开窗函数
    【frontend】chrome devtools flex debugger
    Android 底部导航栏(三、ViewPager+TabLayout+Fragment)简单易懂
  • 原文地址:https://blog.csdn.net/weixin_52629592/article/details/125842984