Java之输入输出流
File对象12File f=new File("path");File f=new File("parent","child");
输入流InputStream是字节输入流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。FileInputStream 是InputStream子类,以FileInputStream 为例进行文件读取。
1FileInputStream fis=new FileInputStream();
常用方法12fis.read(b); //读取文件中的数据,保存到字节数组中,b为字节数组fis.close(); //关闭输入流
输出流12FileOutStream fos=new FileOutStream(f);FileOutStream fos=new FileOutStream(f,true); //第二个参数表示是否开启append拼接模式
常用方法12fos.write(b); //将字节数组中的数据,写入文件fos.close(); //关闭输出流
字节流使用字节数组存储字 ...
Java框架之Mybatis
什么是Mybatis?Mybatis是一款优秀的持久层框架,用于简化JDBC开发。
传统JDBC开发的缺点12345678910Class.forName("com.mysql.jdbc.Driver");String url="jdbc:mysql://192.168.31.5:3306/mydb?characterEncoding=utf-8";String user="root";String password="password";conn=DriverManager.getConnection(url, user, password);Statement statement = conn.createStatement();ResultSet rs = statement.executeQuery("select * from user");while (rs.next()) { //遍历结果 System.out.println(rs.getString(&quo ...
Spring相关原理总结
BeanFactory和ApplicationContext两者关系
BeanFactory
ApplicationContext
早期接口,被称为Spring的Bean工厂
后期更高级接口,称之为Spring 容器
BeanFactory的API更偏向底层
API大多数是对BeanFactory底层API的封装;且有更多的拓展功能:监听功能、国际化功能等
封装了Bean创建的主要逻辑和功能
继承了BeanFactory的功能
Bean的初始化时机不同,原始BeanFactory是在首次调用getBean时才进行Bean的创建
ApplicationContext则是配置文件加载,容器一创建就将Bean都实例化并初始化好。
在Spring基础环境下,常用的三个ApplicationContext作用
实现类
功能描述
ClassPathXmlApplicationContext
加载类路径下的xml配置的ApplicationContext
FileSystemXmlApplicationContext
加载磁盘路径下的xml配置的Applica ...
常用IDE的技巧
Eclipse代码换行
Alt + Shift + Y
查看源码
F3
查看类继承和实现关系
F4或Ctrl + T
查看方法的调用层次
Ctrl+Alt+H
xml开启代码提示
Alt + /
查找某个类文件
Ctrl+Shift+T
spring初始化一个项目
创建一个spring项目手动导入Jar包
创建普通的Java项目,在lib中Spring导入相关包的方法。
Spring相关jar包
官方下载链接
https://repo.spring.io/ui/native/release/org/springframework/spring/
spring依赖的日志包
http://commons.apache.org/proper/commons-logging/download_logging.cgi
存放 jar包以及加载
解压后将相关jar包放在工程的lib目录下。
创建Maven项目
在maven项目中导入spring依赖,maven会自动完成jar包下载。
四个方面:1)spring核心依赖 spring-core、spring-beans、spring-context
2)spring dao依赖(提供JDBCTemplate) spring-jdbc、spring-tx
3)spring web依赖 spring-web、spring-webmvc
4)spring test依赖 ...
Java之Spring AOP面向切面编程
AOP面向切面编程用于解决系统层面上的问题,比如:日志、事务、权限等待。它是一种编程范式,不是编程语言。
优点以及一些概念1、AOP的优点
降低模块之间的耦合度
使系统更容易扩展
更好的代码复用
非业务代码更加集中,不分散,便于统一管理
业务代码更加简洁纯粹,不掺杂其他的代码的影响
2、AOP中出现的一些概念
横切关注点
对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点
Aspect 切面
通常是一个类,里面可以定义切入点和通知。
JointPoint 连接点
连接点是在应用执行中能够插入切面的一个点。即程序执行过程中能够应用通知的所有点。
程序执行过程中明确的点,一般是方法的调用。
被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器。
Advice 通知
AOP在特定的切入点上执行的增强处理
Pointcut 切入点
就是带有通知的连接点,在程序中主要体现为书写切入点表达式
Weaving 织入
将切面应用到目标对象,并创建新的代理对象的过程。
切面在指定的连 ...
Java之SpringBoot数据库API Part2
接上一节,SpringBoot数据库API
数据库事务
TestTransController.java
事务,要么完全执行,要么完全不执行。
添加@Transactional注解,表明操作为事务。
当不加注解运行时,第一条记录会被添加至表中,但第二条记录会报错。
12345678910111213141516171819202122232425262728293031package com.mysqlapi.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import com.mysqlapi.entity.User;import com.mysqlapi.repository.UserRepository;import jakarta.tr ...
Java之SpringBoot数据库API
接上一节,SpringBoot连接数据库。
设计操作数据库的API,让数据库操作更加便捷。
设计Restful API
请求方式
路径
功能
GET
/users
获取所有用户信息
GET
/users/{id}
查询单条记录
POST
/adduser
创建一条用户记录
PUT
/users/{id}
更新单条记录
创建数据库接口
UserRepository.java
继承JpaRepository接口
可以自定义一些方法。此处我选择直接使用继承的方法,就不写其它东西了。
1234567package com.mysqlapi;import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository{ }
JpaRepository接口类
这个接口又继承了ListCrudRepository<T ...
Java之SpringBoot连接数据库
Hibernate
SpringBoot
添加依赖
jpa用于连接增删改数据库的
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
mysql连接驱动
12345<dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope></dependency>
12345<!-- 我使用下面这个驱动会报错 --> <dependency> <groupId>mysql</groupId> <artifa ...