Java
4、数据库连接池
·4486 字·9 分钟·
loading
·
loading
Java
JavaEE
Mybatis
数据库连接池 # 在原生的JDBC中,我们通常是使用对应的数据库驱动例如com.mysql.jdbc.Driver,获取一个java.sql.Connection对象进行操作(创建连接、执行SQL、关闭连接),所有的压力都在这一个Connection上。
2、对数据库的操作
·3106 字·7 分钟·
loading
·
loading
Java
JavaEE
Mybatis
添加、删除、修改 # //GoodTypeDaoMapper接口 //1、增加 boolean addOne(GoodType goodType); //2、删除 boolean removeById(int tid); //3、修改 boolean updateNameById(String tname,int tid); <!--GoodTypeDaoMapper.xml映射文件--> <!--1、增加--> <insert id="addOne"> insert into goodtype (tid,tname,state,remarks) values (#{tid},#{tname},#{state},#{remarks}) </insert> <!--2、删除--> <delete id="addOne"> delete from goodtype where tid=#{tid} </delete> <!--3、修改--> <update id="updateNameById"> update goodtype set tname=#{arg0} where tid=#{arg1} </update> 添加数据并获取主键值 # 方式一 # <insert id="add" useGenneratedKeys="true" keyColumn="tid" keyProperty="tid"> insert into goodtype (tname,state,remarks) values (#{tname},#{state},#{remarks}) </insert> 方式二 # <insert id="add"> <selectKey keyColumn="tid" keyProperty="tid" resultType="int" order="AFTER"> select last_insert_id() </selectKey> insert into goodtype (tname,state,remarks) values (#{tname},#{state},#{remarks}) </insert> 查询 # 简单查询 # //GoodTypeDaoMapper接口 List<GoodType> findAll(); <!--UserDao.xml:--> <select id="findAll" resultType="entity.GoodType"> select * from goodtype </select> 多表查询 # 一对一 # 根据商品id查询出商品Goods信息,以及对应的商品类型GoodType信息
1、Swagger
·810 字·2 分钟·
loading
·
loading
Java
SpringFramework
Swagger
Swagger在线文档技术 # 现在来讲,最主流的开发模式:前后端分离 前端编写页面,以及完成后端接口的调用 后端:提供数据接口,以及需要提交接口所对应的接口文档 参照的示例 #
8、日志
·816 字·2 分钟·
loading
·
loading
Java
SpringFramework
SpringBoot
Spring Boot默认使用SLF4J作为日志门面,并集成了Logback作为日志实现。SLF4J(Simple Logging Facade for Java)是一个通用的日志抽象层,可以与多种日志框架结合使用,如Logback、Log4j、Java Util Logging(JUL)等。Logback是一个快速、灵活且功能强大的日志框架,是Log4j的继任者。
5、日志系统
·6660 字·14 分钟·
loading
·
loading
Java
常用API
第三方
日志系统 # 日志文件 # 日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。 在计算机中,日志文件是记录在操作系统或其他软件运行中发生的事件或在通信软件的不同用户之间的消息的文件。记录是保持日志的行为。在最简单的情况下,消息被写入单个日志文件。 许多操作系统,软件框架和程序包括日志系统。广泛使用的日志记录标准是在因特网工程任务组(IETF)RFC5424中定义的syslog。 syslog标准使专用的标准化子系统能够生成,过滤,记录和分析日志消息 调试日志 # 软件开发中,我们经常需要去调试程序,做一些信息,状态的输出便于我们查询程序的运行状况。为了让我们能够更加灵活和方便的控制这些调试的信息,所以我们需要专业的日志技术。java中寻找bug会需要重现。调试也就是debug 可以在程序运行中暂停程序运行,可以查看程序在运行中的情况。日志主要是为了更方便的去重现问题。
1、Mybatis
·6902 字·14 分钟·
loading
·
loading
Java
JavaEE
Mybatis
Mybatis # Mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于internet和abatis的组合,是一个基于Java的持久层框架。 iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO) 基于ORM(对象关系映射)思想的一个框架 MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 官网地址:https://blog.mybatis.org/ 优点 # 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件;易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性 提供映射标签,支持对象与数据库的orm字段关系映射 提供对象关系映射标签,支持对象关系组建维护 提供xml标签,支持编写动态sql 缺点 # 编写sql语句工作量大,尤其字段多,关联表多 sql语句依赖于数据库,导致数据库一致性差,不可以更换数据库 框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写,工作量大,而且不太容易适应快速数据库修改 二级缓存机制不佳 简单使用 # 1、导入mybatis依赖 # <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.11</version> </dependency> 2、导入目标数据库的对应驱动 # 目前使用的是mysql5.7.28
1、JVM与GC
·2834 字·6 分钟·
loading
·
loading
Java
JVM
JVM的空间 # JVM有一个称为垃圾回收器的低级线程,这个线程在后台不断地运行,自动寻找在Java程序中不再被使用的对象,并释放这些对象的内存。这种内存回收的过程被称为垃圾回收(Garbage Collection)
1、时间日期
·5444 字·11 分钟·
loading
·
loading
Java
常用API
JDK原生
java.lang.System # System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
11、常用命令
·2511 字·6 分钟·
loading
·
loading
Java
JavaSE
JavaSE高级
javac # javac 是java中的编译源代码的命令工具,将.java文件编译成.class文件
6、分布式事务
·5909 字·12 分钟·
loading
·
loading
Java
组件与中间件
分布式事务 # 分布式事务概念 # 本地事务:单体应用对应的单个数据库的事务 事务的目的:保证整个业务流程,要么统一成功,要么统一失败 通过单体应用中的事务管理器(TransactionManagement),可以保证事务的完整性 分布式事务 现在,我们用的是微服务。微服务的特点:一个微服务对应一个数据库 分布式程序,或微服务程序是相互独立的模块,都是远程调用,无法继续使用本地事务控制