首页 > 其他分享 >Mybatis基本使用

Mybatis基本使用

时间:2023-05-22 17:44:19浏览次数:39  
标签:基本 name void UserMapper sqlSession user 使用 Mybatis public

1、创建maven项目,导入mybatis依赖。

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4.SNAPSHOOT</version>
        </dependency>

2、创建MybatisConfig.xml配置连接文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org/DTD Config 3.0" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- MyBatis的全局配置文件 -->
<configuration >
    <!-- 1.配置环境,可配置多个环境(比如:develop开发、test测试) -->
    <environments default="develop">
        <environment id="develop">
            <!-- 1.1.配置事务管理方式:JDBC/MANAGED
            JDBC:将事务交给JDBC管理(推荐)
            MANAGED:自己管理事务
              -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 1.2.配置数据源,即连接池 JNDI/POOLED/UNPOOLED
                JNDI:已过时
                POOLED:使用连接池(推荐)
                UNPOOLED:不使用连接池
             -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/user-mode?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="1234qwer"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 2.导入Mapper配置文件,如果mapper文件有多个,可以通过多个mapper标签导入-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

3、创建User用户实体类

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;

    /**
     * 名称
     */
    private String name;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String phoneNumber;
}

4、创建用户model接口

@Mapper
public interface UserMapper {

    List<User> getPageUser(@Param("name") String name);

    void insertUser(User user);

    void updateUser(User user);

    void deletetUser(Long userId);
}

5、创建映射文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itmy.dao.UserMapper">

    <resultMap id="userRmap" type="com.itmy.model.entity.User">
        <result jdbcType="VARCHAR" javaType="java.lang.String" column="name" />
    </resultMap>

    <select id="getPageUser" resultType="com.itmy.model.entity.User" parameterType="string">
        select * from tb_user
        <where>
            <if test="name != null and '' != name">
                name like CONCAT('%',#{name},'%');
            </if>
        </where>
    </select>

    <insert id="insertUser" parameterType="com.itmy.model.entity.User">
        INSERT INTO `tb_user`
        (`name`, `account`,`password`, `email`,phone_number,remark)
        VALUES
        (#{name}, #{account}, #{password}, #{email},#{phoneNumber},#{remark});
    </insert>

    <update id="updateUser" parameterType="com.itmy.model.entity.User">
        UPDATE tb_user
        <set>
            <if test="name != null and '' != name">
                name = #{name},
            </if>
            <if test="account != null and '' != account">
                account = #{account},
            </if>
            <if test="password != null and '' != password">
                password = #{password},
            </if>
            <if test="email != null and '' != email">
                email = #{email},
            </if>
            <if test="phoneNumber != null and '' != phoneNumber">
                phone_number = #{phoneNumber},
            </if>
            <if test="remark != null and '' != remark">
                remark = #{remark},
            </if>
        </set>
        where id = #{id}
    </update>

    <delete id="deletetUser" parameterType="java.lang.Long">
        DELETE FROM tb_user WHERE id = #{userId}
    </delete>
</mapper>

6、在测试类中编写测试文件MTest.java

public class Test {

    InputStream inputStream;

    SqlSession sqlSession;
    @Before
    public void beforeSql() throws IOException {
        inputStream = Resources.getResourceAsStream("MybatisConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        sqlSession = sqlSessionFactory.openSession();
    }

    @org.junit.Test
    public void querySql(){
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<User> pageUser = userMapper.getPageUser(null);
        for (int i = 0; i < pageUser.size(); i++) {
            System.out.println(pageUser.get(i));
        }
    }

    @org.junit.Test
    public void insertSql(){
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user=new User();
        user.setAccount("[email protected]");
        user.setEmail("[email protected]");
        user.setName("掌声");
        user.setPassword("SDWAR!@");
        user.setPhoneNumber("12345");
        user.setRemark("测试优化信息");
        userMapper.insertUser(user);
        sqlSession.commit();
        System.out.println();
    }

    @org.junit.Test
    public void updateSql(){
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user=new User();
        user.setAccount("[email protected]");
        user.setEmail("[email protected]");
        user.setName("掌声bb");
        user.setPassword("SDbbWAR!@");
        user.setPhoneNumber("12345");
        user.setRemark("测试优化b信息");
        user.setId(5L);
        userMapper.updateUser(user);
        System.out.println();
        sqlSession.commit();
    }

    @org.junit.Test
    public void deleteSql(){
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        userMapper.deletetUser(6L);
        System.out.println();
        sqlSession.commit();
    }


    @After
    public void afterSql() throws IOException {
        sqlSession.close();
        inputStream.close();
    }
}
View Code

 

标签:基本,name,void,UserMapper,sqlSession,user,使用,Mybatis,public
From: https://www.cnblogs.com/eternality/p/17421291.html

相关文章

  • 使用 Nacos 做注册中心
    越来越多的国内公司使用SpringCloudAlibaba技术,其产品Nacos功能强大,同时具有注册中心和配置中心的功能。前面的博客已经介绍了如何安装部署Nacos,本篇博客就使用之前部署好的Nacos集群(当然你也可以部署并使用单节点的Nacos),介绍Java程序代码如何使用Nacos作为注册中心......
  • 使用docker快速部署mysql
    查看mysql镜像https://container-registry.oracle.com/ 创建容器mysql5.7从oracle容器仓库中拉取mysql5.7社区版本[root]#dockerpullcontainer-registry.oracle.com/mysql/community-server:5.7 查看镜像信息[root]#dockerimagesREPOSITORY......
  • 数据类型——基本数据类型
    基本数据类型整数字符       ——char     (1个字节)短整型   ——short(2个字节)整型      ——int (取决于编译器(cpu)通常是一个字,4个字节)长整型   ——long(取决于编译器(cpu),32位是4个字节,64位是8个字节)longlong(C99)浮点数......
  • 使用卷积神经网络实现猫和狗的预测
    1、将图片数据分为训练集和验证集,训练集中猫和狗各300张图片,验证集中猫和狗各200张图片。2、构建一个神经网络模型,并使用划分好的训练集数据训练模型,使用验证集的数据验证模型,训练迭代30次,建议使用生成器。3、获取训练过程中的训练精度、验证精度,并使用matplotlib来绘制精度变化......
  • 对于手头正在使用输入法或者搜索类的软件产品评价
    百度产品。用户界面一个好的用户界面可以让用户更容易地掌握输入法或搜索类软件的功能,从而提高用户的效率。用户界面应该具有简单、易用、明确的特点,让用户一目了然地了解软件的功能和操作方法。同时,用户界面还应该具有美观、大方、简洁的特点,这样可以吸引用户的注意力,提高用户......
  • 数字名片工具 BBlog:使用一个链接,快速创建和分享你的信息主页和数字花园
    数字名片BBlog:使用一个链接,快速创建和分享你的信息主页和数字花园随着移动互联网技术的快速发展,数字名片产品已成为现代社交和网络营销的重要工具。数字名片可以帮助个人和企业在各种场合中展示和分享联系信息,同时还具有便捷、环保、易于管理等诸多优点。在本文中,我们将介绍......
  • kindle7插件开发笔记[2]-使用Rust重写插件
    前言上一篇笔记:kindle7插件开发笔记[1]-在折腾中入门代码地址:https://gitee.com/qsbye/kindle-plugin-touch摘要用Rust语言重写在Kindle上显示图片的插件,初步实现了图片完整显示及自动刷新屏幕的功能.说明Kindle7的屏幕信息eips-i结果:Fixedframebufferinfoi......
  • 使用process-exporter监控主机进程
    process-exporter介绍在prometheus中,可以借助process-exporter用来检测所选进程的状态信息,官网地址https://github.com/ncabatoff/process-exporter运行方法:process-exporter[options]-config.pathfilename.yml若选择监控的进城并对其进行分组,可以使用命令行参数或者yaml配置文......
  • 使用podman-compose快速部署应用
    我们对于docker-compose并不陌生,它是一个用于编排多个可能相互依赖的容器的工具。而PodmanCompose项目的目标是作为docker-ompose的替代品,而不需要对docker-compose.yaml文件进行任何修改。要想使用podman-compose需要先安装podman,然后安装podman-compose。Rocky8下安装po......
  • 在Windows Server 2022中使用Microsoft Deployment Toolkit(MDT)时,Bootstrap.ini文件是
    在WindowsServer2022中使用MicrosoftDeploymentToolkit(MDT)时,Bootstrap.ini文件是用于启动和定制Windows预安装环境(WinPE)的关键文件。以下是常见的Bootstrap.ini参数及其描述:[Settings]:指定设置组。Priority:指定Bootstrap.ini的优先级,以确定哪个Bootstrap.ini文件将被使用(如......