iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >MyBatis配置与CRUD使用的方法是什么
  • 262
分享到

MyBatis配置与CRUD使用的方法是什么

2023-07-05 04:07:52 262人浏览 独家记忆
摘要

本篇内容主要讲解“mybatis配置与CRUD使用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MyBatis配置与CRUD使用的方法是什么”吧!namespace:命名空间 必须绑

本篇内容主要讲解“mybatis配置与CRUD使用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MyBatis配置与CRUD使用的方法是什么”吧!

namespace:命名空间 必须绑定一个对应Mapper接口

使用全限定名: com.yuqu.Dao.UserMapper

id:对应上面的Mapper接口下面的某一方法名

resultType:表示返回结果类型 如:com.yuqu.pojo.User

parameterType:参数类型,基本数据类型通常忽略不写

CRUD增删改查

增删改切记提交事务sqlSession.commit();

在确保已经配置好了mybatis-config.xml核心配置文件之后,我们每次需要操作sql时,就只需要操作接口UserMapper和UserMapper.xml配置文件即可

示例代码

UserMapper.xml

<mapper namespace="com.yuqu.dao.UserMapper">    <select id="getUserList" resultType="com.yuqu.pojo.User">        select * from testmybatis.tb_user;    </select>    <select id="getUserById" parameterType="int" resultType="com.yuqu.pojo.User">        select * from testmybatis.tb_user where id = #{id};    </select>    <insert id="insertUser" parameterType="com.yuqu.pojo.User">        insert into testmybatis.tb_user (id,username,passWord,gender,addr) values(#{id},#{username},#{password},#{gender},#{addr});    </insert>    <update id="updateUser" parameterType="com.yuqu.pojo.User">        update testmybatis.tb_user set username=#{username},password=#{password},gender=#{gender},addr=#{addr} where id = #{id};    </update>    <delete id="deleteUser" parameterType="int">        delete from testmybatis.tb_user where id = #{id};    </delete></mapper>

Test代码(仅以添加为例)

    @Test    public void testInsertUser(){        // 获取SqlSession        SqlSession sqlSession = MyBatisUtils.getSqlSession();        // 执行sql        UserMapper mapper = sqlSession.getMapper(UserMapper.class);        int res = mapper.insertUser(new User(4, "赵六", "1234", '妖', "郑州"));        if (res > 0){            System.out.println("插入成功!");            // 增删改必须提交事务            sqlSession.commit();        }    }

Map传参

上述UserMapper.xml所示,如果参数过多时,当我们进行添加操作或者修改操作就会非常麻烦。所以,可以优化采用Map来进行可选参数。以查询用户selectUser为例:

// UserMapper接口// 查询用户 Map入参 简单实现模糊查询    int selectUser2(Map<String,Object> map);// UserMapper.xml<select id="selectUser2" parameterType="map" resultType="com.yuqu.pojo.User">        select * from testmybatis.tb_user where username = #{helloName};    </select>// @Test@Test    public void testSelectUser2(){        SqlSession sqlSession = MyBatisUtils.getSqlSession();        UserMapper mapper = sqlSession.getMapper(UserMapper.class);        Map<String, Object> map = new HashMap<String, Object>();        map.put("helloName","顺子");        User user = mapper.selectUser2(map);        System.out.println(user);        sqlSession.close();    }

map传递参数,可以直接在sql中获取key,实现定制化参数

对象传递参数,直接在sql中取出sql的对象属性。但要保证字段名相同

基本数据类型时直接在sql中获取

模糊查询

// UserMapper// 模糊查询用户    List<User> getUserLikeList(String value);// UserMapper.xml<select id="getUserLikeList" resultType="com.yuqu.pojo.User">        select * from testmybatis.tb_user where username like #{value};    </select>

还有一种方式就是直接把sql固定写死,获取用户输入的一个稳定的值

select * from testmybatis.tb_user where username like "%"#{value}"%";

MyBatis配置解析

核心配置文件mybatis-config.xml

参考mybatis官网给出的配置信息:

configuration(配置)
    properties(属性)
    settings(设置)
    typeAliases(类型别名)
    typeHandlers(类型处理器)
    objectFactory(对象工厂)
    plugins(插件
    environments(环境配置)
        environment(环境变量)
            transactionManager(事务管理器)
            dataSource(数据源)
    databaseIdProvider(数据库厂商标识)
    mappers(映射器)

环境变量(Environments)

mybatis可以配置多种环境,但每个sqlSessionFactory智能选择一个环境

一个数据库对应一个SqlSessionFactory

我们可以在environments元素下配置多个环境environment,每个环境都需要设置单独的id,当我们需要用到哪一个的时候就需要将default设置为哪一个环境的id

<environments default="development"><environments>

environments下包含

事务管理器transactionManger

<transactionManager type="JDBC">  <property name="skipSetAutoCommitOnClose" value="true"/></transactionManager>

事务管理器不仅有JDBC一种,还有一种 MANAGED

<transactionManager type="MANAGED">  <property name="closeConnection" value="false"/></transactionManager>

MyBatis官网提示: 如果你正在使用 spring + MyBatis,则没有必要配置事务管理器,因为Spring 模块会使用自带的管理器来覆盖前面的配置

数据源DataSource

之前学过的比如dbcp、c3p0、druid等等。用于连接数据库

mybatis内置了三种数据源:type="[UNPOOLED|POOLED|JND]"

UNPOOLED:表示无池连接,用完即销毁

POOLED:有池连接,用完后回收等待下次使用。(默认情况使用)

JND:表示正常连接

属性(Properties)

属性可以通过外部文件配置,也可以在Properties的子元素当中配置,在Properties子元素配置如下示例:

<environments default="development">        <environment id="development">            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver"/>                <property name="url" value="jdbc:Mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"/>                <property name="username" value="root"/>                <property name="password" value="123456"/>            </dataSource>        </environment>    </environments>

也可以通过典型的Java属性文件进行配置,比如db.properties文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&;useUnicode=true&;characterEncoding=UTF-8&;serverTimezone=UTC
username=root
password=123456

最后价格文件用properties标签引入到mybatis-config.xml中,环境则更改为初始形式

<!--  引入外部资源  -->    <properties resource="db.properties" /><environments default="development">        <environment id="development">            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="${driver}"/>                <property name="url" value="${url}"/>                <property name="username" value="${username}"/>                <property name="password" value="${password}"/>            </dataSource>        </environment>    </environments>

通过官网可以知道,我们也可以将db.properties中的配置信息只写一半,另一半在引入的同时用双标签闭合,在其中用properties的子标签property重新引入即可

<properties resource="db.properties" >        <property name="username" value="root"/>        <property name="password" value="123456"/>    </properties>

如果同时存在于外部文件和property中,优先使用外部文件的配置信息

类型别名(typeAliases)

typeAliases用于简化全限定名的书写,仅限于在xml中配置

指定全限定类名别名:

<typeAliases>   <typeAlias type="com.yuqu.pojo.User" alias="user" /></typeAliases>

type代表全限定名,将其映射为一个简化名称 user。如上所示在需要用到com.yuqu.pojo.User的地方就可以替换成user

指定包名配置

<typeAliases>   <package name="com.yuqu.pojo"/></typeAliases>

经此配置后,mybatis会自动查找在com.yuqu.pojo下的所需Java Bean。

在没有对实体类添加注解用法:默认使用Bean的首字母小写的非限定类名来作为它的别名

添加注解的用法:

@Alias("hello")public class User {    //...}

接下来就可以在任何要用com.yuqu.pojo.User的地方使用hello代替

建议在实体类较少的情况下使用第一种指定全限定类名的别名

实体类较多时可以使用指定包名配置

其他的Java类型内建的别名可以参考MyBatis官网

映射器(mappers)

在定义sql映射语句之前,首先我们要告诉mybatis去哪里获取这些语句。这个时候就需要用到映射器mappers,mybatis根据映射的路径去找到对应的文件或者接口再去执行sql语句

映射器使用一:使用相对于类路径的资源引用(建议使用)

<mappers>  <mapper resource="org/mybatis/builder/PostMapper.xml"/></mappers>    // 如果将Mapper文件直接放在resource下就可以改成<mappers>  <mapper resource="PostMapper.xml"/></mappers>

映射器使用二:使用class文件的完全限定类名

<mappers><mapper class="org.mybatis.builder.PostMapper" /></mappers>
  • 接口和它的Mapper配置文件必须在同一包下!

  • 接口和它的Mapper配置文件必须同名!

映射器使用使用三:将包内的映射器接口全部注册为映射器

<mappers>  <package name="org.mybatis.builder"/></mappers>
  • 接口和它的Mapper配置文件必须在同一包下!

  • 接口和它的Mapper配置文件必须同名!

生命周期和作用域

错误的使用生命周期和作用域会导致非常严重的并发问题

SqlSessionFactoryBuilder:

  • 创建SqlSessionFactory工厂使用,一旦创建了SqlSessionFactory就不再需要使用它

  • 最佳作用域是方法域(局部方法变量)

SqlSessionFactory:

  • SqlSessionFactory用于生产SqlSession实例

  • 一旦创建就应该一直存在于程序的运行期间,不要丢弃或尝试重新创建另一个SqlSessionFactory

  • 可以采用单例模式来保证唯一的SqlSessionFactory

  • 最佳作用域是全局作用(应用作用域)

SqlSession:

  • SqlSession用于执行已映射的sql指令

  • 每个线程都有自己的SqlSession实例,因为它不是线程安全的不能被共享

  • 最佳作用域是方法域或者请求域

到此,相信大家对“MyBatis配置与CRUD使用的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: MyBatis配置与CRUD使用的方法是什么

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis配置与CRUD使用的方法是什么
    本篇内容主要讲解“MyBatis配置与CRUD使用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MyBatis配置与CRUD使用的方法是什么”吧!namespace:命名空间 必须绑...
    99+
    2023-07-05
  • mybatis mapper配置的方法是什么
    MyBatis的Mapper配置方法包括以下两种方式:1. XML配置文件:在XML配置文件中定义Mapper接口与SQL语句的映射...
    99+
    2023-09-29
    mybatis
  • mybatis-plus配置oracle的方法是什么
    要配置MyBatis-Plus来使用Oracle数据库,可以按照以下步骤进行操作: 1、首先,在pom.xml文件中添加Oracle...
    99+
    2024-03-07
    mybatis-plus oracle
  • mybatis配置别名的方法是什么
    在MyBatis中,可以通过两种方式配置别名:1. 在mybatis-config.xml文件中配置别名:在标签中,可以通过子标签为...
    99+
    2023-09-21
    mybatis
  • mybatis在springboot配置的方法是什么
    在Spring Boot中配置MyBatis,可以按照以下步骤进行操作:1. 添加MyBatis和相关依赖:在pom.xml文件中添...
    99+
    2023-10-21
    mybatis springboot
  • MyBatis注解CRUD与执行流程是什么
    这篇文章主要介绍了MyBatis注解CRUD与执行流程是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MyBatis注解CRUD与执行流程是什么文章都会有所收获,下面我们一起来看看吧。结果映射ResultM...
    99+
    2023-07-05
  • mybatis驼峰命名配置的方法是什么
    MyBatis提供了两种方式来配置驼峰命名。1. 使用全局配置文件:在MyBatis的全局配置文件(通常是`mybatis-config.xml`)中,可以添加如下配置:```xml```这样配置之后,MyBatis会自动将数据库表的下...
    99+
    2023-08-09
    mybatis
  • mybatis spring配置SqlSessionTemplate的使用方法
    这篇文章主要讲解了“mybatis spring配置SqlSessionTemplate的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatis spring配置SqlSess...
    99+
    2023-06-20
  • Spring Boot 与 mybatis配置方法
    1.首先,spring boot 配置mybatis需要的全部依赖如下:<!-- Spring Boot 启动父依赖 --><parent><groupId>org.springframework.boo...
    99+
    2023-05-31
    spring boot mybatis
  • mybatis的foreach使用方法是什么
    MyBatis中的foreach标签用于进行循环操作,通常用于批量操作或者动态拼接SQL语句。以下是MyBatis中foreach标...
    99+
    2024-04-02
  • idea安装与配置的方法是什么
    安装和配置Idea的方法如下:1. 下载Idea安装包:在JetBrains官网上下载适用于您的操作系统的Idea安装包。安装包通常...
    99+
    2023-08-16
    idea
  • Davinci的安装与配置方法是什么
    这篇文章主要介绍“Davinci的安装与配置方法是什么”,在日常操作中,相信很多人在Davinci的安装与配置方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Davinci的安装与配置方法是什么”的疑...
    99+
    2023-06-02
  • nodejs安装与配置的方法是什么
    今天小编给大家分享一下nodejs安装与配置的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Nodejs安装与配置...
    99+
    2023-07-05
  • apache的配置与管理方法是什么
    Apache的配置与管理方法主要有两种:通过配置文件进行管理和使用命令行工具进行管理。1. 通过配置文件进行管理:Apache的配置...
    99+
    2023-09-21
    apache
  • Spark SQL配置及使用的方法是什么
    本篇内容介绍了“Spark SQL配置及使用的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!XY个人记SparkSQL是...
    99+
    2023-06-21
  • MySQL8.0.32的安装与配置的方法是什么
    这篇文章主要介绍了MySQL8.0.32的安装与配置的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL8.0.32的安装与配置的方法是什么文章都会有所收获,下面我们一起来看看吧。1、下载2、解...
    99+
    2023-07-05
  • Mybatis-Plus实体类注解方法与mapper层和service层的CRUD方法
    目录1 注解1.1 @TableName1.2 @TableId1.3 @TableField1.4 @TableLogic2 mapper层的CRUD方法2.1 增(insert)...
    99+
    2024-04-02
  • SpringBoot使用Mybatis&Mybatis-plus文件映射配置方法
    简介: Springboot使用Mybatis&Mybatis-plus 两者文件映射配置略有不同,之前我用的是Mybatis,但公司用Mybatis-plus;自己新建了一...
    99+
    2024-04-02
  • Tomcat的配置方法是什么
    Tomcat的配置方法有两种:命令行配置和图形界面配置。1. 命令行配置:a. 打开Tomcat的安装目录。b. 进入conf文件夹...
    99+
    2023-09-11
    Tomcat
  • Zookeeper的配置与集群管理方法是什么
    这篇文章主要讲解了“Zookeeper的配置与集群管理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Zookeeper的配置与集群管理方法是什么”吧!4.1 配置文件ZooKeep...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作