- 博客(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
原创 开发过程中使用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安装后的使用问题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下的权限以及角色
一个文件或者目录,均对应三个角色:创建者、所属组、其他用户(不包括root用户)。三个角色可能含有不同的权限。如下图:图中,最左侧"-"开头表示为文件,"d"开头表示为目录,"l”开头表示为链接(如同windows下的快捷方式)。接下来,前三个字母表示创建者的权限,中间三个表示所属组的权限,后面三个表示其他用户的权限。其中“-”表示无权限。后面的数字表示连接数。再后面的两个用户,分别表示所有者(创...
2018-07-09 11:55:04 2651
AJAX+Servlet实现输入框动态提示案例
2018-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人