JavaWeb学习日记6-MYSQL,MyBatis

  • 特大好消息,MYSQL我已经学过,这里主要的操作是添加了JetBrain公司的图形化工具
  • 直接开始学习MyBatis!

MyBatis

  • 持久层框架,用于简化JDBC的开发

MyBatis入门

  • 1.准备工作
    • 创建springboot工程,数据库表user,实体类User
  • 2.引入MyBatis的相关依赖,配置MyBatis(数据库连接信息):MyBatis Framework,MySQL Driver
  • 3.编写SQL语句(注解/XML)
    • 只要定义Mapper接口,不用定义实现类
  • pojo放实体类
  • 配置SQL提示

JDBC介绍

  • 是API

数据库连接池

  • 数据库连接池是个容器,负责分配、管理数据库连接
  • 它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个
  • 优势:资源重用、提升响应速度,避免数据库连接遗漏

标准接口DataSource

  • 功能:获取连接
    • Connection getConnection() throws SQLException;
  • springboot中默认自带Hikari连接池
  • Druid连接池是阿里巴巴开源的数据库连接池项目

lombok

MyBatis基础操作

环境准备

删除

根据主键删除数据
  • 日志输出
    • #驱动类名称
      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
      #数据库连接的url
      spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
      #连接数据库的用户名
      spring.datasource.username=root
      #连接数据库的密码
      spring.datasource.password=1234
      
      #配置mybatis的日志, 指定输出到控制台
      mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
      
      #开启mybatis的驼峰命名自动映射开关 a_column ------> aCloumn
      mybatis.configuration.map-underscore-to-camel-case=true
  • 预编译SQL
    • 性能更高,更安全(防止SQL注入)
  • 参数占位符

新增(主键返回)

  • 数据添加成功后,需要获取插入数据库数据的主键
  • 所有基础操作直接照猫画虎!不再赘述

XML映射文件

MyBatisX

  • 基于IDEA快速开发MyBatis的插件

动态SQL

  • 随用户输入或外部条件变化而变化

<if>

<where>

  • 去除多余关键字

<foreach>

  • 循环遍历
  • collection:要遍历的集合
  • item:遍历出来的元素
  • separator:分隔符
  • open:遍历前拼接的SQL片段
  • close:遍历后拼接的SQL片段

<sql>

<include>

  • refid:指定sql片段
  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现省市区三级联动的关键是建立好数据库,并且编写好对应的 SQL 语句。以下是一个简单的数据库设计: - 省份表 province,包括字段 id 和 name。 - 城市表 city,包括字段 id、name 和省份的外键 province_id。 - 区县表 district,包括字段 id、name 和城市的外键 city_id。 接下来是建表语句: ```sql -- 省份表 CREATE TABLE `province` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 城市表 CREATE TABLE `city` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `province_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `province_id` (`province_id`), CONSTRAINT `city_ibfk_1` FOREIGN KEY (`province_id`) REFERENCES `province` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 区县表 CREATE TABLE `district` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `city_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `city_id` (`city_id`), CONSTRAINT `district_ibfk_1` FOREIGN KEY (`city_id`) REFERENCES `city` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 接下来是查询省份、城市、区县的 SQL 语句: ```sql -- 查询所有省份 SELECT id, name FROM province; -- 查询某个省份下的所有城市 SELECT id, name FROM city WHERE province_id = ?; -- 查询某个城市下的所有区县 SELECT id, name FROM district WHERE city_id = ?; ``` 在 Java Web 项目中,可以使用 Ajax 和 JSON 技术实现省市区三级联动。前端页面发送 Ajax 请求,后端通过 JDBC 连接数据库,查询对应的省份、城市、区县信息,并以 JSON 格式返回给前端页面。前端页面再解析 JSON 数据,更新页面的省份、城市、区县下拉框选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值