自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring事务处理的实现--基于底层API

引入相关的包是必须的。Spring四个核心包、Sping-jdbc包、mysql-connector-javabao配置文件:引入数据库的Bean:DriverManagerDataSource并进行驱动、url等的配置。引入JDBCTemplate的Bean:JDBCTemplate并配置其datasource属性。要使用Spring的事务管理器,引入:DataSourceTransacti...

2018-07-31 20:15:21 453

原创 Spring的事务处理机制

Spring 提供了处理事务的一套API。PlatFormTransactionManager接口为事务处理器的接口。三个有关事务的方法:getTransaction(TD td):TS  开启事务的方法。以事务定义为参数,返回事务状态。commit(TS ts)   提交事务的方法。以事务状态为参数。rollback(TS ts)    回滚事务的方法。以事务状态为参数。...

2018-07-31 19:54:00 517

原创 JDBC事务处理

JDBC提供了基于Connection的事务支持。Connection默认和MySql一致:关闭事务,自动提交。Connection的实例方法:setAutoCommit(Boolean xx)方法来开启或关闭事务。参数为false时开启事务。实例方法:commit()来进行提交。实例方法:rollback()进行回滚。事务隔离级别:5个常量TRANSACTION_NONE...

2018-07-31 19:29:22 414

原创 MySql事务处理基础知识

MySql中只有INNODB引擎支持事务处理机制。MySql中默认的是关闭事务。也可以理解为将每条DML语句都封装为一个事务,自动提交。手动开启事务:可以设置set  autocommit = 0,这会导致在一个Session中均开启事务。satrt tramsaction或者begin,临时性开启事务。也就是开启一次。commit为提交事务。rollback为回滚。均会关闭临时开...

2018-07-31 19:19:34 627

原创 MyBaTis报SSL错误Establishing SSL connection without server以及时区异常SQLxception: The server time zone value

1:web应用中连接mysql数据库时后台会出现这样的提示:Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must b...

2018-07-29 20:26:55 946 1

原创 /*.do导致tomcat启动报错:

因为/*.do 是一种错误写法,任意匹配应写成/*,后缀匹配应写成*.do

2018-07-29 18:01:50 474 1

原创 开发过程中使用MyBatis的大概思路:

1:设计好数据表。2:写Mybaits的配置文件3:编写与数据表对应的持久化类。4:编写mapper。如果采用XML的方式,需要为持久化类编写mapper配置文件。如果采用注解方式,为持久化类编写相应的Mapper类。5:写一个MyBatis的工具类,用来创建SqlSession6:最好创建service类,为每个持久化类进行操作的封装。7:然后就调用封装好的service...

2018-07-28 19:01:00 425

原创 基于AspectJ的AOP开发--XML

上回书说到注解式的操作,本文讲XML式。XML式AOP1:依赖包,和注解式相同。2:准备配置文件。和注解式相同。下面准备一个接口:package com.imooc.aspectJ.demo2;public interface CustomerDao { public void save(); public String update(); ...

2018-07-27 19:29:25 220

原创 基于AspectJ的AOP开发--注解

在实际开发中,最常用到的是基于AspectJ的AOP开发方式。AspectJ的使用用两种方式:注解式和xml配置式。下面分别讲解。注解式:首先,引用开发包。下面列出使用Spring AspectJ所需要的完整依赖: <dependencies> <dependency> <groupId>junit</groupId...

2018-07-27 19:07:14 639

原创 AspectJ的增强处理类型

1:@Before,前置处理,相当于BeforeAdvice2:@After Returning,后置处理,相当于After ReturningAdvice3:@Around,环绕处理,相当于MethodInterceptor4:@AfterThrowing,异常抛出处理,相当于ThrowAdvice5:@After,最终final处理,不管是否发生异常,该处理都会执行。6:@...

2018-07-27 16:20:44 497

原创 Spring自动创建代理--BeanNameAutoProxyCreator和DefaultAdvisorAutoProxyCreator

前面的文章中讲到的创建代理,在配置文件中都必须配置:ProxyFactoryBean。这虽然省掉了我们手动实现动态代理的工作,但是也很繁琐。现在有三种解决方案:1:BeanNameAutoProxyCreator:根据Bean名称创建代理2:DefaultAdvisorAutoProxyCreator:根据Advisor本身包含信息创建代理。3:AnnotationAwareAsp...

2018-07-27 14:43:15 986

原创 Spring AOP使用

Spring按照增强处理在目标方法的位置,分为5类:1:前置处理。org.springframework.aop.MethodBeforeAdvice。在目标方法执行前进行增强处理。2:后置处理。org.springframework.aop.AfterReturningAdvice。在目标方法执行后进行增强处理。3:环绕处理。org.aopalliance.intercept.Met...

2018-07-27 14:06:21 177

原创 Spring的代理知识

前面的两篇文章:Spring实现CGLIB动态代理、Spring实现JDK动态代理,是介绍Spring在底层实现代理的方式。我们使用Spring时不会手动去写这些步骤,Spring已经为我们做好了。当目标类实现了接口时,Spring会是使用JDK动态代理机制来生成的java.lang.reflect.Proxy代理类。而没有实现接口时,会使用CGLIB库来生成代理类。我们在程序开发中,一般...

2018-07-27 12:34:47 141

原创 Spring实现CGLIB动态代理

JDK动态代理只能适用于接口。CGLIB适用于类。首先是类:ProductDaopackage com.imooc.aop.demo2;public class ProductDao { public void save(){ System.out.println("保存商品"); } public void update(){ ...

2018-07-27 12:25:53 732 1

原创 Spring AOP相关术语

1:Joinpoint:连接点。指的是可以被拦截的点,在Spring AOP中可以简单的理解为Bean的方法。(忽略AspectJ)2:Pointcut:切入点。指的是对哪些Joinpoint进行拦截。就是指被拦截的连接点。3:Advice:增强处理。也就是拦截到连接点后,所进行的处理。包括:前置处理、后置处理、异常处理、最终处理、环绕处理。(以及引介,在运行期为类动态添加方法或者属性,这...

2018-07-27 12:08:34 381

原创 Spring的Bean管理:

1:Bean实例化的三种方式:首先提到一点。只要在配置文件中正确配置的<bean>在通过配置文件生成工厂时就创建了相应的实例。在Spring容器中等待调用。    使用无参构造的方式:也就是在配置文件中配置:<bean id="aaa" class="xxx.xxx.xxxx"></bean>class指向的是一个类的全路径类名。该类必须有无参...

2018-07-26 23:38:33 316

原创 Spring实现JDK动态代理

JDK动态代理机制已经有文章写了,这里介绍Spring中的使用:主要类:BeanPostProcessor首先是一个接口:UserDaopackage com.imooc.ioc.demo3;public interface UserDao { public void findAll(); public void save(); public voi...

2018-07-26 23:38:11 326

原创 Spring基础知识

Spring为企业应用开发提供了一个一站式的解决方案。它将各种设计模式的功能进行了实现,并且封装起来以便使用。使用Spring框架时,必须使用Spring Core Container,即Spring容器,它是Spring框架的核心机制。由org.springframework.core、org.springframework.context、org.springframework.beans...

2018-07-26 20:55:20 290

原创 JDK动态代理基础知识

可以简单的认为,动态代理就是实现在不修改源程序的基础上,对原有的类方法进行增强。其有一点要求是:要实现动态代理的类,必须实现至少一个接口。否则需要CGLIB动态代理机制。JDK的动态代理机制也是Spring AOP的底层实现方式的一种。我们来了解一下其机制:实现:实际使用方式可能多种多样,我们就按自己的来。如,下面有一个接口:UserDaopackage com.imooc....

2018-07-26 18:35:59 226

原创 mybatis入门

学习JDBC,是学习数据库连接的基础。在实际开发中,通常使用框架进行。mybatis就是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。以Idea为例,新建一个maven项目。首先,添加相关依赖:pom.xml。这里收藏一个网址:mvn依赖查询<?xml version="1.0" encoding="UTF-8"?><project xmlns="ht...

2018-07-25 16:59:54 181

原创 mvn报:不再支持源选项 1.5。请使用 1.6 或更高版本。

解决办法:方法1.在pom.xml了添加下面代码<properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <maven.compiler.source>1.8</maven.compiler.source>...

2018-07-25 08:39:22 751

原创 JDBC为MySql添加datetime类型的字段数据

当PreparedStatement对象使用setDate()方法来添加日期时间类型的数据时,Date类型的值只有日期,时间默认为0。所以使用此方法为mysql添加datetime类型的数据,时间均为00:00:00。可以使用setTimestamp()方法来添加datetime类型的数据。比如:pstmt.setTimestamp(i,new java.sql.TimeStamp(Sys...

2018-07-24 18:33:37 5360

原创 JDBC向数据库提交中文数据乱码的问题

使用JDBC提交中文数据时,尽管数据库和本地Servlet都设置好了编码utf-8和utf8,但是数据依然显示???乱码。解决办法:创建Connection  conn = DriverManager(url,username,password)中的url,原本设置为:jdbc:mysal://localhost:3306/数据库名,在数据库名后面,加上:?useUnicode=true...

2018-07-20 23:56:57 2672

原创 使用EL表达式获取项目路径

比如,项目名为JavaWeb。获取"/JavaWeb"的正确方式为:${pageContext.request.contextPath}使用${requestScope.contextPath}的方式是错误的。requestScope 只是代表Request范围。使用${requestScope["属性"]}或者${request.属性}的方式,只是获取request范围内的属性值。...

2018-07-20 11:55:00 8338

原创 JUnit基础

Junit是一个单元测试的工具。可以用来检验程序中的方法是否符合预期。使用JUnit,需要先导入相关的Jar包:hamcrest-core-1.3.jar(用来执行断言)、junit-4.12.jar。Junit的使用很简单。比如编写有如下的Java文件:Calculator.javapackage com.junit.test;public class Calculator {...

2018-07-19 10:47:22 551

原创 Java反射机制

反射主要会在框架中使用。反射的实现:1:获取Class对象。    有三个方式获取Class对象,分别是:类名.class、对象.getClass()、以及Class.forName("全限定类名");    常用forName方式。2:获得构造方法对象Constructor。3:通过构造方法对象的newInstance()方法,获得对象实例。4:按照需要,获得成员变量...

2018-07-18 19:09:37 84

原创 数据库的事务处理机制

事务对于数据库来说,就像是一个盒子,其中装的是一些sql语句。如果没有事务,没有这个盒子,那么每次对数据库进行操作,就会立即生效。这样的话,数据库数据的完整性和一致性将难以得到保证。数据库变得很脆弱。mysql是默认关闭事务的。默认情况下,执行一条DML语句(insert、update、delete这些操作),这条DML语句将会立即生效,保存到数据库中,无法进行回滚。创建事务需要调用命...

2018-07-17 23:20:30 868

原创 JDBC连接池-c3p0

    一个数据库连接对象对应着一个物理数据库连接,使用完后关闭连接。频繁的打开关闭连接会造成系统的性能低下,且可能造成数据库的缓存溢出,通常开发中使用连接池(严格来说叫做数据源:DataSource)来进行处理。连接池的解决方案是:当应用程序启动时,系统主动建立足够的数据库连接,并将它们组成连接池,每次应用请求数据库连接时,无需创建连接,而是从连接池中取出一个已有的连接,使用完后,也不用关闭...

2018-07-17 21:25:37 492

原创 使用preparedStatement来解决sql注入漏洞

使用Statement来执行sql语句,如果语句中连接的有变量,那么可以对变量进行一些修改使绕过sql语句的判断条件。比如:public static boolean login(String username,String password) { Connection conn = null; Statement stmt = null; ResultSet rs = null...

2018-07-17 20:31:23 1382

原创 Java属性文件

Java属性文件就是配置文件。其中以键值对的形式存放信息。注意,每个键值对结尾没有分号如:jdbc.propertiesdriverClass=com.mysql.jdbc.Driverurl=jdbc:myql:///jdbctestusername=rootpassword=123456Java程序可以调用属性文件。方式为:public class JDBCUtils...

2018-07-17 19:29:55 2443

原创 JDBC相关API简介

DriverManager,可以称之为驱动管理类。主要作用:1:注册驱动;  实际开发中,不会使用:DriverManager.registerDriver(new Driver())的方式来注册,因为Driver类中存在静态代码块,已经执行了这一步骤,这会导致驱动注册两次。  通常使用:Class.forName("com.mysql.jdbc.Driver");  Class.fo...

2018-07-17 12:14:48 2197

原创 JDBC入门程序

首先,在mysql上创建一个数据库:CREATE DATABASE jdbctest;USE jdbctest;CREATE TABLE user(uid INT AUTO_INCREMENT KEY,username VARCHAR(20),password VARCHAR(20),name VARCHAR(20))ENGINE=INNODB CHARSET=UTF8;IN...

2018-07-17 10:28:40 186

原创 MYSQL比较NULL值

使用<=>或者IS [NOT] NULL

2018-07-15 22:05:17 2038

原创 mysql操作问题

1:“-- 注释的使用”:这里,--之后,需要有空格,不然会报错。

2018-07-15 09:50:44 149

原创 MySql安装后的使用问题2

白天MySql用的好好的,晚上就登不上去了,net start mysql 显示无法启动,没有任何错误。网上给出建议:先安装mysqld -install 。然后 删除mysql目录下的data文件夹,但是我就没有这玩意,所以直接下一步:mysqld --initialize。神奇的data文件夹出现了。之后,net start mysql,启动服务。mysql -uroot -p 不管输不输密码...

2018-07-13 22:19:37 168

原创 Java实现Word的导入和导出

与Excel不同,Word实现导入导出,03版和07版差异较大。实现思路是:如果03版报异常,那就是用07版的解决办法。03版的解析相对简单。07版更复杂一下。1:创建03版doc对象:HWPFDocument doc = new HWPFDocument(xxx)    其中,xxx可以为文件流或者File对象,根据是不是需要保存为文件来自行选择。2:获取文件内容:String content ...

2018-07-11 17:50:19 14709 1

原创 Java实现excel的导入导出

1:POI与Excel的关系:    POI中的Workbook类对应Excel本身。    Sheet类对应sheet。    Row类对应excel的一行。    Cell类对应每个单元格。2:解析步骤:    1》导入需要的jar包:commons-collections.jar、poi.jar、poi-ooxml.jar、poi-ooxml-schemas.jar、poi-scratchp...

2018-07-11 11:03:00 571

原创 linux下的java开发环境部署,以及tomcat启动后浏览器不可访问的问题。

首先下载必备的软件。这里使用vmware+centos7此外,需要使用到:    FlashFXP以及Xshell。    另外下载linux版本下的tomcat和JDK。软件安装完成后,打开FlashFXP ,链接到linux系统。将JDK以及TOMCAT压缩文件传入linux下的任意文件夹。如图图示上传到了/home/ftpload文件夹下(自建的文件夹)。修改两个文件的权限:chmod 77...

2018-07-09 19:21:14 782 1

原创 linux下文件压缩和解压

注意,如果使用tar时,不指定压缩方式,则只是打包

2018-07-09 16:03:11 148

原创 linux下的权限以及角色

一个文件或者目录,均对应三个角色:创建者、所属组、其他用户(不包括root用户)。三个角色可能含有不同的权限。如下图:图中,最左侧"-"开头表示为文件,"d"开头表示为目录,"l”开头表示为链接(如同windows下的快捷方式)。接下来,前三个字母表示创建者的权限,中间三个表示所属组的权限,后面三个表示其他用户的权限。其中“-”表示无权限。后面的数字表示连接数。再后面的两个用户,分别表示所有者(创...

2018-07-09 11:55:04 2651

AJAX+Servlet实现输入框动态提示案例

一个使用Ajax+Servlet实现的,类似于百度输入框输入内容,动态提示的完整案例。jsp+servlet。使用JSON传输数据。

2018-08-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除