05 2021 档案
摘要:1、单链表的整表创建 单链表的整表创建有两种方法、一种是采用头插法、就是始终让新结点在第一个位置。另一种是采用尾插法、每次把新结点都插在终端结点的后面,按照排队时的正常思维,所谓的先来后到。 1.1、尾插法实现 整体思路: 首先定义一个节点p、该节点为头节点。 然后定义一个节点l、代表尾节点。 让p
阅读全文
摘要:1、SSM整合开发 SSM 编程,即SpringMVC+Spring+MyBatis整合。就是将MyBatis整合入Spring。因为SpringMVC原本就是Spring的一部分,不用专门整合。 2、搭建SSM开发环境 1、添加依赖和插件: <dependencies> <dependency>
阅读全文
摘要:1、静态资源访问 在springmvc框架中、web.xml文件中<url-pattern/>的值如果从*.xxx改为为/后,静态资源就无法访问了。因为 DispatcherServlet会将向静态资源的获取请求,例如.css、.js、.jpg等资源的获取请求,当作是一个普通的 Controller
阅读全文
摘要:1、对象Object 处理器方法也可以返回Object对象。这个Object可以是 Integer,String,自定义对象,Map,List 等。但返回的对象不是作为逻辑视图出现的,而是作为直接在页面显示的数据出现的。 返回对象,需要使用@ResponseBody注解,将转换后的JSON数据放入到
阅读全文
摘要:1、请求参数中文乱码问题 在SpringMVC框架中、如果从前台传来的数据有中文、则会出现中文乱码问题。Spring对于请求数中的中文乱码问题,给出了专门的字符集过滤器:spring-web-5.2.5.RELEASE.jar的org.springframework.web.filter 包下的 C
阅读全文
摘要:1、视图解析器 SpringMVC框架为了避免对于请求资源路径与扩展名上的冗余,在视图解析器InternalResouceViewResolver中引入了请求的前辍与后辍。而ModelAndView中只需给出要跳转页面的文件名即可,对于具体的文件路径与文件扩展名,视图解析器会自动完成拼接。 在spr
阅读全文
摘要:1、第一个的注解的SpringMVC程序 完成功能:用户填写表单提交一个请求,服务端处理器在接收到这个请求后,给出一条欢迎信息,在响应页面中显示该信息。 添加依赖和插件、如下: <dependencies> <dependency> <groupId>junit</groupId> <artifac
阅读全文
摘要:1、AspectJ的AOP配置管理事务 在大型项目中、可以使用AspectJ的AOP配置管理事务。在配置文件中声明类、方法需要的事务。业务和事务配置完全分离。 需要四个步骤、如下: 添加依赖 声明事务管理器对象 声明方法需要的事务类型 配置aop、指定哪些类需要创建代理 1.1、添加依赖 <depe
阅读全文
摘要:1、Spring的事务管理 事务原本是数据库中的概念,在Dao层。但一般情况下,需要将事务提升到业务层,即Service层。这样做是为了能够使用事务的特性来管理具体的业务。 在Spring中通常可以通过以下两种方式来实现对事务的管理: 使用Spring的事务注解管理事务 使用AspectJ的AOP配
阅读全文
摘要:1、Spring集成MyBatis 在使用MyBatis开发时、创建SqlSessionFactory对象需要自己手动创建、也就是使用SqlSessionFactoryBuilder.build()、而在spring框架中、对象统一交由容器管理、所以、spring集成mybatis主要解决的问题就是
阅读全文
摘要:1、AspectJ对AOP的实现 AspectJ 是一个优秀面向切面的框架,它扩展了Java语言,提供了强大的切面实现、实现了AOP的功能,且其实现方式更为简捷,使用更为方便,而且还支持注解式开发。所以、在Spring中使用AOP开发时,一般使用AspectJ的实现方式。 2、AspectJ的通知类
阅读全文
摘要:1、基于注解的DI 对于DI使用注解,将不再需要在Spring配置文件中声明bean实例。Spring中使用注解,需要在Spring配置文件中配置组件扫描器,用于在指定的基本包中扫描注解。 1.1、指定多个包的三种方式 使用多个context:component-scan指定不同的包路径: <con
阅读全文
摘要:1、为应用指定多个Spring配置文件 在实际应用里,随着应用规模的增加,系统中Bean数量也大量增加,导致配置文件变得非常庞大、臃肿。为了避免这种情况的产生,提高配置文件的可读性与可维护性,可以将Spring 配置文件分解成多个配置文件。 包含关系的配置文件: 多个配置文件中有一个总文件,总配置文
阅读全文
摘要:1、注入分类 bean实例在调用无参构造器创建对象后,就要对 bean 对象的属性进行初始化。初始化是由容器自动完成的,称为注入。根据注入方式的不同,常用的有两类:set注入、构造注入。 2、set注入 set 注入也叫设值注入是指,通过setter方法传入被调用者的实例。这种注入方式简单、直观,因
阅读全文
摘要:1、Spring框架是什么? Spring是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的核心是控制反转(IoC)和面向切面编程(AOP)。Spring是可以在JavaSE/EE中使用的轻量级开源框架。 主要作用: 为代码"解耦",降低代码间的耦合度。 让对象
阅读全文
摘要:1、Mybatis通用分页插件 github地址: https://github.com/pagehelper/Mybatis-PageHelper PageHelper支持多种数据库: Oracle Mysql MariaDB SQLite Hsqldb 等等。。。 2、基于PageHelper分
阅读全文
摘要:1、Properties标签的使用 在使用 properties 标签配置时,我们可以采用两种方式指定属性配置。 1.1、直接给出值 <environments default="mysql"> <environment id="mysql"> <transactionManager type="j
阅读全文
摘要:1、内容列表 动态SQL-if 动态SQL-where 动态SQL-foreach 动态SQL-片段 动态SQL,通过MyBatis提供的各种标签对条件作出判断以实现动态拼接SQL语句。这里的条件判断使用的表达式为OGNL表达式。常用的动态SQL标签有<if>、<where>、<choose/>、<
阅读全文
摘要:1、模糊 like 模糊查询的实现有两种方式, 一是java代码中给查询数据加上"%"; 二是在mapper文件sql语句的条件位置加上“%”。 需求:查询姓名有"王"的 1.1、java代码中提供要查询的 "%王%" 接口方法: List<UserInfo> selectLikeList(Stri
阅读全文
摘要:1、# 占位符 告诉mybatis使用实际的参数值代替。并使用 PrepareStatement对象执行sql语句, #{…}代替sql语句的"?"。这样做更安全,更迅速,通常也是首选做法。 在Dao层接口中添加如下方法: public int insert(UserInfo userInfo);
阅读全文
摘要:1、parameterType 接口中方法参数的类型,类型的完全限定名或别名。这个属性是可选的,因为MyBatis可以推断出具体传入语句的参数. 比如dao层接口中有一个查询单个对象的方法: public UserInfo selectUser(int id); 对应的mapper映射文件如下: <
阅读全文
摘要:1、为什么要使用Dao代理来实现CURD? 观察笔记4可以发现、在传统Dao层开发模式中、Dao接口实现类并没有干什么实质性的工作,它仅仅就是通过SqlSession的相关API、根据用户提供的命名空间和id值、定位到映射mapper文件中相应的SQL语句,真正对DB进行操作的工作其实是由框架通过m
阅读全文
摘要:1、使用MyBatis实现基本CURD 采用传统的Dao层开发方式、通过mybatis实现对数据库表基本功能、查询所有、查询单个、新增、删除、修改 在Dao层创建接口、有如下几个方法: public interface UserInfoDao { public List<UserInfo> sele
阅读全文
摘要:1、为什么要配置日志? 在使用MyBatis进行开发时候、每次对数据库操作后在控制台只有结果而没有详细信息。比如:执行添加数据后返回受影响行数、执行查询语句后返回一个对象或者集合,但是、都不知道是执行的那个SQL语句的过程、期间都发生了什么、语句中都有什么值。所以、给MyBatis配置日志,可以输出
阅读全文
摘要:1、MyBatis框架入门案列 使用MyBatis框架、连接数据库,查询一张表数据,存放到List集合中。 2、搭建MyBatis开发环境 创建MYSQL数据库、表、创建Maven工程、在项目中创建实体类,Dao接口。 2.1、创建MYSQL数据库表 数据库名StudentManage、表名User
阅读全文
摘要:1、为啥要在IDEA重新配置Maven? IDEA内置的Maven相对不好用、如果要修改仓库地址要改好多地方,而使用自己下载的Maven,要修改仓库地址,只需修改conf/setting.xml文件中的localRepository标签中的地址即可。 2、具体步骤如下 下载apache-maven-
阅读全文
摘要:1、Apache的DBUtils Commons dbutils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能简化JDBC应用程序的开发。同时,不会影响程序的性能。 2、DBUtils简介 Dbutils是Java编程中数据库操作实用小工具,小巧、简单、实用 对于数据表的
阅读全文
摘要:1、Druid连接池 在程序初始化时,预先创建指定数量的数据库连接对象存储在池中,当需要连接数据库时,从连接池中取出,现有连接使用完毕后,也不会进行关闭,而是放回池中实现复用,节省资源. 1.1、Druid连接池使用步骤 在项目的lib文件夹里添加druid.jar文件 创建database.pro
阅读全文
摘要:1、为什么要封装Dao层工具类? 在Dao层中,每次对数据库的增、删、改、查操作存在代码冗余,可以将共有代码抽取封装。 2、哪些代码需要封装? 在修改、删除、添加等操作方法中,每次都需要获取连接对象、获取PreparedStatement、给占位符赋值,释放连接等等。 在查询操作方法中(查询全部和查
阅读全文
摘要:1、事务 数据库系统保证在一个事务中的所有SQL要么全部执行成功,要么全部不执行。就像转账一样、任何一方出现异常,那么转账就无法成功。 1.1、JDBC事务 JDBC事务,就是在Java中用来控制数据库事务的。JDBC的一切行为包括事务是基于一个Connection的,通过Connection对象进
阅读全文
摘要:1、Date工具类 现有问题:在对数据库进行插入数据操作时,如果数据库表中有时间类型的字段,就需要用到PreparedStatement接口中的setDate()方法,但是有一下两个问题: setDate()第二个参数类型是java.sql.Date,而Java编程应用层用的都是java.util.
阅读全文
摘要:1、为什么要封装工具类? 首先,使用Java编程是面向对象编程,面向对象有三大核心特性,其中有一大特性就是"封装"。 一个项目中不可能只有一个功能模块需要对数据库进行操作,有好多功能模块都需要进行访问数据库,操作数据。 在对数据库进行访问、操作、等一些步骤都是重复的,比如:注册驱动,获取连接对象,释
阅读全文
摘要:1、SQL注入问题 1.1、什么是SQL注入? 用户输入的数据中有SQL关键字或用法并且参与了SQl语句的编译,导致SQL语句编译后的条件含义为true,一直得到正确的结果,这种现象称为SQL注入。 1.2、如何避免SQL注入? 由于编写的SQl语句是在用户输入数据,整合后再进行编译。所以、为了避免
阅读全文
摘要:1、ResultSet(结果集) 在执行查询SQL后,存放查询到的结果集数据。 1.1、接收结果集 String querySql = "SELECT Name,LoginName FROM Students"; ResultSet rs = null; try { rs = statement.e
阅读全文
摘要:1、JDBC是什么? Java语言连接数据库,是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。 2、JDBC的本质是什么? JDBC是SUN公司制定的一套接口(interface),也就是说SUN公司只负责定义,而不负责实现。作为开发人员是面向接口而编程。只需调用SU
阅读全文

浙公网安备 33010602011771号