SpringBoot_数据访问-整合MyBatis(一)-基础环境搭建

本文详细介绍了如何在Spring Boot项目中集成MyBatis,包括选用适当的模块、配置数据源(如Druid)、设置MyBatis Starter以及配置监控。通过具体代码示例,展示了如何配置Druid数据源和MyBatis,以及如何使用MyBatis进行数据库操作。

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

前面整合了基本的JDBC,也配置了druid数据源,那接下来就整合mybatis,整合mybatis呢,数据访问使用的

是mybatis,那mybatis要怎么用呢,下一步选择我们需要的模块,先把web来选中,首先选中MYSQL数据库驱动,

再来选择JDBC,他能帮我们来选中数据源,然后我们再来选中mybatis,mybatis的starter叫这个,

mybatis-spring-boot-starter,这个starter不是springboot官方出的,官方出的starter叫spring-boot-starter,

什么模块,这个是mybatis自己出的starter,所以我们要用mybatis要用这个starter

<dependency>  
	<groupId>org.mybatis.spring.boot</groupId>  
	<artifactId>mybatis-spring-boot-starter</artifactId>  
	<version>1.3.2</version>  
</dependency>

这个starter给我们引入了哪些依赖呢,我们其实也可以来看一下,这个是mybatis-spring-boot-starter,引入了mybatis,

它是3.4.5版本的,mybatis与spring的整合包,它本身也引入了spring-boot-jdbc,那我们选的时候也可以不选他,最终也会

引入进来,引入了mybatis和springboot的自动配置,这是mybatis自己来写的自动配置包,我们就把图截取下来

就引入了这么多的东西,mybatis的jar包,以及中间的整合包,和他的自动配置包,那我们接下来就来配置一下mybatis,

我们也使用druid的方式来整合进来,我们不用他原生的tomcat数据源,我们还是引用druid,

<!-- 引入druid数据源 -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>1.1.8</version>
</dependency>

这个数据源的坐标我们之前用过,我把之前的配置文件也复制过来,

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/day20
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
package com.learn.config;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import javax.sql.DataSource;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;

@Configuration
public class DruidConfig {

	@ConfigurationProperties(prefix="spring.datasource")
	@Bean
	public DataSource druid() {
		return new DruidDataSource();
	}
	
	// 配置Druid的监控
	// 1.配置一个管理后台的Servlet
	// 2.配置一个监控的Filter
	@Bean
	public ServletRegistrationBean statViewServlet() {
		ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
		Map<String,String> initParams = new HashMap<String,String>();
		initParams.put("loginUsername", "admin");
		initParams.put("loginPassword", "123456");
		initParams.put("allow", "");
		initParams.put("deny", "192.168.15.21");
		// 默认就是允许所有访问
		bean.setInitParameters(initParams);
		return bean;
	}
	
	// 2.配置一个web监控的filter
	@Bean
	public FilterRegistrationBean webStatFilter() {
		FilterRegistrationBean bean = new FilterRegistrationBean();
		bean.setFilter(new WebStatFilter());
		Map<String,String> initParams = new HashMap<String,String>();		
		initParams.put("exclusions", "*.js,*.css,/druid/*");
		bean.setInitParameters(initParams);
		bean.setUrlPatterns(Arrays.asList("/*"));
		return bean;
	}
}
数据源就是这么配置能使用就行了,

localhost:8080/druid
package com.learn.bean;

public class Employee {
	
	private Integer id;
	
	private String NAME;
	
	private String gender;
	
	private String title;
	
	private String email;
	
	private double salary;
	
	private Integer deptId;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNAME() {
		return NAME;
	}

	public void setNAME(String nAME) {
		NAME = nAME;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public double getSalary() {
		return salary;
	}

	public void setSalary(double salary) {
		this.salary = salary;
	}

	public Integer getDeptId() {
		return deptId;
	}

	public void setDeptId(Integer deptId) {
		this.deptId = deptId;
	}

	@Override
	public String toString() {
		return "Employee [id=" + id + ", NAME=" + NAME + ", gender=" + gender + ", title=" + title + ", email=" + email
				+ ", salary=" + salary + ", deptId=" + deptId + "]";
	}

}
package com.learn.bean;

public class Department {

	private Integer id;
	
	private String deptName;
	
	private String principal;
	
	private String functional;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getDeptName() {
		return deptName;
	}

	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}

	public String getPrincipal() {
		return principal;
	}

	public void setPrincipal(String principal) {
		this.principal = principal;
	}

	public String getFunctional() {
		return functional;
	}

	public void setFunctional(String functional) {
		this.functional = functional;
	}

	@Override
	public String toString() {
		return "Department [id=" + id + ", deptName=" + deptName + ", principal=" + principal + ", functional="
				+ functional + "]";
	}
	
}

 

内容概要:本文详细比较了GPU、TPU专用AI芯片在大模型推理优化方面的性能、成本及适用场景。GPU以其强大的并行计算能力和高带宽显存,适用于多种类型的神经网络模型和计算任务,尤其适合快速原型开发和边缘计算设备。TPU专为机器学习设计,擅长处理大规模矩阵运算密集型任务,如Transformer模型的推理,具有高吞吐量和低延迟特性,适用于自然语言处理和大规模数据中心的推理任务。专用AI芯片通过高度定制化架构,针对特定神经网络模型进行优化,如卷积神经网络(CNN),在处理特定任务时表现出色,同时具备低功耗和高能效比的优势,适用于边缘计算设备。文章还介绍了各自的优化工具和框架,如CUDA、TensorRT、TPU编译器等,并从硬件成本、运营成本和开发成本三个角度进行了成本对比。 适合人群:从事人工智能、深度学习领域的研究人员和技术人员,尤其是对大模型推理优化感兴趣的读者。 使用场景及目标:①帮助读者理解GPU、TPU和专用AI芯片在大模型推理中的优缺点;②为选择适合的硬件平台提供参考依据,以实现最优的推理性能和成本效益;③介绍各种优化工具和框架,帮助开发者高效部署和优化模型。 其他说明:本文不仅涵盖了硬件架构特性,还深入探讨了优化技术和应用场景,旨在为读者提供全面的技术参考。在选择硬件平台时,需综合考虑具体任务需求、预算限制及开发资源等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值