目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

存档: 2020 年 01 月 (19)

关于我

简介  一个没事儿喜欢捣鼓代码的码农。 座右铭  靡不有初,鲜克有终 喜欢的音乐人  陶喆、方大同、周杰伦、卢广仲、陈珊妮、徐佳莹、曾一鸣、龚琳娜。 喜欢的体育人  黑曼巴、姚明 阿里云云计算架构师ACE认证 爱犬Leon(里昂) DIY 关于写作 发表期刊文章发刊日期 汴梁晚报回到大宋东京,开启一场穿越时空的文化之旅2024-08-31 开封文化(开封日报社旗下新媒体)来吧,一起穿越宋朝2024-09-02 汴梁晚报我和里昂2024-09-07 开封日报月饼市场变化彰显消费趋势2024-09-19 汴梁晚报胡辣汤里的乡愁2024-10-12 汴梁晚报城墙外的乡愁2024-11-09

Spring Data JPA

对象与关系的范式不匹配 Hibernate ⼀款开源的对象关系映射(Object / Relational Mapping)框架 将开发者从 95% 的常 ⻅数据持久化 ⼯作中解放出来 屏蔽了底层数据库的各种细节 2006 年,Hibernate 3.2 成为 JPA 实现 Reference Java Persistence API  JPA1.0 是作为 JSR 220 的一部分正式发布。 简化数据持久化代码的开发工作 为 Java 社区屏蔽不同持久化 API 的差异(屏蔽了 Hibernate、JDO、EJB 之间的差异) 相当于在 O/R Mapping 框架之前做了一层抽象。 Spring Data  在保留底层存储特性的同时,提供相对 ⼀致的、基于 Spring 的编程模型。Spring Family List : Spring Data Commons Spring Data JDBC Spring Data JPA Spring Data Redis …… 如何引入 Spring Data JPA <dependency> <groupI....

常用注解

Java Config 相关注解 @Configuration:标注当前类是一个配置类。 @ImportResource:注入配置以外的xml文件的信息。 @ComponentScan:告诉Spring容器可以去扫描哪些package下的Bean。 @Bean:作用于方法上,它的返回值将作为一个Bean存在于ApplicationContext当中。 @ConfigurationProperties:用于绑定配置properites文件中的信息。 Bean的定义相关的注解 @Component / @Repository / @Service : 语义划分组件层次。 @Controller / @RestController:标注Bean为Web层的Bean。 @RequestMapping:方法与URL进行绑定。 Bean注入相关注解 @Autowired :按类型查找上下文中的Bean,并且完成注入。如果上下文中存在多个同类型的Bean,则会产生歧义性,需要搭配@Qualifier @Qualifier :用来声明注入Bean的名字。 @Resource :与@Autow....

Spring JDBC 异常抽象

统一异常DataAccessException  Spring会将常见的数据库操(mysql、oracle、db2…)作异常转换为自己的异常DataAccessException,因此无论使用何种数据访问方式,都能使用一样的异常。 定制错误码 sql-error-codes.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="H2" class="org.springframework.jdbc.support.SQLErrorCodes"> <!-- 复制spring官方sql-error-codes.xml 中 描述 H2 相关的错误码定义 --> <property name="badSqlGrammarCodes"> ....

Spring 事务抽象

Spring 的事务抽象  Spring 为数据访问层提供了很多抽象,在这些抽象下面我们可以非常方便的使用统一的方式来操作不同的框架。  Spring 的事务抽象采用了一致的事务模型,方便你使用不同的 JDBC/Hibernate/myBatis DataSource/JTA 事务抽象的核心接口  不同框架的事务管理器都现了 AbstractPlatformTransactionManager,AbstractPlatformTransactionManager 实现了 PlatformTransactionManager,所以 PlatformTransactionManager 的实现类可以是以下类: DataSourceTransactionManager HibernateTransactionManager JtaTransactionManager public interface PlatformTransactionManager { //TransactionStatus 获取事务状态,TransactionDefinition用于设置事务传播特性、隔离级别、....

Spring的JDBC操作类

Spring 的 JDBC 操作类  在 Spring 中的 JDBC 操作主要集中在 spring-jdbc 包中,此包一共分为四个部分: core,JdbcTemplate 等相关核心接口和类 datasource, 数据源相关的辅助类 object, 将基本的 JDBC 操作封装成对象 support, 错误码等其他辅助工具 JdbcTemplate 提供的功能 query queryForObject queryForList update (插入、修改、删除) execute (通用) SQL 批处理 JdbcTemplate.batchUpdate() : BatchPreparedStatementSetter NamedParameterJdbcTemplate.batchUpdate() : SqlParameterSourceUtils.createBatch 引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4....

连接池

HikariCP  HikariCP来自于日语,意为:光。 它本身作为 SpringBoot 2.X 默认的连接池。 "Fast"源于深度优化和大量小改进 字节码级别优化(很多方法通过 JavaAssist 生成) 大量小改进:用 FastStatementList 代替 ArrayList、无锁集合 ConcurrentBag 、 代理类的优化(用 invokestatic 代替 invokevirtual) SpringBoot 中的配置 默认使用 HikariCP application.properties 配置格式 spring.datasource.hikari.* 如果是 SpringBoot 1.x 需要在 maven 中移除默认的 tomcat-jdbc 依赖,并且引入 HikariCP 的 Maven 依赖,并且在 application.properties 配置文件中指定默认的连接池类型 spring.datasource.type=com.zaxxer.hikari.HikariDataSource # 暴露Actuator management.e....