1 引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 JDBC实现查询分析 我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤: 加载JDBC驱动: 建立并获取数据库连接: 创建 JDBC Statements 对象: 设置SQL语句的传入参数: 执行SQL语句并获得查询结果: 对查询结果进行转换处理并将处理结果返回:…
Mybatis的整个的执行流程.如下图所示: 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory, SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession. SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession. MyBatis的优缺点 优点: 1.简…
说到java的mvc框架,struts2和springmvc想必大家都知道, Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高.springmvc是依托着Servlet容器元素来设计的,同时springmvc基于Spring框架. struts2的设计基本上完全脱离了Servlet容器,Struts2由于采用了值栈.OGNL表达式.struts2标签库等,会导致应用的性能下降,应避免使用这些功能. spring可以让我们构…
1.概述: @white Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中. 2.Java集合大致可以分4类: @white Set:代表无序.不可重复的集合: List:代表有序.重复的集合: Map:代表具有映射关系的集合 Queue:代表一种队列集合实现:(Java 5增加) 3.Java集合和数组的区别 @white 1.长度: 数组:只能保存定长的数据,长度在初始化时指定: 集合:可保存数量不确定的数据. 2.保存数据类型: 数…
一.springboot整合mybaits (1)新建maven project; 新建一个maven project,取名为:spring-boot-mybatis (2)在pom.xml文件中引入相关依赖: 在pom.xml中加入依赖:mysql驱动,mybatis依赖包,mysql分页PageHelper: <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/…
什么是Spring呢? Spring是为了解决企业应用开发的复杂性而创建的一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. Spring优点 简单了解Spring之后,我们看一下Spring的优点. 1.方便解耦,简化开发. 2.AOP编程的支持. 3.声明式事务的支持. 4.方便程序的测试.. 5.方便集成各种优秀框架. 6.降低Java EE API的使用难度. Spring的骨骼架构 Spring总共有十几个组件,但是真正核心组件只有三个:Core.Context和Beans…
了解 Servlet 和 Filter Servlet(即servlet-api.jar) 是 J2EE 最重要的一部分,有了 Servlet 你就是 J2EE 了,J2EE 的其他方面的内容择需采用. 而 Servlet 规范你需要掌握的就是 servlet 和 filter 这两项技术. 绝大多数框架不是基于 servlet 就是基于 filter,如果它要在 Servlet 容器上运行,就永远也脱离不开这个模型. Servlet容器,大一点就是应用服务器,推荐 Tomcat .或者 Jet…
TCP实现多用户上传文件: 需要同时给多用户上传文件,这样就得用多线程来实现. 实际上,这样的话,上传的先后顺序和速度就跟客户端的带宽有关:带宽够,就容易抢占到线程的执行权: 首先,创建个线程类:(这个线程类执行的是服务器的功能) 线程类代码: public class UserThread implements Runnable { // 构造方法接收对象 private Socket s; public UserThread(Socket s) { this.s = s; } public…
上次的是上传TXT文件,这次上传的是图片.同样,上传成功需要反馈给客户端. 区别: TXT文件用记事本打开,我们可以看得懂,所以用了缓冲字符流,对通道内的字节流进行包装了. 而图片用记事本打开,我们看不懂,所以就用缓冲字节流,只需要把通道内的字节流转换成高效字节流就可以了. 客户端: public class ClineDemo { public static void main(String[] args) throws IOException { // 创建Socket对象 Socket s…
TCP练习: 1.客户端键盘录入,服务器输出文本文件 客户端代码: public class ClientDemo { public static void main(String[] args) throws IOException { // 创建socket对象 Socket s = new Socket("172.19.12.233", 10010); // 创建键盘输入流,用转换流包装成字符流 BufferedReader br = new BufferedReader(new…