首页 > 其他分享 >【Mybatis】(接口式)

【Mybatis】(接口式)

时间:2024-07-07 18:27:35浏览次数:16  
标签:name 接口 id session Mybatis import com public

前期准备:

一张表(!已经连接数据库!我的数据库叫book,表名为user,有id、name、age三列)

项目结构:(log4j可以没有)

1,创建一个空的Maven项目

然后在pom.xml中导入依赖(mybatis需要3个依赖,junit测试依赖包、mybatis依赖包、SQL连接依赖包)

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.25</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.14</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>

    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>
</dependencies>

2.com包下创建3个包mapper(存放接口)、pojo(存放实体类)、utils(可以把创建工厂的前期过程放在这个包里面,目的是简化代码)

(1)pojo下创建User类

package com.pojo;

public class User {
   public int id;
   public String name;
   public int age;

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

(2)mapper下创建UserMapper接口

package com.mapper;

import com.pojo.User;

public interface UserMapper {
    public User findUserById(int id);
}

(3)utils下创建MyBatisUtils

package com.utils;

import com.mapper.UserMapper;
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 java.io.IOException;
import java.io.InputStream;

public class MybatisUtils {
    private static SqlSessionFactory factory;
    static {
        try {
            InputStream in= Resources.getResourceAsStream("mybatis-config.xml");
            factory=new SqlSessionFactoryBuilder().build(in);
            SqlSession sqlSession=factory.openSession();

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    public static SqlSession getSession(){
        return factory.openSession();
    }
}

3.在resource下创建数据库连接池db.properties

#mysql
db.username=root
db.password=123456
db.jdbcUrl=jdbc:mysql://127.0.0.1:3306/book?useSSL=false&characterEncoding=utf-8
db.driverClass=com.mysql.cj.jdbc.Driver

!!注意数据库密码和数据库名字

4.在resource的mapper目录下创建UserMapper.xml文件,里面存放SQL语句(如果没有mapper目录,就自己创建)!!!!名称空间一定要是接口的全路径且SQL语句id要的接口的方法名保持一致

<?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="com.mapper.UserMapper">
    <!--    结果集映射,一般用于select查询的结果映射-->
    <resultMap id="UserInfoMap" type="com.pojo.User">
        <id property="id" column="id"></id>
        <result property="name" column="name"></result>

    </resultMap>
    <parameterMap id="parameterMap" type="com.pojo.User">
        <parameter property="id" resultMap="id"></parameter>
        <parameter property="name" resultMap="name"></parameter>

    </parameterMap>
    <!--    sql语句 id是该语句的唯一标识-->
    <select id="findUserById" resultMap="UserInfoMap">
        select *
        from user
        where id = #{id}
    </select>
</mapper>

5.在resource下创建mybatis的核心配置文件mybatis-config.xml(log4j可有可无)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--加载属性文件db.properties-->
    <properties resource="db.properties"></properties>
    <!--<settings></settings>-->
    <settings>
        <!--        开启驼峰映射-->
        <setting name="mapUnderscoreToCamelCase" value="ture"/>
    </settings>
    <!--        扫描包,别名映射-->
    <typeAliases>
        <package name="com.pojo"/>
    </typeAliases>
    <!--环境配置-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${db.driverClass}"/>
                <property name="url" value="${db.jdbcUrl}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--    sql语句的xml映射-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

6.在test中的目录java下创建com.test的包,然后在里面创建一个Test的测试类(如果@org.junit.Test报错那把它改为@Test即可)

package com.test;

import com.mapper.UserMapper;
import com.pojo.User;
import com.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;


public class Test {


    @org.junit.Test
    public void findUserById(){
        SqlSession session= MybatisUtils.getSession();
        UserMapper userMapper=session.getMapper(UserMapper.class);
        User user=userMapper.findUserById(2);
        System.out.println(user);
        session.commit();
        session.close();
    }
}

最后运行

标签:name,接口,id,session,Mybatis,import,com,public
From: https://blog.csdn.net/2203_75397878/article/details/140223879

相关文章

  • mybatis-plus中last和orderBy的连用的使用顺序
    1. mybatis-plus中last和orderBy的连用的使用顺序在MyBatis-Plus中,last方法用于在构建查询时添加自定义的SQL片段,而orderBy方法用于指定排序规则。当你想要结合使用这两个方法时,可以先调用orderBy指定排序规则,然后调用last添加自定义的SQL片段。@Autowired......
  • MyBatisPlus
    目录引入MybatisPlus的起步依赖1、引入MybatisPlus依赖,代替Mybatis依赖2.定义Mapper常见注解@TableName:用来指定表名@Tableld:用来指定表中的主键字段信息@TableField:用来指定表中的普通字段信息 使用@TableField的常见场景:成员变量名与数据库字段名不一致​编......
  • Java调用第三方接口的秘籍:技巧、案例与最佳实践
    Java调用第三方接口的秘籍:技巧、案例与最佳实践在Java开发中,调用第三方接口是一项常见的任务。无论是与外部系统交互、集成其他服务,还是调用远程API获取数据,掌握有效的第三方接口调用技巧都是至关重要的。本文将深入剖析Java调用第三方接口的常见方法和技巧,结合实际案例,展......
  • 【多态、接口】
    /*多态注意事项:1、多态是方法的多态,属性没有多态2、父类和子类,有联系类型转换异常!ClassCastException!3、存在条件:继承关系,方法需要重写,父类引用指向子类对象Persons2=newStudent();*/packageoop;​importoop.demo07.Person;importoop.demo07.Student;​......
  • IDE ATA/ATAPI 控制器是一个硬件设备的接口,用于连接硬盘驱动器、光驱和其他存储设备到
    IDEATA/ATAPI控制器是一个硬件设备的接口,用于连接硬盘驱动器、光驱和其他存储设备到计算机的主板。关于其驱动的安装与未安装的区别、重要性和价值可以从以下几个方面来理解:区别:已安装驱动:正常工作:安装了适当的驱动程序后,IDEATA/ATAPI控制器能够正确地识别和管理连接的......
  • Mybatis常用
    Mybatis1.forEach标签foreach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名,index:集合中元素迭代时的索引open:常用语where语句中,表示以什么开始,比如以'('开始separator:表示在每次进行迭代时的分隔符,close常用语where语句中,表示以什......
  • MyBatisPlus
    1特点mybatis-plus是在mybatis基础上进行二次封装的一套orm框架,对mybatis只做增强不做改变,不会对项目中原生mybatis代码产生任何影响,完全兼容mybatis;优点:mybatis-plus只需要做简单的配置,即可快速进行单表CRUD操作,无需编写sql语句;mybatis-plus提供了内置插件,提供分页,逻辑......
  • Java基础-接口与实现
    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)目录Java接口什么是接口?声明接口实现接口继承接口  接口的多继承标记接口Java接口什么是接口?Java中的接口定义了一个引用类型来创建抽象概念。接口由类实现以提供概念的实现......
  • 解决Mybatisplus中没有Db类静态工具的方案--提高版本
    方案:将两个的版本都提高即可解决Mybatis—plus的依赖文件<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency>&......
  • Hibernate 和 Mybatis 有何区别 ?
    Hibernate和MyBatis都是Java社区中广泛使用的持久层框架,用于在Java应用程序中管理数据库的CRUD操作(创建、读取、更新和删除)。尽管它们都旨在简化数据库操作,但它们在设计理念、实现方式和使用方式上有着显著的区别。HibernateHibernate是一个全功能的对象关系映射(ORM)框架,它......