编程语言
测试也要努力
这个作者很懒,什么都没留下…
展开
-
Spring学习(六)AOP面向切面编程
切面:存储公共功能的类叫做切面横切关注点:就是公共功能,非业务代码通知:横切关注点放到切面中去就叫通知,类似横切关注点目标:被通知的对象,要作用到的对象代理:向目标对象应用通知后创建的代理对象...原创 2020-03-20 17:05:28 · 70 阅读 · 0 评论 -
JDBC(七)考虑数据库事务后的操作
@Testpublic void testUpdateWithTx(){ Connection conn; try { conn = JDBCTools.getConnection2(); //取消数据的自动提交功能 conn.setAutoCommit(false); String sql1 = "update user_table set balance = balan...原创 2020-03-18 14:27:16 · 94 阅读 · 0 评论 -
JDBC(六)PreparedStatement
PreparedStatement的优势: 解决Statement的拼串、sql问题 可以操作Blob的数据 可以实现更高效的批量操作原创 2020-03-17 11:26:44 · 75 阅读 · 0 评论 -
JDBC(五)针对不同表的增删改查的通用操作
针对不同表的增删改操作,前提是这些表都位于配置文件中的同一个数据库中的:package com.ztt.jdbc;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql....原创 2020-03-16 10:51:00 · 340 阅读 · 1 评论 -
Spring学习(五)基于注解的自动装配
前文讲的自动装配是基于XML的,随着项目中的类越来越多,基于XML配置会显得越来越复杂,此时可以使用基于注解的方式来进行自动装配@Component@Controller@Service@Repository写几个类,结构如下:package com.ztt.controller;import org.springframework.stereotype.Cont...原创 2020-03-15 11:10:24 · 283 阅读 · 0 评论 -
Spring学习(四)引用外部属性文件、自动装配
引用外部属性文件:当bean的配置信息逐渐增多时,查找和修改一些bean的配置信息变得更加困难。这时,可以将一部分信息提取到bean配置文件的外部,以properties格式的属性文件保存起来,同时在bean的配置文件中引用properties属性文件中的内容,从而实现一部分属性值在发生变化时只修改properties文件即可。这种技术多用于连接数据库的基本信息的配置以连接数据库的基本信息...原创 2020-03-14 16:25:23 · 120 阅读 · 0 评论 -
Spring学习(三)bean的作用域、生命周期、后置处理器
bean节点中scope属性定义了bean的作用域作用域:prototype:多例,在使用时创建对应的对象<bean id="person1" class="com.ztt.spring.Person" scope="prototype"> <constructor-arg value="22" type="java.lang.Integer"></c...原创 2020-03-14 14:46:39 · 174 阅读 · 0 评论 -
Spring学习(二)FactoryBean工厂bean
Bean有两种类型:①普通bean(即上一篇所讲),②工厂BeanFactoryBean返回的对象不是指定类的一个实例,其返回的是该工厂bean中的getObject方法所返回的对象工厂bean必须实现 org.springframework.beans.factory.FactoryBean接口package com.ztt.spring;import org.springfr...原创 2020-03-14 11:39:44 · 123 阅读 · 0 评论 -
Spring学习(一)简单配置+依赖注入
1、工具:STS2、配置需要的jar包:spring-beans-4.0.0.RELEASE.jarspring-context-4.0.0.RELEASE.jarspring-core-4.0.0.RELEASE.jarspring-expression-4.0.0.RELEASE.jarcommons-logging-1.1.1.jar3、写一个Person类,里面有na...原创 2020-03-13 16:26:45 · 139 阅读 · 0 评论 -
JAVA反射
1、getFields():获取当前运行时类及其父类中声明为public访问权限的属性2、getDeclaredFields():获取当前运行时类中声明的所有属性(不包含父类中声明的属性)3、getModifiers():获取权限修饰符4、getType():获取数据类型5、getName():获取变量名6、getMethods():获取当前运行时类及其所有父类中声明为publ...原创 2020-02-21 17:19:53 · 87 阅读 · 0 评论 -
Cookie(二)自动登录
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/T...原创 2020-02-21 17:19:38 · 122 阅读 · 0 评论 -
Cookie(一)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/T...原创 2020-02-21 16:08:16 · 90 阅读 · 0 评论 -
MYSQL(十)循环
分类:while loop repeat循环控制:iterate类似于continue,继续,结束本次循环,继续下一次leave类似于break,跳出,结束当前所在的循环while语法:[标签:]while循环条件 do 循环体;end while [标签];loop语法:[标签:]loop 循环体e...原创 2019-12-18 16:38:48 · 105 阅读 · 0 评论 -
MYSQL(九)CASE结构
情况1:类似于JAVA中的SWITCH语句,一般用于实现等值判断语法: CASE 变量|表达式|字段 WHEN 要判断的值 THEN 返回的值1或语句1; WHEN 要判断的值 THEN 返回的值2或语句2; ...... ELSE 要返回的值n或语句n; ...原创 2019-12-18 15:47:17 · 207 阅读 · 0 评论 -
MYSQL(八)函数
函数含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率区别:存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新函数:有且仅有1个返回,适合做处理数据后返回1个结果一、创建语法CREATE FUNCTION 函数名(参数列表) RET...原创 2019-12-18 14:16:58 · 105 阅读 · 0 评论 -
MYSQL(七)存储过程
存储过程和函数:类似JAVA中的方法好处:1、提高代码重用性2、简化操作存储过程含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率一、创建语法(需在命令提示框中创建)CREATE PROCEDURE 存储过程名(参数列表)BEGIN ...原创 2019-12-18 09:57:27 · 78 阅读 · 0 评论 -
MYSQL(六)-变量
系统变量:由系统提供,不是用户定义,属于服务器层面1、查看所有的系统变量:show global|session variables;2、查看满足条件的部分系统变量:show global|[session] variables like '%char%';3、查看指定的某个系统变量的值:select @@global | [session].系统变量名;4、为某个系统变量赋值...原创 2019-12-17 10:41:52 · 139 阅读 · 0 评论 -
MYSQL(五)-事务
事务:一、含义:一条或多条SQL语句组成一个执行单位,一组SQL语句要么都执行要么都不执行二、特点(ACID):A、原子性:一个事务是不可再分割的整体,要么都执行,要么都不执行C、一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态I、隔离性:一个事务不受其他事务的干扰,多个事务互相个例D、持久性:一个事务一旦提交了,则永久的持久化到本地三、事务的使用步骤...原创 2019-12-16 10:44:19 · 80 阅读 · 0 评论 -
MYSQL(四)
一:整型分类:tinyint(1) smallint(2) mediumint(3) nt/integer(4) bigint(8)特点:不管是有符号还是无符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字 如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值 如果不设置长度,会有默认的长度 长度代表了显示的最大宽度,...原创 2019-12-13 12:39:12 · 158 阅读 · 0 评论 -
MYSQL(三)
delete删除可以加where条件,truncate不能加 truncate删除,效率要高一些 假如要删除的表中有自增列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始 truncate删除没有返回值,delete删除有返回值 truncate删除不能回滚,delete删除可以回滚复制表:仅复制结构:...原创 2019-12-12 10:34:22 · 59 阅读 · 0 评论 -
MYSQL(二)
查询:如果为表起了别名,那么查询的字段中就不能使用原来的表名外连接:1、外连接的查询结果为主表中的所有记录 如果从表中有和它匹配的,则显示匹配的值;如果从表中没有和它匹配的,则显示NULL 外连接查询结果=内连接结果+主表中有而从表中没有的记录2、左外连接:left join左边的表为主表;右外连接:rightjoin右边的表为主...原创 2019-12-10 16:22:16 · 60 阅读 · 0 评论 -
MYSQL(一)
1、启动MYSQL服务: 1)计算机-服务-MYSQL-启动 2)管理员身份进入命令行窗口,net start mysql(服务名)2、关闭MYSQL服务: 1)计算机-服务-MYSQL-关闭 2)管理员身份进入命令行窗口,net stop mysql(服务名)1、登录MYSQL服务器命令:mysql -h localhost ...原创 2019-12-04 15:45:38 · 215 阅读 · 0 评论 -
JAVA多线程(三)
线程安全问题:由于一个线程在操作共享数据的过程中,未执行完毕的情况下,另外的线程参与进来,导致共享数据存在安全问题如何解决线程安全的问题?让一个线程操作共享数据完毕之后,其它线程才能操作共享数据JAVA实现线程的安全,两种方式: 方式一:同步代码块 synchronized(同步监视器){ ...原创 2019-12-02 15:53:30 · 63 阅读 · 0 评论 -
JAVA多线程(二)
实现的方式创建线程:创建一个实现了Runnable接口的类 实现接口的抽象方法 创建一个Runnable接口实现类的对象 将此对象作为形参传递给Thread类的构造器中,创建Thread类的对象,此对象即为一个线程 调用start()方法,启动线程并执行run()class PrintNum2 implements Runnable{ @Override pu...原创 2019-12-02 15:08:14 · 67 阅读 · 0 评论 -
JDBC(六)-ResultSetMetaData
1、why:只有结果集,但是不知道结果集中有多少列,列名是什么1)编写通用的查询方法时需使用public <T> T get(Class<T> clazz,String sql,Object ... args)2、what:用于描述ResultSet的对象3、how:1)得到ResultSetMetaData对象:调用ResultSet的getMetaD...原创 2019-12-02 10:57:54 · 164 阅读 · 0 评论 -
JAVA多线程(一)
Thread类的常用方法:start():启动线程并执行相应的run()方法 run():子线程需要执行的代码块放入run()方法中 currentThread():静态方法,调取当前的线程 setName():设置子线程的名字 getName():获取子线程的名字 yield():调用此方法的线程释放当前CPU的执行权 join():在A线程中调用B线程的join()方法,表示:...原创 2019-12-01 13:31:11 · 76 阅读 · 0 评论 -
JDBC(四)-PreparedStatement
1、使用Statement: 需要拼SQL很麻烦,而且容易出错 容易发生SQL注入2、PreparedStatement: 是Statement的子接口 可以传入带占位符的SQL语句,并且提供了补充占位符变量的方法3、PreparedStatement的使用 1)创建PreparedStatement: ...原创 2019-11-29 15:33:11 · 230 阅读 · 0 评论 -
JDBC(三)-ResultSet
ResultSet结果集,封装了使用JDBC进行查询的结果1、调用Statement对象的executeQuery(sql)方法可以得到结果集2、ResultSet返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面,可以调用next()方法检测下一行是否有效,若有效方法返回true,且指针下移,相当于Iterator对象的hasNext()和next()方法的结合体3、当指...原创 2019-11-25 16:54:07 · 233 阅读 · 0 评论 -
JDBC(二)-Statement
Statement:通过JDBC向指定的数据表中插入一条记录1)通过Connection的createStatement()方法来获取2)通过executeUpdate(sql)可以执行SQL语句3)执行的SQL语句可以是update insert delete,但不能是selectConnection Statement都是应用程序和数据库服务器的连接资源,使用后一定要关闭,需...原创 2019-11-25 16:19:58 · 177 阅读 · 0 评论 -
JDBC(一)-DriverManager
DriverManager是驱动的管理类,可以通过重载的getConnection()方法获取数据库连接;可以同时管理多个驱动程序:若注册了多个数据库连接,则调用getConnection()方法时传入的参数不同,那么返回不同的数据库连接1、准备连接数据库的4个字符串String driverClass="com.mysql.jdbc.Driver";//Mysql驱动的全类名...原创 2019-11-25 12:07:50 · 128 阅读 · 0 评论 -
JSP学习(三)
JSP指令(最好放在整个页面的起始位置):1、page:<%page language="java" contentType="text/html" ;charset="UTF-8" pageEncoding="UTF-8" isErrorPage="true" errorPage="/error.jsp" import="java.util.Date"%>isE...原创 2019-11-19 15:57:35 · 92 阅读 · 0 评论 -
JSP学习(二)
1、JSP模板元素:JSP页面中的静态HTML内容2、JSP表达式:将一个java变量或表达式的计算结果输出到客户端的简化方式,将要输出的变量放在<%= %>里3、JSP脚本片段:<% Date date = new Date(); out.println(date); String ageStr = reque...原创 2019-11-18 10:10:51 · 166 阅读 · 0 评论 -
JSP的九个隐含对象
1、request:HttpServletRequest的一个对象*2、response:HttpServletResponse的一个对象(再JSP页面中几户不会调用response的任何方法)3、pageContext:页面的上下文,是PageContext的一个对象,可以从该对象中获取到其它8个隐含对象,也可以从中获取到当前页面的其它信息* pageContext.g...原创 2019-11-17 09:23:08 · 92 阅读 · 0 评论 -
Servlet学习笔记(一)
Servlet容器:运行Servlet、JSP、Filter等的软件环境1.可以用来创建Servlet,并调用Servlet的相关生命周期方法2.JSP,Filter,Listener,Tag...Servlet的生命周期方法:以下方法都是由Servlet容器负责调用1.构造器:只被调用一次,只有第一次请求Servlet时,创建Servlet的实例,调用构造器,说明Servl...原创 2019-11-14 14:10:48 · 81 阅读 · 0 评论