- 博客(52)
- 收藏
- 关注
原创 SpringBoot配置文件-yaml
使用yaml文件,将默认的application.properties后缀改为yaml 导入配置文件处理器 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <opt.
2022-04-16 09:25:03 322
原创 动态SQL
动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句ifchoose (when, otherwise)trim (where, set)foreach搭建环境CREATE TABLE `blog`(`id` VARCHAR(50) NOT NULL COMMENT '博客id',`title` VARCHAR(100) NOT NULL COMMENT '博客标题',`author` VARCHAR(30) NOT NULL COMMENT '博客作者',`create_t
2022-04-14 15:21:43 589
原创 Lombok(偷懒专用)
使用步骤在IDEA中安装Lombok插件!在项目中导入lombok jar包<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>
2022-04-12 16:47:50 103
原创 Mybatis-使用注解开发
注解实现CRUD可以在工具类创建的时候自动提交事务 public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(true); }编写接口,增加注解public interface UserMapper { @Select("select * from user") List<User> getUsers(); //方法存在多个参数,
2022-04-12 11:34:10 95
原创 Limit实现分页技术
为什么要分页?减少数据的处理量使用limit实现分页select * from user limit startIndex,pageSize如:select * from user limit 0,2; 表示从零开始,每一页显示两条数据select * from user limit 3; 只有一个参数表示从零开始,每一页显示三条数据使用Mybatis实现分页接口 //分页 List<User> getUserByLimit(Map<String,I
2022-04-11 16:21:30 1550
原创 Mybatis-关于日志
日志工厂如果一个数据库操作出现了异常,需要排错,日志是最好的帮手。曾经:sout , debug现在:日志工厂SLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING 【掌握】NO_LOGGING在Mybatis中具体使用哪一个日志实现,在设置中设定!STDOUT_LOGGING标准日志输出在mybatis核心配置文件中配置日志 <settings> <setting
2022-04-11 15:44:55 127
原创 解决属性名和字段名不一致的问题
问题数据库中的字段:新建一个项目,测试实体类字段不一致的情况public class User { private int id; private String name; private String password;}出现问题:解决方法:起别名select id,name,pwd as password from mybatis.user where id = #{id}resultMap结果集映射id name pswid na
2022-04-11 10:19:19 580
原创 Mybatis配置解析
环境配置(environment)Mybatis可以配置多种环境,但每个sqlSessionFactory实例只能选择一种环境Mybatis默认的事务管理器就是JDBC,连接池:POOLED属性(properties)可以通过properties属性来实现引用配置文件这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。编写一个配置文件driver = com.mysql.jdbc.Driver
2022-04-11 09:31:34 143
原创 第一个MyBatis程序
思路:搭建环境-->导入Mybatis-->编写代码-->测试搭建环境搭建数据库create database `mybatis`;use `mybatis`;create table `user`( `id` int(20) not null primary key, `name` varchar(30) default null, `pwd` varchar(30) default null)engine=innodb default charset=
2022-04-10 09:56:29 677
原创 关于MyBatis
什么是MyBatisMyBatis 是一款优秀的持久层框架;它支持自定义 SQL、存储过程以及高级映射;MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作;MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录;MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundatio
2022-04-09 10:37:59 77
原创 关于JDBC
JDBC : Java连接数据库需要jar包支持:java.sqljavax.sqlmysql-connector-java实验环境搭建create table users( id int primary key, `name` varchar(40), `password` varchar(40), email varchar(60), birthday DATE );insert into users(id,`name`,`password`,emai
2022-04-08 16:23:58 81
原创 Filter过滤器
Filter : 过滤器,用来过滤网站的数据;处理中文乱码登陆验证Filter开发步骤:导包编写过滤器实现Filter接口,重写对应的方法即可public class CharacterEncodingFilter implements Filter { //初始化:web服务器启动就初始化了,随时等待过滤对象出现 public void init(FilterConfig filterConfig) throws ServletException {
2022-04-07 15:24:10 691
原创 MVC三层架构
什么是MVC : Model View Controller 模型 视图 控制器早期架构用户直接访问控制层,控制层可以直接操作数据库servlet --CRUD(增删改查) -->数据库弊端:程序臃肿,不利于维护MVC三层架构Model业务处理:业务逻辑(service)数据持久层:CRUD(Dao)View展示数据提供链接发起Servlet请求Controller接收用户的请求(req;请求参数;session信息)交给业务层处理相应的代码控
2022-04-07 10:30:01 1102
原创 JavaBean
JavaBean特定的写法:必须要有一个无参构造属性必须私有化必须有对应的get/set方法;一般用来和数据库的字段做映射 ORMORM:对象关系映射表 ---->类字段 ---->属性行记录 ---->对象people表idnameageaddress1周天豪118成都2周天豪218重庆3周天豪318长沙class people{ private int id; private String n
2022-04-07 09:45:10 81
原创 关于JSP
什么是JSPJava Server Pages : Java服务器端页面,和Servlet一样用于开发动态Web技术!最大的特点 : 写JSP就像是在写HTMLJSP与HTML的区别:HTML只给用户提供静态数据;JSP页面中可以嵌入Java代码,为用户提供动态数据;JSP原理浏览器向服务器发送请求,不管访问什么资源,其实都是在访问ServletJSP最终也会被转化成一个Java类JSP本质上就是一个Servlet//初始化public void _jspInit() { }
2022-04-06 10:00:17 129
原创 Session 与 Cookie
会话会话:用户打开一个浏览器,点击了一些超链接,访问了多个web资源,关闭浏览器;这个过程可以称之为会话。有状态会话:通俗的理解为,一个同学来过教室,当他下一次来教室时,我们可以知道这个同学曾经来过。一个网站,如何证明你来过?1.服务端给客户端一个信件,客户端下次访问带上信件即可;cookie2.服务器登记你来过了,下次再来时只需要匹配即可;session保存会话的两种技术cookie:客户端技术(响应,请求)session:服务器技术,可以保存用户的会话信息,可以把信息或者数据放在sess
2022-04-04 15:20:24 1291
原创 Response 与 Request
web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse对象;如果要获取客户端请求过来的参数:找HttpServletRequest如果要获取客户端响应的信息:找HttpServletResponse1.简单分类负责向浏览器发送数据的方法 ServletOutputStream getOutputStream() throws IOException; PrintW
2022-04-03 11:09:50 79
原创 HelloServlet
Servlet接口Sun公司有两个默认的实现类:HttpServlet构建一个普通的Maven项目,删掉里面的src目录,这个空的工程就是Maven主工程关于Maven父子工程的理解父项目的pom.xml中会有: <modules> <module>servlet-01</module> </modules>子项目的pom.xml中会有: <parent> <artifactI
2022-03-31 15:25:25 682
原创 关于Web网页
静态Web缺点:Web页面无法动态更新,所有用户看到都是同一个页面无法和数据库交互(数据无法持久化,用户无法交互)动态Web缺点:如果服务器的动态web资源出现了错误,需要重新编写后台程序,重新发布优点:Web页面可以动态更新,所有用户看到都不是同一个页面可以和数据库交互...
2022-03-29 15:22:19 51
原创 AOP的实现
使用AOP需要导入一个依赖包 <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId>
2022-03-27 16:26:26 274
原创 关于代理模式
代理模式分类:静态代理动态代理代理模式好处:可以使真实角色的操作更加纯粹!不用去关注一些公共的业务公共业务交给了代理角色,实现了业务的分工公共业务发生拓展的时候,方便集中管理代理模式缺点:一个真实角色就会产生一个代理角色,代码量会翻倍,开发效率会变低静态代理角色分析:抽象角色 : 一般使用接口或者抽象类来解决真实角色 : 被代理的角色代理角色 : 代理真实角色 ,代理真实角色后,我们一般会做一些附属操作客户 : 访问代理对象的人代码步骤接口
2022-03-26 15:56:10 56
原创 使用Java的方式配置Spring
实体类//这个注解的意思说明这个类被Spring接管了,注册到了容器中@Componentpublic class User { private String name; public String getName() { return name; } @Value("zhoutianhao")//属性注入值 public void setName(String name) { this.name = name; }
2022-03-24 11:03:31 56
原创 使用注解开发
在spring4之后,要使用注解开发,必须要保证aop的包导入了;使用注解需要导入context约束,增加注解的支持<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.sp
2022-03-23 16:41:09 52
原创 使用注解实现自动装配
1.导入约束:context约束2.配置注解的支持:context:annotation-config<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springfr
2022-03-22 22:42:55 382
原创 Bean的自动装配
环境搭建:一个人有两个宠物Dog.javapublic class Dog { public void bark(){ System.out.println("miao"); }}Cat.javapublic class Cat { public void bark(){ System.out.println("wang"); }}Person.javapublic class Person { pri
2022-03-22 16:26:07 55
原创 Set方式注入
依赖注入:Set注入- 依赖:bean对象的创建依赖于容器!- 注入:bean对象中的所有属性,由容器来注入!环境搭建复杂类型package com.zhoutianhao.pojo;public class Address { private String address; public String getAddress() { return address; } public void setAddress(String addre
2022-03-13 10:10:22 655
原创 IOC创建对象的方式
官方文档:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html使用无参构造创建对象,默认!假设使用有参构造创建对象。下标赋值 <bean id="user" class="com.zhoutianhao.pojo.User"> <constructor-arg index="0" value="周天豪"/> </bean>
2022-03-12 16:56:14 474
原创 Java 关于布局
流式布局package com.zhoutianhao.lesson1;import java.awt.*;public class TestFlowLayout { public static void main(String[] args) { Frame frame = new Frame(); //按钮组件 Button button1 = new Button("button1"); Button button2
2022-02-25 22:45:05 75
原创 Java Panel 面板
解决了窗口关闭问题package com.zhoutianhao.lesson1;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class TestPanel { public static void main(String[] args) { Fram
2022-02-25 21:38:14 436
原创 GUI编程 弹窗
弹出一个窗口package com.zhoutianhao.lesson1;import java.awt.*;//GUI的第一个界面public class TestFrame { public static void main(String[] args) { //Frame对象 Frame frame = new Frame("我的第一个Java图像界面窗口"); //需要设置可见性 frame.setVisibl
2022-02-25 15:07:10 659
原创 Java 接口
普通类:只有具体的实现抽象类:具体的实现和规范(抽象方法)都有!接口:只有规范;约束和实现分离:面向接口编程;接口的作用:接口是一种约束;定义一些方法,让不同的人实现;如十个员工完成一个共同的工作,都是完成一个接口,有十种完成的方式;方法都是public abstract常量都是public static final接口不能直接被实例化,因为接口中没有构造方法;implements关键字可以实现多个接口;要实现接口,必须重写接口中的方法package com.oop.Demo10;
2022-02-24 22:12:54 135
原创 Java static
package com.oop.Demo08;//staticpublic class Student { private static int age;//静态变量 private double score;//非静态变量 public void run(){ } public static void go(){ } public static void main(String[] args) { Student s1 =
2022-02-24 18:08:03 67
原创 Java instanceof
instanceof作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型;左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。说明类的实例包含本身的实例,以及所有直接或间接子类的实例instanceof左边显式声明的类型与右边操作元必须是同种类或存在继承关系,也就是说需要位于同一个继承树,否则会编译错误代码说明package com.oop.Demo07;public class Person {}package
2022-02-24 16:59:04 135
原创 Java多态
多态:即同一方法可以根据发送对象的不同而采用多种不同的行为方式一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)多态存在的条件:1.有继承关系2.子类重写父类方法3.父类应用指向子类对象注意点:多态是方法的多态,属性没有多态;父类和子类, 有联系 若没有联系,类型转换会有异常!ClassCastException存在的条件: 继承关系, 方法需要重写, 父类引用指向子类对象! Father f1 = new Son()...
2022-02-24 11:25:29 52
原创 Java重写
重写:需要有继承关系,子类重写父类的方法;1.方法名必须相同2.参数列表必须相同3.修饰符:范围可以扩大但不能缩小: public > Protected > Default > private4.抛出的异常: 范围可以被缩小但是不能扩大子类的方法与父类的必须要一致,方法体不同!为什么要重写?父类的功能,子类不一定需要。或者不一定满足!Alt + Insert : override...
2022-02-24 10:38:22 53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人