AidanSu

Quick notes


  • 首页

  • 归档

  • 标签

  • 关于

Spring MVC 连接 MySQL 数据库 JDBC

发表于 2017-04-26 | 分类于 编程 | 阅读次数

使用 Spring MVC 进行 JavaWeb 开发的过程,经常需要和数据库进行数据交换,因此需要经常获取数据库连接。在通过数据源与数据库建立连接之后,我们就可以实际访问数据库了,而最基本的方式就是使用 JDBC。获取数据库连接使用完毕之后再释放连接,这个过程对系统资源的消耗很大,这将影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。因此需要对数据库的连接进行管理,数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

目前常用的连接池有:Spring自带的JDBC连接池;c3p0;dbcp;还有号称性能最好的 HiKariCP。

创建项目

使用 maven 创建 Java 应用 spring-mvc-mysql,实现一个登录注册功能,使用 HiKariCP 作为连接池,使用 JDBC 来查询数据库。还是使用无 xml 配置,从 Spring3 开始,Spring 实现了无 xml 配置,虽然文档和资料都少很多,网上中文资料质量好坏难辨,但配置类更清晰,错误容易查找,以后项目可以重用。总得来说其实还是个人喜好。

阅读全文 »

了解 Spring MVC 框架

发表于 2017-04-24 | 分类于 编程 | 阅读次数

Spring MVC 是一种基于 Java 实现了 Web MVC 设计模式的轻量级 Web 框架,其他语言也有 MVC 框架,如:基于 python 实现的 Django,基于 go 实现的 beego。MVC 是一种应用表示层设计的分层架构风格,将程序的输入、处理、输出这个顺序过程抽象为模型、视图、控制三个模块,程序员仅需关注业务的数据、展现、控制流程三个元素,将 Context,通讯协议、进程与线程、会话等复杂的要素交给框架处理,实现 Java 应用以业务为中心的编程理念,使得程序业务逻辑清晰,模块结构好。对提升开发效率,增强可维护性,促进团队内部按技能分工,起到关键作用。

MVC 的概念

  • M (模型/Model):业务涉及的数据对象实体。例如,你下订单购物,它包含用户、订单、订单项、支付等业务对象数据;
  • V (视图/View):展示业务人机交互界面的显示模板。例如,jsp 文件等,它能将模型中的数据填入显示模板,用户可看到界面元素丰富的界面;
  • C (控制器/Controller):用户输入处理单元。它检查输入的合法性,处理输入表单,按流程调用业务函数,生成输出需要的数据模型,选择视图模板,输出
阅读全文 »

了解 Spring 框架

发表于 2017-04-21 | 分类于 编程 | 阅读次数

当我写这篇博客的时候 Spring Framework 刚刚发布了最新的稳定版本 4.3.8,自从 spring 4 开始,案例都采用 Spring Boot,很明显,Spring Boot 是一种趋势。

Spring 框架可以帮我们处理很多底层的事情,我们开发人员就可以更专注于业务逻辑的实现,这是所有 Java 框架都尊崇的理念。Spring 是一个开源框架,也是一个基于依赖注入、控制反转的轻量级容器,可以单独实用,也可以和 Hibernate,Struts,iBatis 等框架组合实用。Spring 的主要优势之一就是其分层架构,该架构允许使用者自主选择任意件,同时为 J2EE 应用程序开发提供集成框架。现在,Spring 已经成为 J2EE 企业开发中的标准配置。

框架模块

Spring 框架包括功能、组织约20个模块。这些模块被分组为 Core Container, Data Access/Integration, Web, AOP, Instrumentation, Messaging and Test,如下图所示。

阅读全文 »

Intellij IDEA 创建 Maven Web 项目

发表于 2017-04-19 | 分类于 编程 | 阅读次数

Intellij IDEA 应该是最好用的 Java IDE,建议使用最新版本。而 Eclipse 几年前已经被我抛弃了,如果你对它有情怀,那就继续使用吧,反正只是一个工具。

下载安装 Intellij IDEA

官方下载地址: http://www.jetbrains.com/idea/

解决 Maven 加载慢的问题

如果不解决这个问题,每次创建项目的时候都要等上几分钟或者更长的时间,所以创建项目前最好把这个问题解决,如果你有的是时间可以忽略。

  1. 为了防止每次访问 maven 主站下载 catalog,这里预下载,并拷贝到 .m2 目录下:

    1
    2
    $ curl http://repo1.maven.org/maven2/archetype-catalog.xml >> archetype-catalog.xml
    $ mv archetype-catalog.xml .m2/
  2. 更改 maven 的仓库,在IDEA的安装目录下找到 plugins/maven/lib/maven3/conf 目录,修改该目录下的 setting.xml 文件,在<mirrors>标签下添加仓库地址:

    <mirror>
     <id>alimaven</id>
     <mirrorOf>central</mirrorOf>
     <name>aliyun maven</name>
     <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
    
    阅读全文 »

Ubuntu 安装配置 JDK

发表于 2017-04-17 | 分类于 编程 | 阅读次数

下载 JDK

在 Oracle 官网地址下载: http://www.oracle.com/technetwork/java/javase/downloads/index.html


先勾选 Accept License Agreement,然后点击第二个红色框的连接下载

阅读全文 »

使用 Ubuntu 16.04 做开发

发表于 2017-04-15 | 分类于 编程 | 阅读次数

本周,Ubuntu 17.04 发布了,但我并没有打算更新系统,因为我不想再当白老鼠了,之前已经吃过亏,更新了 Ubuntu 16.10 后发现很多 BUG,各种大大小小的问题,总之搞到你很烦,所以我还是坚持使用 Ubuntu 16.04,估计18.04稳定版出来后我会用,因为Ubuntu将在明年的Ubuntu 18.04 LTS上切换到GNOME。

为什么不用 Windows ? 因为我们是做程序开发的,Ubuntu更方便,日常的办公软件也有,比如 Office,QQ,搜狗输入法。下面教大家怎么愉快地使用 Ubuntu 吧。

系统分区

分区 大小
swap 1/2 内存
/boot 300MB
/ 102400MB
/home 剩余
阅读全文 »

使用 GitHub Pages 搭建 Blog

发表于 2017-04-14 | 分类于 编程 | 阅读次数

网上流行这样的一段话

第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

我觉得很有道理,因为我每个阶段都经历过了,一开始我使用网易博客来写东西(那时候还没学编程),后来发现里面的模板不好看,有广告,又不能改,于是通过一个寒假的时间学习了wordpress,并搭建一个属于自己的个人博客,主题也是自己设计的。但后来主题看起来有点落后时代了,想改也有心无力,而且垃圾评论很多,基本都是广告,站点变迁很烦,那时候新浪云很便宜基本免费,但慢慢开始涨价了,我转到更强大的阿里云,但博客还在那边,意味着域名要重新备案,系统要重新搭建,数据库要变迁…于是我放弃了,重新做了这个网站。

GitHub Pages

准备工作:在GitHub上创建一个名为username.github.io的项目,其中username是您在GitHub上的用户名(或组织名称),如果用户名不匹配是无法正常使用的。这样就有了一个免费的域名和空间。
选择博客框架:GitHub Pages上只能放静态页面,所以只能选择静态博客框架,其中比较流行的有Jekyll,Hexo,Simple,Octopress,Pelican以及Lo·gecho等等,这些框架我都不太熟悉,但最后我选择了Hexo,选择的原因是:

阅读全文 »

3.7 Java 数组

发表于 2012-09-15 | 分类于 Java笔记 | 阅读次数

数组是一组相关的数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。

一维数组

一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。
要使用Java数组,必须经过两个步骤:(1)声明数组;(2)分配内存给该数组。
声明形式一:

  • 声明一维数组:数据类型 数组名[ ]= null ;
  • 分配内存给数组:数组名 = new 数据类型[ 长度 ] ;

声明形式二:

  • 声明一维数组:数据类型[ ] 数组名 = null

取得数组长度

在 Java 中取得数组的长度(也就是数组元素的长度)可以利用“数组名称.length”完成,方法返回字符串中的字符数。空字符串和 null 字符串的长度均为0。
格式:

数组名称.length

一旦创建了数组,就不能再改变它的大小(尽管可以改变每一个数组元素)。如果经常需要在运行过程中扩展数组的大小,就应该使用另一种数据结构——数组列表。

数组的静态初始化

数组的内容分为动态初始化和静态初始化两种。动态初始化是先声明数组之后再为数组中的每个内容赋值。静态初始化时在数组声明时就指定其具体内容。
静态初始化格式:

数组类型[ ] 数组名 = { 初值0, 初值1 , 初值2 , 初值3 ,……. }

阅读全文 »

3.6 Java 控制流程

发表于 2012-09-14 | 分类于 Java笔记 | 阅读次数

与任何程序设计语言一样,Java 使用条件语句和循环结构确定控制流程。

块的作用域

块(复合语句)是指由一对花括号括起来的若干条简单的 Java 语句,块确定了变量的作用域。一个块可以嵌套在另一个块中。但是,不能在嵌套的两个块中声明同名的变量。

条件语句

在 Java 中,if 语句是一个判断结构,它会准确地检测判断条件成立与否,决定是否要执行后面的语句。条件语句的格式为:

1
2
3
4
5
if ( condition ){
// statement1
// statement2
// ……..
}

当程序中存在含有分支的判断语句时,就可以用 if…else 语句处理。当判断条件成立,即执行 if 语句主体;判断条件不成立时,则会执行 else 后面的语句主体。else 子句与最邻近的 if 构成一组。if….else 语句格式如下:

1
2
3
4
5
if (condition ){
// statement1
}else{
// Statement2
}

如果需要在 if….else 里判断多个条件时,就需要 if….else if….else 语句了,格式如下:

1
2
3
4
5
6
7
8
9
if (condition1 ){
// statement1
}else if(condition2) {
// Statement2
}
…. // 多个else if( )语句
else {
// Statement3
}

阅读全文 »

3.5 Java 字符串

发表于 2012-09-13 | 分类于 Java笔记 | 阅读次数

字符串指的是字符序列。Java 中的字符串分为两类:字符串常量和字符串变量。字符串常量:包括直接字符串常量和 String 类的对象。字符串常量的值一旦创建就不会再变动。实际上字符串内容的改变,改变的是内存地址的引用关系。字符串变量:指的是 StringBuffer 类的对象。创建字符串变量的值之后允许对其进行扩充修改。

String 字符串的创建

(1) 直接创建(赋值)[建议使用这种方法]

1
Sting name = “aidan” ;

(2) 通过关键字new创建 [要开辟两个内存对象]

1
String name = new String (“aidan”) ;

子串

String 类的 substring 方法可以从一个比较大的字符串中提取出一个子串。

1
2
String greeting = “Hello” ;
String s = greeting.substring ( 0 , 3) ; // String s = “Hel” ;

substring 方法的第一个参数是开始的位置,第二个参数是不想复制的第一个位置。第一个参数要大于等于第二个参数。

字符串的拼接

Java 语言允许使用 + 号连接(拼接)两个字符串。当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串,任何一个 Java 对象都可以转换成字符串。

1
2
3
4
5
String a = “Hello” ;
String b = “World” ;
int age = 20 ;
String c = a + b ; // String c = “HelloWorld” ;
String d = a + age ; // String d=”Hello20” ;

阅读全文 »
135
aidan

aidan

沉迷学习无法自拔

49 日志
4 分类
50 标签
GitHub 微博 豆瓣 知乎
© 2017 - 2021 aidan
由Hexo强力驱动 | 粤ICP备12003586号