当前位置: 首页 > news >正文

【MyBatis】快速入门

1、简介

        MyBatis是一个持久化、轻量级的半自动化ORM框架,封装了所有JDBC的原始操作。查询参数以及获取结果集等。

1.1 原始JDBC操作存在的问题

        (1)数据库连接、释放频繁造成系统资源浪费,影响系统性能

        (2)SQL语句在代码中固定,不够灵活不易改动

        (3)进行查询操作时,需要手动将结果集封装到实体类中。进行插入操作时,需要手动将

                参数设置到占符位置

1.2 解决方案

        (1)使用数据库连接池初始化连接资源

        (2)将SQL语句抽取到xml配置文件中

        (3)使用反射、内省等底层技术,将实体类的属性与表中的字段进行自动映射

2、快速构建

1、添加MyBatis坐标以及数据库连接驱动

        <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.31</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>

2、编写MyBatis核心配置文件sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="dev"><environment id="dev"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/eshop"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><mapper resource="mapper/UserMapper.xml"></mapper></mappers></configuration>

3、编写MyBatis映射文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="userMapper"><select id="findAll" resultType="com.wn.mybatis.pojo.User">select * from t_user</select>
</mapper>

4、创建实体类与数据库表

http://www.lryc.cn/news/157003.html

相关文章:

  • 【gtpJavaScript】使用JavaScript实现套壳gtp与gtp打字输出效果
  • C++内存管理(2)new、delete详解
  • ELK集群搭建流程(实践可用)
  • react-quill富文本 中文输入法触发change问题
  • Upload-labs 1~15 通关详细教程
  • ChatGPT分析日本排放核污水对世界的影响
  • eclipse进入断点之后,一直卡死,线程一直在运行【记录一种情况】
  • 2.5 动态字符串 String (完整源码)
  • Ansible之变量
  • 自动化测试面试常见技术题目
  • aarch64 arm64 部署 stable diffusion webui 笔记 【2】继续安装其他依赖 gfpgan
  • 使用ECS和RDS部署WordPress,搭建个人博客并使用域名访问
  • C# Winform 简单排期实现(DevExpress TreeList)
  • 2023高教社杯国赛数学建模C题思路+模型+代码(9.7晚开赛后第一时间更新)
  • QT6中添加串口模块SerialPort最简单方法
  • LeetCode每日一题:1123. 最深叶节点的最近公共祖先(2023.9.6 C++)
  • Oracle查看锁表和正在执行的Sql
  • Linux centos 卸载 ceph
  • ElementUI浅尝辄止34:Radio 单选框
  • 开始MySQL之路——MySQL三大日志(binlog、redo log和undo log)概述详解
  • router基础使用
  • 亚马逊云科技人工智能内容审核服务:大大降低生成不安全内容的风险
  • 2023年高教社杯数学建模思路 - 案例:最短时间生产计划安排
  • 算法工程题(二叉树递归)
  • “指针跃动”受邀参加全球贸易服务峰会
  • Go Web开发的高级技巧和最佳实践
  • Verilog 基础知识
  • element ui 表格组件与分页组件的二次封装
  • 递归算法学习——有效的数独,解数独
  • 基于Alexnet深度学习网络的人员口罩识别算法matlab仿真