Mybatis简单例子

news/2024/5/18 22:43:28 标签: mybatis, maven, mysql, java, jdbc

mybatis_0">mybatis案例

文章目录

  • mybatis案例
      • 1、创建项目,导入依赖
      • 2、删除src,创建新项目
      • 3、在resources中搭建核心配置文件
      • 4、新建工具类Utils
          • 4.1 从XML中构建SqlSessionFactory
          • 4.2 从 SqlSessionFactory 中获取 SqlSession
      • 5、创建实体类pojo
      • 6、创建接口类
          • 6.1 在Dao包中创建接口类
          • 6.2创捷该接口的xml文件,从而绑定该接口
      • 7、测试
          • 以上,就是一个简单的mybatis案例,如果有什么问题可以在评论区留言~~

1、创建项目,导入依赖

在外面的pom.xml导入mybatis、junit、mysql

2、删除src,创建新项目

删除原有的src,创建项目名字,

3、在resources中搭建核心配置文件

XML 配置文件中包含了对 MyBatis 系统的核心设置,

  • 包括获取数据库连接实例的数据源(DataSource)

  • 以及决定事务作用域

  • 控制方式的事务管理器(TransactionManager)

java"><?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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://**.**.***.***:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimeZone=Aisa/Shanghai"/>
                <property name="username" value="****"/>
                <property name="password" value="****"/>
            </dataSource>
        </environment>
    </environments>

    <!--每一个Mapper.xml都需要在Mybatis核心配置文件中注册!-->
    <mappers>
        <mapper resource="com/xzzlx/dao/PersonMapper.xml"/>
    </mappers>

</configuration>
  • 设置事务、driver、url、username、password

  • 其中url中还要设置一些参数等,譬如useSSL=true&amp 特别是 时区的设置 等等

这里面url、username、password中*是我自己的云服务器地址、账号和密码,只需将其替换为你们自己的就可以了。

4、新建工具类Utils

4.1 从XML中构建SqlSessionFactory

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

  • sqlSession通过SqlSessionFactory可以获得。

  • SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。

  • 而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。

java">String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  • 建议使用类路径下的资源文件进行配置
4.2 从 SqlSessionFactory 中获取 SqlSession
java">public static SqlSession getSqlSession(){
    return sqlSessionFactory.openSession();
}
  • 有了 SqlSessionFactory,顾名思义,可以从中获得 SqlSession 的实例
  • SqlSession 提供了在数据库执行 SQL 命令所需的所有方法

5、创建实体类pojo

将要操作的表的类创建在我们新建的pojo类中

java">package com.xzzlx.pojo;


public class Person {

  private long id;
  private String uuid;
  private String mobile;
  private String nickname;
  private String idCard;


  public long getId() {
    return id;
  }

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

  public String getUuid() {
    return uuid;
  }

  public void setUuid(String uuid) {
    this.uuid = uuid;
  }


  public String getMobile() {
    return mobile;
  }

  public void setMobile(String mobile) {
    this.mobile = mobile;
  }


  public String getNickname() {
    return nickname;
  }

  public void setNickname(String nickname) {
    this.nickname = nickname;
  }


  public String getIdCard() {
    return idCard;
  }

  public void setIdCard(String idCard) {
    this.idCard = idCard;
  }

  @Override
  public String toString() {
    return "Person{" +
            "id=" + id +
            ", uuid='" + uuid + '\'' +
            ", mobile='" + mobile + '\'' +
            ", nickname='" + nickname + '\'' +
            ", idCard='" + idCard + '\'' +
            '}';
  }
}

或者从数据库中选中相应的表,然后点击
在这里插入图片描述

这样会帮我们自动生成实体类的代码

6、创建接口类

6.1 在Dao包中创建接口类
java">public interface PersonDao {
    /**
     * 查询所有人的集合
     * @return
     */
    List<Person> getPersonList();
}
6.2创捷该接口的xml文件,从而绑定该接口

注意这里边的namespace,就是用来建立关系的

java"><?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">
<!--绑定了一个对应的Dao/Mapper接口-->
<mapper namespace="com.xzzlx.dao.PersonDao">
    <select id="getPersonList" resultType="com.xzzlx.pojo.Person">
        select * from mybatis.person
    </select>

</mapper>

其中

java"><select id="getPersonList" resultType="com.xzzlx.pojo.Person">

id是我们接口中的方法名,resultType是返回结果的类型,因为是Person类,所以需要把全限定名放进去

7、测试

使用 JUnit 进行测试

java">@Test
    public void test01() {
        //第一步:获取sqlSession对象
        SqlSession sqlSession = null;

        try{
            sqlSession = MybatisUtils.getSqlSession();
            //方法一:getMapper
            PersonDao mapper = sqlSession.getMapper(PersonDao.class);
            List<Person> personList = mapper.getPersonList();

            for (Person person : personList) {
                System.out.println(person.toString());
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭SqlSession
            sqlSession.close();
        }
    }

这里如果出现

  • 遇到配置文件无法被导出或者生效的问题

因为在maven中约定大于配置,默认会在resource中寻找,当发生该错误的时候,

只需要在pom.xml中添加下列代码,目的是让mvn运行的时候,如果找不到当前所需要的配置文件的时候,去其他地方寻找

java"><!--在build中配置resources,防止我们资源导出失败的问题-->
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
mybatis_264">以上,就是一个简单的mybatis案例,如果有什么问题可以在评论区留言~~

最后的最后,推荐该博主,太厉害了遇见狂神说之Mybatis

大爱!!!


http://www.niftyadmin.cn/n/1332481.html

相关文章

CSS样式和基本选择器-Ⅰ

CSS层叠样式表 CSS (Cascading Style Sheet ) 1、css优点 1.1 css介绍 1、内容和表现分离 2、网页结构表现统一&#xff0c;可以实现复用 3、样式十分丰富 4、建议使用独立于html的css文件(如下图) 5、利用SEO&#xff0c;容易被搜索引擎收录 2、css导入方式 2.1、行内…

CSS选择器-Ⅱ(层次、伪类、属性选择器)

CSS选择器-Ⅱ(层次、伪类、属性选择器) CSS (Cascading Style Sheet ) 1、css层次选择器 1.1 后代选择器 在某个元素的后面&#xff0c; 祖爷爷 爷爷 爸爸 你 /*后代选择*/body p{background: red;}1.2 子选择器 一代&#xff0c;儿子 /*子选择器*/body>p{background…

CSS-盒子模型

CSS盒子模型 CSS (Cascading Style Sheet ) 1、什么是盒子 1.1 盒子的三个骨架 margin&#xff1a;外边距 border&#xff1a;边框 padding&#xff1a;内边距 2、边框 2.1、边框的粗细 边框 border&#xff1a;粗细 边框 颜色&#xff1b;外边框 margin&#xff1a;上…

CSS浮动及解决父级边框塌陷

CSS浮动 CSS (Cascading Style Sheet ) 1、浮动的介绍 1.1 块元素 h1-h6 p、div、列表... ...1.2 行元素 span、a、img、strong... ...行元素可以包含在块元素中&#xff0c;反之则不行。 1.3 块元素和行元素互相转换 div{width: 100px;height: 100px;border: 1px solid …

JavaScript数据类型、数组、变量

JavaScript-基础Ⅰ 1、数据类型的介绍 1.1 Number 整形、浮点型、科学计数法、NaN、Infinity都是Number类型 123; // 整数123 0.123; // 浮点数0.123 1.234e2; // 科学计数法表示1.234x100&#xff0c;等同于123.4 NaN; // NaN表示Not …

JavaScript字符串和数组常用操作方法

JavaScript-基础Ⅱ 1、字符串 1.1 单行字符串 JavaScript的字符串就是用或""括起来的字符表示 "abc" // 双引号 abc // 单引号如果本身想输出 ‘’ 或者 ‘ 则需要加转义字符 转义字符\可以转义很多字符 \n //表示换行 \t …

JavaScript--对象、条件判断、循环

JavaScript-基础Ⅲ 1、对象 1.1 对象的介绍 JavaScript的对象是一种无序的集合数据类型&#xff0c;它由若干键值对组成。 var person { //创建一个person对象name: Mike,age: 24,sex: 男&#xff0c;id&#xff1a;123456 };用&#xff5b; &#xff5d;将对象的属…

java-自定义注解

java-注解 1 注解 1.1 什么是注解 Java 注解&#xff08;Annotation&#xff09;又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制 1.2 注解的作用 Annotation 是一个辅助类&#xff0c;它在 Junit、Struts、Spring 等工具框架中被广泛使用 (1&#xff09;编译检…