【Web开发技术】数据存储中间件(关系数据库)

本文介绍了在SpringBoot框架下如何配置和使用MySQL与Oracle数据库,包括依赖添加、数据库连接配置,并详细展示了Mybatis的配置过程,提供了XML和YML配置文件的示例。此外,文章还提及了数据库在Web开发中的应用和一些相关技术,如TCP协议、定时任务等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前述

在日常生活中,我们所使用到的应用(如:聊天类、餐饮类、出行类)和用户之间的交互无非就是数据与数据之间的交互。在数据库中的操作,无非就是数据表与数据表之间的级联查询(一对一、一对多、多对多) + 查询条件 来完成一些数据操作,然后反馈给用户,就基本完成了一项功能。
当然如果存在一些复杂的业务需求,就可能需要配合其他技术来完成。(闲扯一下)
比如:

  • 1、聊天类应用,实现用户与用户聊天。餐饮类应用,存在一个账单等待支付(过期销毁)
    (1)B/S架构:Browser端就需要使用到TCP协议(如:Web Scoker),Service端就需要使用到定时任务技术(如:Spring Task)。
    (2)C/S架构:Client端和Browser端一样也需要TCP协议(如:OkHttp),Service端同上。
  • 2、出行类应用,从一个地方到达另外一个地方,数据库反馈的是一笔大量的数据,用户肯定很难看懂。那么就需要进行数据渲染(比如:2DCanvas)

二、介绍

用户传递过来的数据,一般存储在内存(寄存器和堆栈)中,但不会长久存储下来,那么就需要用到数据存储技术(数据库Database)来记录用户需要的数据。数据库又分为网络数据库、层次数据库、关系数据库,这里我们主要是关于关系型数据在Web开发的应用

三、配置

本篇主要记录 > 关系型数据库在Spring Boot中的使用

1、MySql数据库

关于数据库的安装,在网站上存在很多教程,就不再描述。

(1)依赖
<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
</dependency>
(2)配置
  • yml配置文件(application.yml)
spring:
  datasource:
    name: databse_name  # 数据库名
    url: jdbc:mysql://localhost:3306/databse_name   # 访问url,localhost为IP地址,3306为端口,databse_name为数据库名
    username: root_name  # 用户名
    password: root_pass  # 密码
    driver-class-name: com.mysql.cj.jdbc.Driver  # 数据库链接驱动
  • xml配置文件(application.xml)
	<!-- 配置数据源 -->
	<bean id="ds"
		  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="url"
				  value="jdbc:mysql://localhost:3306/table_name?characterEncoding=utf8"></property>
		<property name="username" value="root_name"></property>
		<property name="password" value="root_pass"></property>
	</bean>
	<!-- 添加事务支持 -->
	<bean id="txManager"
		  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="ds"></property>
	</bean>

2、Oracle数据库

(1)依赖
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.4</version>
</dependency>
(2)配置
  • yml配置文件(application.yml)
spring:
  datasource:
    name: databse_name  # 数据库名
    url: jdbc:oracle:thin:@localhost:1521:orcls/databse_name   # 访问url,localhost为IP地址,1521为端口,databse_name为数据库名
    username: root_name  # 用户名
    password: root_pass  # 密码
    driver-class-name: oracle.jdbc.driver.OracleDriver  # 数据库链接驱动
  • xml配置文件(application.xml)
<bean id="ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
	<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcls/databse_name"/>
	<property name="username" value="root_name"/>
	<property name="password" value="root_pass"/>
</bean>

<!-- 添加事务支持 -->
<bean id="txManager"
	  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource" ref="ds"></property>
</bean>

四、Mybatis配置

  • 依赖
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>
  • yml配置文件(application.yml)

根据自己使用的什么架构来二选一

mybatis:
  #mapper配置文件
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.xpq.entity
  configuration:
    #开启驼峰命名
    map-underscore-to-camel-case: true
  • xml配置文件(mybatis-config.xml)
<?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">
<configuration>
	<settings>
		<!-- 打开延迟加载的开关 -->
		<setting name="lazyLoadingEnabled" value="true" />
		<!-- 将积极加载改为按需加载 -->
		<setting name="aggressiveLazyLoading" value="false" />
	</settings>
	<mappers>
		<mapper resource="/mapper/OrderMapper.xml"></mapper>
	</mappers>
</configuration>

五、使用

OrderMapper.xml文件

<?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.xpq.mapper.OrderMapper">

	<update id="update">
        update order
        <set>
            <if test="name != null">name = #{name},</if>
        </set>
        where id = #{id}
    </update>
    
</mapper>

OrderMapper.java文件,主要就是一些简单的sql使用方法,关于符合业务需求的sql使用,我将会写一篇专门的博客用于介绍

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface OrderMapper {

    @Select("select * from order where id=#{id}")
    Order select(Long id);

	@Insert("insert into order(id, name, user_id) values(#{id}, #{name}, #{userId})")
	int insert(Order order);

	void update(Order order);

	@Delete(delete from order where id=#{id})
	void delete(Long id);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端new守夜人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值