- 博客(15)
- 收藏
- 关注
原创 关于分库分表的理解与总结
分库分表是什么以电商系统中的例子来说明,下图是电商系统卖家模块数据库的表结构:通过以下SQL能够获取到商品相关的店铺信息、地理区域信息:select p.*, r.地理区域名称, s.店铺名称, s.信誉from 商品信息 pleft join 地理区域 r on p.产地所在地编码 = r.地理区域编码left join 店铺信息 s on p.所属店铺ID = s.idwhere p.id = ?;随着业务快速发展,数据库中的数据量猛增,访问性能也变慢了,优化迫在眉睫。分析
2022-04-01 17:41:38
276
原创 Spring错误:Bean named ‘XXX‘ must be of type [XXX.XXX]
在测试Spring使用xml实现aop时出现以下错误org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'studentDao' is expected to be of type 'com.water.dao.StudentDaoImpl2' but was actually of type 'com.sun.proxy.$Proxy12'测试代码如下@Test public voi
2021-10-17 15:13:39
2710
原创 代理模式详解
目录静态代理模式静态代理角色分析代码实现静态代理的好处:缺点 :动态代理模式(AOP的底层机制)介绍JDK的动态代理需要了解两个类代码实现动态代理好处静态代理模式静态代理角色分析 抽象角色 : 一般使用接口或者抽象类来实现 真实角色 : 被代理的角色 代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 。 客户 : 使用代理角色来进行一些操作 。 代码实现1、创建一个抽象角色,比如咋们平时做的
2021-10-15 15:39:20
124
原创 MyBatis:多对一和一对多的处理
目录多对一的处理一对多的处理多对一的处理多对一的理解: 多个学生对应一个老师 如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师! 数据库设计CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO teac
2021-10-08 13:43:32
77
原创 Maven环境搭建与使用
1.准备环境官网下载地址:Maven – Download Apache Maven下载完成后解压即可(友情建议:将所有环境放到一个目录下,方便管理) 2.配置环境变量在系统环境变量中配置如下配置: M2_HOME maven目录下的bin目录 MAVEN_HOME maven的目录 在系统变量的Path中配置新建%MAVEN_HOME%\bin 测试是否配置成功打开cmd执行mvn -version3...
2021-10-04 18:52:11
160
原创 Java使用jdbc连接数据库
import java.sql.*;public class JdbcFirstDemo { public static void main(String[] args) throws ClassNotFoundException, SQLException { //1. 加载驱动 //com.mysql.jdbc.Driver已经废弃,建议使用com.mysql.cj.jdbc.Driver Class.forName("com.mysql.c.
2021-10-03 17:51:12
105
原创 Java注解和反射
注解介绍Annotation作用:可以被程序读取的注释格式:@注释名(可以加参数)使用的地方:可以加在package、class、method、field等上面通过反射机制编程实现对这些元数据的访问内置注解@Override 重写父类的方法@Deprecated 不推荐使用,但是可以使用或者有更好的方法@SuppressWarnings("all") 镇压代码中的警告信息元注解作用:负责注解其他注解@Target(value = {ElementType.ME
2021-10-03 09:06:11
86
原创 Java多线程之线程同步、线程池
线程同步 多个线程操作同一个资源 并发:同一个对象被多个线程同时操作 线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用 形成条件:队列+锁 --->解决线程安全问题 例如排队上厕所,进去一个之后锁门,认出来了锁开了,下一个才可以再进去 有锁之后容易出现性能倒置,即优先级低的线程先拿到了锁,导致优先级高的线程无法执行 需要修改的内容才需要加锁,锁太多
2021-09-28 21:17:28
693
原创 Java多线程之线程状态
目录线程状态线程方法停止线程线程休眠线程礼让Join线程合并观测线程状态线程状态线程方法setPriority(int newPriority) //更改线程的优先级static void sleep(long millis) //在指定的毫秒数内让当前正在执行的线程休眠void join() //等待该线程终止再执行其他线程static void yield() //暂停当前正在执行的线程对象,并执行其他线程void interrupt() //
2021-09-26 17:47:10
93
原创 静态代理模式(Java多线程底层实现原理)
张三:真实结婚角色婚庆公司:代理张三,帮张三处理结婚的事结婚:都要实现结婚这个接口/*静态代理模式总结:真实对象和代理对象都要实现同一个接口代理对象要代理真实角色好处: 代理对象可以做很多真实对象做不了的事情 真实对象专注做自己的事情*/public class StaticProxy { public static void main(String[] args) { /*You you = new You(); Wed
2021-09-26 17:39:05
100
原创 Java多线程之线程创建
目录01 线程简介02 线程创建2.1 继承Thread类2.2 实现Runnable接口2.3 实现Callable接口01 线程简介多任务:看起来同时在做多件事,本质上大脑在同一时间只做了一件事。多线程:一条路,车变多了,容易堵车。为了提高道路利用率,于是加了多个车道。 程序:指令和数据的有序集合 进程:执行程序的一次执行过程,是系统资源分配的单位 线程:一个进程包含若干个线程,线程是CPU调度和执行的单位 02 线程创建2.1 继承
2021-09-26 17:36:39
213
原创 Lambda表达式
避免匿名内部类定义过多 实质属于函数式编程的概念 什么是函数式接口? 只包含唯一 一个抽象方法的接口 public interface Runnable {public abstract void run();} 对于函数式接口可以通过lambda表达式创建该接口对象 lambda表达式使用: (parameters) -> expression 或 (parameters) ->{ statements; } para..
2021-09-25 20:54:10
61
原创 图的深度优先遍历(Depth First Search)
图的深度优先遍历(Depth First Search)基本思想类似于二叉树的先序遍历 假设图中所有结点均未被访问,从初始结点访问,访问其第一个邻接结点,接着以被访问的邻接结点作为初始结点,访问它的第一个邻接结点。 递归的过程。 算法步骤 访问初始结点v,并标记为已访问 查找结点v的第一个邻接结点w 若w存在,则继续执行4,若不存在则回到第1步,从v的下一个结点继续 若w未被访问,对w进行深度优先遍历递归(即把w当做另一个v,然后进行步骤123
2021-09-14 14:11:45
8162
1
原创 java.util.Date cannot be cast to java.sql.Date问题
java.util.Date cannot be cast to java.sql.Date问题request.getParameter("date");//从页面获取的时间值为String类型更新到SQL中的日期类型为 java.sql.Datejava.util.Date是 java.sql.Date的父类 (1)java.sql.Date date = new java.sql.Date(new java.util.Date().getTime()); java...
2021-04-22 16:57:42
3532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人