static final String DB_URL = jdbc:mysql://localhost:3306/facesho?useSSL=false&serverTimezone=UTC;
conn = DriverManager.getConnection(DB_URL,USER,PASS);
原本的驱动器是:
Class.forName("com.mysql.jdbc.Driver");
在 IDEA 里面提示是:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary
1431Java MySQL 连接
MySQL 8.0 以上版本:
驱动包版本 mysql-connector-java-8.0.12.jar。
数据库 URL 需要声明是否使用 SSL 安全验证及指定服务器上的时区:
原本的驱动器是:
在 IDEA 里面提示是:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary
意思是说原本的驱动器不赞成 或者 是废弃了,自动换成了新的驱动器 com.mysql.cj.jdbc.Driver
1430Java MySQL 连接
DAO 模式
DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。
对外提供相应的接口
在面向对象设计过程中,有一些"套路”用于解决特定问题称为模式。DAO 模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离对上层提供面向对象的数据访问接口。
从以上 DAO 模式使用可以看出,DAO 模式的优势就在于它实现了两次隔离。
一个典型的DAO 模式主要由以下几部分组成。
DAO 接口:
DAO 实现类:
宠物实体类(里面get/set方法就不列出了)
连接数据库
1429Java 文档注释
看到这里觉得可以分享一下自己的注释,其实很多注释是可以自定义的。
定义成模板在自己的 IDE 上,这样每次通过快捷键就可自动帮你输出在方法中,省去了很多时间,也使代码更加规范。
下面已 eclipse 为例,分析一下自己的。
我是加载了 JAutodoc 插件在 IDE 中,习惯这种格式的小伙伴也可以去下载一下。
首先是在文件头部添加:
方法:
getter 和 setter
1428Java 多线程编程
线程安全问题
产生原因:多个线程竞争同一资源(访问同一数据),可参考经典的生产者消费者问题。
解决方案:
run 方法内:同步代码块 synchronized {}
使用 Lock 锁
Lock 锁需要程序员(在 finally 代码块中)手动释放。
Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作,是 JDK1.5 之后出现的。
Lock 接口中的方法:
Lock 接口的实现类:
使用步骤:
1427Java 多线程编程
线程状态图:

线程共包括以下 5 种状态:1. 新建状态(New): 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。
2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。
3. 运行状态(Running): 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。
4. 阻塞状态(Blocked): 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
5. 死亡状态(Dead): 线程执行完了或者因异常退出了run()方法,该线程结束生命周期。