news 2026/7/10 5:59:03

Spring Boot与MySQL交互

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot与MySQL交互

Spring Boot与MySQL交互的核心步骤

配置MySQL依赖与数据源
pom.xml中添加依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>

application.properties中配置数据源:

spring.datasource.url=jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=UTC spring.datasource.username=用户名 spring.datasource.password=密码 spring.jpa.hibernate.ddl-auto=update

实体类映射数据库表
使用JPA注解定义实体类:

@Entity@Table(name="user")publicclassUser{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;@Column(nullable=false)privateStringname;// getters/setters省略}

创建Repository接口
继承JpaRepository实现CRUD操作:

publicinterfaceUserRepositoryextendsJpaRepository<User,Long>{List<User>findByName(Stringname);}

服务层调用Repository

@ServicepublicclassUserService{@AutowiredprivateUserRepositoryuserRepository;publicUsersaveUser(Useruser){returnuserRepository.save(user);}}

事务管理
在服务层方法添加事务注解:

@TransactionalpublicvoidupdateUser(Useruser){userRepository.save(user);}

高级交互技巧

自定义SQL查询
在Repository中使用@Query注解:

@Query("SELECT u FROM User u WHERE u.name LIKE %:keyword%")List<User>searchByKeyword(@Param("keyword")Stringkeyword);

分页与排序
通过Pageable参数实现:

Page<User>findAll(Pageablepageable);

多数据源配置
需单独配置多个DataSource和EntityManager:

@Configuration@EnableJpaRepositories(basePackages="com.primary.repository",entityManagerFactoryRef="primaryEntityManager")publicclassPrimaryDataSourceConfig{// 详细配置省略}

性能优化建议
启用JDBC批处理:

spring.jpa.properties.hibernate.jdbc.batch_size=20 spring.jpa.properties.hibernate.order_inserts=true

连接池配置
推荐使用HikariCP:

spring.datasource.hikari.maximum-pool-size=10 spring.datasource.hikari.connection-timeout=30000

异常处理方案

数据校验
在实体类字段添加校验注解:

@NotBlank@Size(max=100)privateStringname;

统一异常处理
使用@ControllerAdvice捕获数据库异常:

@ExceptionHandler(DataIntegrityViolationException.class)publicResponseEntity<String>handleConstraintViolation(){returnResponseEntity.badRequest().body("数据约束冲突");}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 21:43:58

如何优雅重构HP-Socket应用:Deno 2.0兼容性深度解析与迁移策略

如何优雅重构HP-Socket应用&#xff1a;Deno 2.0兼容性深度解析与迁移策略 【免费下载链接】HP-Socket High Performance TCP/UDP/HTTP Communication Component 项目地址: https://gitcode.com/gh_mirrors/hp/HP-Socket HP-Socket作为高性能网络通信框架&#xff0c;在…

作者头像 李华
网站建设 2026/7/10 5:05:35

老旧Mac升级终极指南:完整教程解锁macOS兼容新世界

老旧Mac升级终极指南&#xff1a;完整教程解锁macOS兼容新世界 【免费下载链接】OCLP-Mod A mod version for OCLP,with more interesting features. 项目地址: https://gitcode.com/gh_mirrors/oc/OCLP-Mod 还在为你的老旧Mac无法安装最新系统而烦恼吗&#xff1f;每次…

作者头像 李华
网站建设 2026/7/9 13:37:18

联想显卡散热风扇更换教程查找全攻略:从官方指引到社区经验

联想显卡散热风扇更换教程查找全攻略&#xff1a;从官方指引到社区经验 对于使用联想拯救者系列游戏本或搭载高性能独立显卡的联想台式机用户而言&#xff0c;显卡散热风扇是维持性能稳定的关键部件。当风扇出现异响、停转或散热效率下降时&#xff0c;寻找可靠的更换教程便成为…

作者头像 李华
网站建设 2026/7/9 6:11:18

springboot基于vue的管网隐患安全巡检系统_i2g600ga

目录已开发项目效果实现截图开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现…

作者头像 李华
网站建设 2026/7/8 21:42:38

next-scene LoRA实战指南:3步实现电影级分镜AI生成

next-scene LoRA实战指南&#xff1a;3步实现电影级分镜AI生成 【免费下载链接】next-scene-qwen-image-lora-2509 项目地址: https://ai.gitcode.com/hf_mirrors/lovis93/next-scene-qwen-image-lora-2509 影视制作的真实痛点与AI解决方案 当前影视前期制作面临的核心…

作者头像 李华