Mybatis步骤分解实现一个增删改查程序

目录

1.idea新建Maven项目Mybatis-study 将项目里的src文件夹删掉 依次将此项目作为父项目

2.在Mybatis-study中新建模块mybatis-01

在mybatis的pom文件中可以看到其父项目为ybatis-study

<parent>
    <artifactId>MyBatis-study</artifactId>
    <groupId>org.example</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

3. 在Mybatis-study的pom.xml中引入如下jar包

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.9</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.29</version>
    </dependency>
  </dependencies>

4.将IDEA和MySQL数据库建立连接:

根据实际情况填写user和password 填写之后点击Test Connection

测试成功之后点击Schemas选择你要链接的数据库

5.新建mybatis-config.xml配置文件 引入数据库资源

<?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://localhost:3306/smbms?useSSL=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/kero/dao/UserMapper.xml" />
    </mappers>
</configuration>

6.创建实体类User 注意:实体类中成员变量名要和数据库表中字段名完全一致

package com.kero.pojo;
public class User {
    private int id;
    private String name;
    private String password;
    public User() {
    }
    public User(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }
    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 String getpassword() {
        return password;
    }
    public void setpassword(String pwd) {
        this.password = pwd;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + password + '\'' +
                '}';
    }
}

7.编写工具类Utils

package com.kero.utils;
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;
//sqlSessionFactory
public class MyBatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            //使用Mybatis第一步 获取sqlSessionFactory对象
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
/*
既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession
 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。例如:
 */
        public static SqlSession getSqlSession(){
            return sqlSessionFactory.openSession();
        }
}

8.定义接口

package com.kero.dao;
import com.kero.pojo.User;
import java.util.List;
public interface UserMapper {
  //查询全部用户
    List<User> getUserList();
    //根据ID查询用户
    User getUserByID(int id);
    //insert一个用户
    int addUser(User user);
  //修改一个用户
  int updateUser(User user);
  //删除一个用户
  int deleteUser(int id);
}

9.定义Mapper文件 这里的Mapper文件相当于原来传统方式中接口的实现类

<?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">
<!--namespace会绑定一个对应的Mapper接口-->
<mapper namespace="com.kero.dao.UserMapper">
    <select id="getUserList" resultType="com.kero.pojo.User">
        select * from smbms.user
    </select>
        <select id="getUserByID" parameterType="int" resultType="com.kero.pojo.User">
            select * from smbms.user where id = #{id}
        </select>
    <insert id="addUser" parameterType="com.kero.pojo.User">
        insert into smbms.user (id, name, password) VALUES (#{id},#{name},#{password})
    </insert>
    <update id="updateUser" parameterType="com.kero.pojo.User">
       update smbms.user set name=#{name},password=#{password} where id = #{id}
    </update>
    <delete id="deleteUser" parameterType="int">
        delete from smbms.user where id = #{id}
    </delete>
</mapper>

10.编写测试类

import com.kero.dao.UserMapper;
import com.kero.pojo.User;
import com.kero.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class test {
    @Test
    public void test(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> userList = mapper.getUserList();
        for (User l:userList) {
            System.out.println(l.toString());
        }
        session.close();
    }
    @Test
    public void testgetUserByID(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User userByID = mapper.getUserByID(1);
        System.out.println(userByID);
        session.close();
    }
    //增删改需要提交事务
    @Test
    public void testaddUser(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        int zhhgf = mapper.addUser(new User(10, "zhhgf", "1k23jbjk"));
        System.out.println(zhhgf);
        session.commit();
        //提交事务
        session.close();
    }
    @Test
    public void testupdateUser(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        int i = mapper.updateUser(new User(8,"asdfsdf","234sdfs"));
        session.commit();
        //提交事务
        session.close();
    }
    @Test
    public void testdeleteUser(){
        SqlSession session = MyBatisUtils.getSqlSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        int i = mapper.deleteUser(8);
        session.commit();
        //提交事务
        session.close();
    }
}

11.测试查询功能 : 输出结果与数据库表中数据

User{id=1, name='Sugawara Ryota', pwd='8X8Jq7HVNs'}

User{id=2, name='Shawn Mills', pwd='R78IHGDSXr'}

User{id=3, name='Matsuda Hina', pwd='mUi3CVA7mc'}

User{id=4, name='Cynthia Hawkins', pwd='NO1EwWbOs9'}

User{id=5, name='Rachel Bennett', pwd='YefuPVxzb9'}

tips:

如果一切配置正常但出现java.lang.ExceptionInInitializerError

Caused by org.apache.ibatis.execeptions.PersistenceExecepyion错误

是因为:maven由于它的约定大于配置 我们写的配置文件可能会出现无法被导出或者生效的问题解决方案 在pom.xml文件中添加如下代码

<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步骤分解实现一个增删改查程序的文章就介绍到这了,更多相关Mybatis增删改查内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一)

    环境搭建 spring boot的简介 以往我们开发时用到spring总是避免不了繁琐的配置,例如我们要配置一个数据库连接,可能需要以下几步: 1.编写jdbc.properties配置文件: 2.创建spring的配置文件,加入spring配置文件前缀.配置数据库连接信息以及sqlsessionFactory等等: 3.还要在web.xml文件中加入spring的监听. springboot的出现大大简化了项目的搭建过程(spring配置以及maven配置),让我们专注于应用功能的开发,而不是

  • Mybatis注解增删改查的实例代码

    要点 有另一种方法来完成语句映射. 它们映射的语句可以不用 XML 来配置,而可以使用 Java 注解来配置. 使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪. 如果你需要做一些很复杂的操作,最好用 XML 来映射语句. 需要在config.xml中注册Java接口 <mappers> <mapper class="com.mybatis.DAO.PeopleMapper"

  • Oracle + mybatis实现对数据的简单增删改查实例代码

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 本文将详细介绍利用Oracle + mybatis实现对数据的简单增删改查的相关内容,下面话不多说了,来一起看看详细的介绍

  • Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(二)

    在上篇文章给大家介绍了Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一),接下来我们添加分页相关的依赖,时间紧张,直接上代码了,贴上我的pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=

  • SpringBoot整合MybatisPlus实现增删改查功能

    目录 1.概述 2.引入依赖 3.配置连接信息 4.新建两个表 5.在项目中创建相应的实体类 5.1 创建基础实体类 5.2 SysDictType实体类 5.3 SysDictData实体类 6.创建DAO继承MybatisPlus增强接口 6.1 SysDictTypeMapper 6.2 SysDictDataMapper 7.进一步封装到Service层 7.1 定义Service接口中的抽象方法 7.2 实现Service接口中的方法 8.在控制层上进行增删改查操作 8.1 SysDi

  • Mybatis实现增删改查

    目录 一.mybatis的配置 1.1 添加相应的jar包 1.2 配置mybatis.xml文件 1.3 创建数据库 1.4 创建实体类 1.5 创建接口实现的方法 1.6 配置UserMapper.xml 文件 1.7 创建MybatisUtils的方法 二.Mybatis的增删改查 2.1 添加 2.2 修改 2.3 查询 2.4 删除 Mybatis实现增删改查 一.mybatis的配置 1.1 添加相应的jar包 在lib文件夹下面添加mybatis的核心jar包以及依赖的jar包同在

  • Mybatis实现增删改查(CRUD)实例代码

    MyBatis简介 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. MyBatis下载:https://github.com/mybatis/mybatis-3/releases Mybatis实

  • 简述Mybatis增删改查实例代码

    编写一个简单的mybatis进行插入数据的实例 1 数据库建表 其中建表dob=Date of Birth 的意思 create table students (stud_id number primary key, name varchar2(20), email varchar2(20), dob date ); Oracle数据库中出现表已创建,则表示创建成功,如果出现名称已被使用,则可在建表之前进行删除操作:drop table students;或者进行级联删除drop table s

  • Mybatis实现数据的增删改查实例(CRUD)

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. MyBatis下载:https://github.com/mybatis/mybatis-3/releases Mybat

  • Mybatis步骤分解实现一个增删改查程序

    目录 1.idea新建Maven项目Mybatis-study 将项目里的src文件夹删掉 依次将此项目作为父项目 2.在Mybatis-study中新建模块mybatis-01 在mybatis的pom文件中可以看到其父项目为ybatis-study <parent>    <artifactId>MyBatis-study</artifactId>    <groupId>org.example</groupId>    <versio

  • mybatis抽取基类BaseMapper增删改查的实现

    目录 准备工作: 1:数据库表 2:准备实体类 步骤1:编写工具类Tools:作用:用于驼峰和数据库字段的转换 步骤2:自定义两个注解,分别用于类字段的排除和字义主键 步骤3:自定义动态sql生成类BaseSqlProvider<T> 步骤4:编写BaseMapper基类接口 举例: 目前项目当中使用mapper.xml文件方式对数据库进行操作,但是每个里边都有增/删/改/查,为了方便开发,把这些公共的代码提取出来,不用当做基类,不用每个Mapper文件都写了 准备工作: 1:数据库表 CRE

  • MyBatis后端对数据库进行增删改查等操作实例

    目录 1.MyBatis 是什么? 2. MyBatis 的重要性 3. MyBatis 查询 3.1 创建数据库和表 3.2 添加MyBatis框架⽀持 3.2.1 新项目添加MyBatis 3.2.1 老项⽬添加 MyBatis 3.3 配置连接字符串和MyBatis 3.3.1 配置连接字符串 3.3.2 配置mybatis 中的 xml 保存路径 3.4 添加后端代码 3.4.1 添加实体类 3.4.2 添加 mapper 接口 3.4.3 添加UserMapper.xml 3.4.4

  • mybatis通过if语句实现增删改查操作

    有时候为了简化我们的代码. 1 举个例子 Student类: @Data public class Student { private Integer id; private Integer age; private Integer sno; } 有时候我们想通过age这个属性获取Student对象 有时候我们也想通过sno这个属性获取Student对象 难道我们在DAO层写两个接口? 比如这样子? Student getStudentByAge(Int age); Student getStu

  • MyBatis逆向工程生成dao层增删改查的操作

    目录 MyBatis逆向工程生成dao层增删改查 如下: Mybatis反向工程的使用 首先,用eclipse 建一个maven 项目 这时我们的项目结构是这个样子的 现在要写一下代码了 例如,我们在新的xml文件中这样写 MyBatis逆向工程生成dao层增删改查 如下: int countByExample(BUserExample example); //根据条件查询数量 /** * 示例 * public int countByExample() { * BUserExample use

  • Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码

    本文重在实现理解,过滤器,业务,逻辑需求,样式请无视.. 项目结构如下 1.idea新建Spring boot项目,在pom中加上thymeleaf和mybatis支持.pom.xml代码如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3

  • Mybatis Plus使用条件构造器增删改查功能的实现方法

    java后端层级结构 Controller 接口层 接口层比较好理解,它是面向web网络的接口,使用http格式去调用 /** * 图文课程管理Controller */ @RestController @RequestMapping("/driver/imageCourse") public class TImageCourseController extends BaseController { @Autowired private ITImageCourseService tIm

  • Mybatis基于xml配置实现单表的增删改查功能

    Mybatis入门-基于配置实现单表的增删改查 Mybatis简介 官网链接:https://mybatis.org/mybatis-3/zh/index.html.更加详细的信息可以去官网查看. MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作.MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型.接口和 Java POJO(Plain Old Java Object

  • JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查

    正文 前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue也确实挺火,各种入门博文眼花缭乱,博主也不敢说写得多好,就当是个学习笔记,有兴趣的可以看看. 一.MVVM大比拼 关于MVVM,原来在介绍knockout.js的时候有过讲解,目前市面上比较火的MVVM框架也是一抓一大把,比如常见的有Knockout.js.Vue.js.AvalonJS.An

  • node.js操作mysql(增删改查)

    最近这段时间研究Node感觉不错,自己做了一个增删改查,虽然有些简陋,但是思想是想通的,其实所有项目都是增删改查,有助于初学者快速掌握Node  首先 本实例展示的是基于Node+Express+node-mysql快速搭建的一套增删改查,视图模板是jade,基本上都是现在能用的到的技术,市面上的实例也特别少,有用的又不新,所以自己写一个  基本工作 首先我们准备一些基本的,因为我是用mysql麻烦可以自己装一下mysql,去官网可以下各种操作系统的安装包. 实例就一张表,下面是这张表的建表语句

随机推荐