返回顶部
首页 > 资讯 > 精选 >怎么在Mybatis中通过配置xml实现单表增删改查功能
  • 390
分享到

怎么在Mybatis中通过配置xml实现单表增删改查功能

2023-06-14 12:06:26 390人浏览 独家记忆
摘要

怎么在mybatis中通过配置xml实现单表增删改查功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Mybatis简介MyBatis 是一款优秀的持久层框架,

怎么在mybatis中通过配置xml实现单表增删改查功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Mybatis简介

MyBatis 是一款优秀的持久层框架,它支持自定义 sql、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。

如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:

<dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis</artifactId>  <version>x.x.x</version></dependency>

配置步骤

引入Mybatis的jar包

编写实体类与DAO接口

添加主配置文件(配置mysql环境,事务类型,数据源,连接数据库的基本信息,映射文件的位置)

添加DAO接口的映射文件(需要指明DAO接口的位置,为每个方法做一个映射)注:所在路径在Resource文件夹下,目录路径需要DAO的层次结构一样

使用mybatis框架

使用步骤(所有的xml配置已配置完毕)

读取配置文件,可使用mybatis封装的Resources类。

创建SQLSessionFactory工厂

使用工厂生产SQLsession对象

使用SQLSession创建DAO接口的代理对象

使用代理对象执行方法

提交事务,释放资源

基础数据

实体类

public class User implements Serializable {           private Integer id;    private String username;    private Date birthday;    private String sex;    private String address;     public Integer getId() {        return id;    }     public void setId(Integer id) {        this.id = id;    }     public String getUsername() {        return username;    }     public void setUsername(String username) {        this.username = username;    }     public Date getBirthday() {        return birthday;    }     public void setBirthday(Date birthday) {        this.birthday = birthday;    }     public String getSex() {        return sex;    }     public void setSex(String sex) {        this.sex = sex;    }     public String getAddress() {        return address;    }     public void setAddress(String address) {        this.address = address;    }     @Override    public String toString() {        return "User{" +                "id=" + id +                ", username='" + username + '\'' +                ", birthday=" + birthday +                ", sex='" + sex + '\'' +                ", address='" + address + '\'' +                '}';    }

DAO层的接口

public interface IUserDao {         //@Select("select * from User")    List<User> findAll();         //@Insert("insert into User(username,address,sex,birthday)values()")    void saveUser(User user);         void updateUser(User user);         void deleteUser(Integer i);         User findById(Integer id);         List<User> findByName(String name);         int findTotal();}

主配置文件

<?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"><!--myBatis的主配置文件 --><configuration>    <!--配置环境-->    <environments default="Mysql">        <!--配置mysql环境-->        <environment id="mysql">            <!--配置事务的类型-->            <transactionManager type="JDBC"></transactionManager>            <!--配置数据源(连接池)-->            <dataSource type="POOLED">                <!--配置连接数据库的基本信息-->                <property name="driver" value="com.mysql.jdbc.Driver"/>                <property name="url" value="jdbc:mysql://localhost:3306/eesy"/>                <property name="username" value="root"/>                <property name="passWord" value="root"/>            </dataSource>        </environment>    </environments>    <!--映射文件 配置文件方式-->    <mappers>        <mapper resource="com/dynamic_basics/dao/IUserDao.xml"></mapper>    </mappers>      <!--映射文件 注解方式(使用注解就要删除源配置文件)-->   <!-- <mappers>        <mapper class="com.dynamic_basics.dao.IUserDao"></mapper>    </mappers>--></configuration>

子配置文件

<?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.dynamic_basics.dao.IUserDao">     <!--使用配置的方式解决Java实体类与数据库列名不一致的问题-->    <resultMap id="userMap" type="com.dynamic_basics.domain.User">        <!--主键字段-->        <id property="userId" column="id"></id>        <!--非主键字段-->        <result property="userName" column="username"></result>        <result property="userAddress" column="address"></result>        <result property="userSex" column="sex"></result>        <result property="userBirthday" column="birthday"></result>    </resultMap>     <!--查询所有 id使用方法名-->    <select id="findAl l" resultType="com.dynamic_basics.domain.User" resultMap="userMap">        select * from user    </select>     <!--保存用户-->    <insert id="saveUser" parameterType="com.dynamic_basics.domain.User">        <!--参数使用了ognl表达式-->        insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday});    </insert>     <!--更新用户-->    <insert id="updateUser" parameterType="com.dynamic_basics.domain.User">       update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id=#{id}    </insert>     <!--删除用户-->    <delete id="deleteUser" parameterType="int">        delete from User where id=#{id}    </delete>     <!--根据id查询用户-->    <select id="findById" parameterType="int" resultType="com.dynamic_basics.domain.User">        select * from user where id=#{id}    </select>     <!--根据名称模糊查询-->    <select id="findByName" resultType="com.dynamic_basics.domain.User" parameterType="String">        select * from user where username like #{name}    </select>     <!--获取用户的总记录数-->    <select id="findTotal" resultType="int">        SELECT COUNT(id) FROM `user`;    </select>  </mapper>

测试

public class MyBatisTest {     private InputStream in;    private SqlSession sqlSession;    private IUserDao userDao;    @Before    public void init()throws Exception{        //1.读取配置文件  Resources是myBatis封装的类        in= Resources.getResourceAsStream("SqlMapConfig.xml");        //2.创建SQLSessionFactory工厂        //  SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();        SqlSessionFactory factory=builder.build(in);        //3.使用工厂生产SQLSession对象        sqlSession = factory.openSession();        //4.使用SQLSession创建DAO接口的代理对象         userDao = sqlSession.getMapper(IUserDao.class);    }    @After    public void destory()throws Exception{        //6.释放资源        //提交事务        sqlSession.commit();        sqlSession.close();        in.close();    }    //入门案例         @Test   public void selectUser(){         //初始化资源-使用注解Before         //5.使用代理对象执行方法        List<User> all = userDao.findAll();        for (User user : all) {            System.out.println(user);        }        //释放资源-使用注解After     }         @Test    public void testSave() {        User user=new User();        user.setUsername("mybatis");        user.setAddress("北京市延庆区");        user.setSex("女");        user.setBirthday(new Date());         //初始化资源-使用注解Before         //5.使用代理对象执行方法        userDao.saveUser(user);         //释放资源-使用注解After      }         @Test    public void testUpdate() {        User user=new User();        user.setId(50);        user.setUsername("mybatis_plus");        user.setAddress("北京市安次");        user.setSex("男");        user.setBirthday(new Date());         //初始化资源-使用注解Before         //5.使用代理对象执行方法        userDao.updateUser(user);         //释放资源-使用注解After      }         @Test    public void testDelete() {         //初始化资源-使用注解Before         //5.使用代理对象执行方法        userDao.deleteUser(50);         //释放资源-使用注解After     }        @Test    public void testFindById() {         //初始化资源-使用注解Before         //5.使用代理对象执行方法        User user=userDao.findById(49);        System.out.println(user);         //释放资源-使用注解After     }         @Test    public void testFindByName() {         //初始化资源-使用注解Before         //5.使用代理对象执行方法        List<User> users=userDao.findByName("%王%");       users.forEach(i-> System.out.println(i));         //释放资源-使用注解After     }         @Test    public void testFindTotal() {         //初始化资源-使用注解Before         //5.使用代理对象执行方法        int total=userDao.findTotal();        System.out.println(total);         //释放资源-使用注解After     }  }

总结

mybatis其实使用的方法很简单,需要多记住一些配置,当配置做好了,使用的时候很简单。Mybatis框架将JDBC中复杂的注册驱动、获取连接,使用不同的服务类(DriverManager,Connection,Statement,ResultSet)都封装了。其实框架的学习就是了解框架、熟悉配置,使用框架的阶段。

怎么在Mybatis中通过配置xml实现单表增删改查功能

怎么在Mybatis中通过配置xml实现单表增删改查功能

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎么在Mybatis中通过配置xml实现单表增删改查功能

本文链接: https://lsjlt.com/news/270672.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Mybatis中通过配置xml实现单表增删改查功能
    怎么在Mybatis中通过配置xml实现单表增删改查功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Mybatis简介MyBatis 是一款优秀的持久层框架,...
    99+
    2023-06-14
  • Mybatis基于xml配置实现单表的增删改查功能
    Mybatis入门-基于配置实现单表的增删改查 Mybatis简介 官网链接:https://mybatis.org/mybatis-3/zh/index.html。更加详细的信息可...
    99+
    2024-04-02
  • Mybatis怎么实现动态增删改查功能
    这篇文章给大家分享的是有关Mybatis怎么实现动态增删改查功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Mybatis 流程简介最近在看 Mybatis 的源码,大致了解整个框架流程后便手写了一个特别简...
    99+
    2023-06-14
  • SpringBoot怎么整合Mybatis与thymleft实现增删改查功能
    这篇文章主要介绍“SpringBoot怎么整合Mybatis与thymleft实现增删改查功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么整合Mybatis与thymlef...
    99+
    2023-07-04
  • PHP怎么实现增删改查功能
    这篇文章主要讲解了“PHP怎么实现增删改查功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么实现增删改查功能”吧!sql:-- phpMyAdmin SQL&n...
    99+
    2023-06-29
  • winform增删改查功能怎么实现
    在 Winform 中实现增删改查功能,可以按照以下步骤进行操作:1. 设计界面:在 Winform 窗体上添加相应的控件,如文本框...
    99+
    2023-09-13
    winform
  • mybatis通过中间表实现一对多查询功能
    需求: 通过一个学生的id查询出该学生所学的所有科目。 使用到的表格: 1.student:学生表 2.subject:科目表 3.stu_sub:学生-科目表(这里的成绩字段没...
    99+
    2024-04-02
  • gridview控件增删改查功能怎么实现
    GridView控件的增删改查功能可以通过以下步骤实现:1.设置数据源:将GridView控件绑定到数据源,可以是数据库、XML文件...
    99+
    2023-08-19
    gridview
  • JDBC怎么实现数据库增删改查功能
    这篇文章主要介绍JDBC怎么实现数据库增删改查功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:1、添加数据package cn.itcast.jdbc;import java.sql....
    99+
    2023-06-20
  • java连接数据库怎么实现增删改查功能
    在Java中连接数据库并实现增删改查功能通常需要使用JDBC(Java Database Connectivity)技术。以下是一个...
    99+
    2024-04-02
  • Spring Boot入门(09):如何使用MyBatis的XML配置方式实现MySQL的增删改查操作?
    1. 前言🔥         想要快速高效地开发Java Web应用程序,选择使用Spring Boot和MyBatis无疑是明智之举。本篇文章将教你使用MyBatis的XML配置方式,结合MySQL数据库,实现常见的增删改查操作,让你的应...
    99+
    2023-08-31
    intellij-idea spring boot Mybatis Mybatis的XML书写
  • 如何在MySQL中使用PHP实现数据的增删改查功能
    如何在MySQL中使用PHP实现数据的增删改查功能概要MySQL是一种开源的关系型数据库管理系统,而PHP是一种流行的服务器端脚本语言。结合使用MySQL和PHP,我们可以轻松实现数据库的增删改查功能。本文将向您介绍如何在MySQL中使用P...
    99+
    2023-10-22
    MySQL PHP 增删改查
  • ubuntu中怎么通过配置Pureftpd实现匿名登录功能
    ubuntu中怎么通过配置Pureftpd实现匿名登录功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Pureftpd是一款快速,高质量,功能齐全的ftp服务器,最重要的...
    99+
    2023-06-16
  • Ubuntu中怎么通过修改配置文件实现网络配置
    ...
    99+
    2023-06-13
  • 通配符*匹配功能在MYSQL查询中的实现是怎样的
    通配符*匹配功能在MYSQL查询中的实现是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 今日在做站内短消息发送的时候,遇到一个功能,...
    99+
    2024-04-02
  • 怎么通过Java实现在Word中创建可填充表单
    这篇文章主要讲解了“怎么通过Java实现在Word中创建可填充表单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么通过Java实现在Word中创建可填充表单”吧!程序环境方法1:手动引入。...
    99+
    2023-07-05
  • 怎么在mybatis中实现一个动态SQL和模糊查询功能
    这期内容当中小编将会给大家带来有关怎么在mybatis中实现一个动态SQL和模糊查询功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。新建表d_user:create table d_...
    99+
    2023-06-14
  • 在html页面的表单选项中怎么实现多选功能
    这篇“在html页面的表单选项中怎么实现多选功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • JS基于设计模式中单例模式实现封装对数据增删改查功能的示例分析
    这篇文章给大家分享的是有关JS基于设计模式中单例模式实现封装对数据增删改查功能的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。单例模式单例模式的核心结构中只包含一个被称为...
    99+
    2024-04-02
  • 怎么在Android 中利用RecyclerView实现一个通用适配器功能
    怎么在Android 中利用RecyclerView实现一个通用适配器功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现代码:RViewHolderimport ...
    99+
    2023-05-31
    android recyclerview recycle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作