一、JDBC简介
	  概念:Java DataBase Connectivity,Java数据库连接,Java语言操作数据库.
	  JDBC本质:其实是Sun公司提供的一套操作所有关系型数据库的规则,即接口.各个数据库厂商去实现这套接口,提供数据库驱动jar包.我们可以使用这套接口实现JDBC编程,操作数据库.
	  JDBC操作数据库步骤:
	  *导入jar包
	  *注册驱动
	  *建立连接
	  *书写sql语句
	  *创建执行sql语句的对象(Statement/prepareStatement)
	  *执行sql语句
	  *处理返回结果
	  *释放资源
	  注意:由于后期使用单纯JDBC比较少,因此这里就不在赘述其具体代码和工具类的编写了。后面会介绍一些新的技术。
	  二、JDBC控制事务
	  1.事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。
	  2.操作:
	  1.开启事务
	  2.提交事务
	  3.回滚事务
	  3.使用Connection对象来管理事务
	  *开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开启事务
	  *在执行sql之前开启事务
	  *提交事务:commit()
	  *当所有sql都执行完提交事务
	  *回滚事务:rollback()
	  *在catch中回滚事务
	  三、数据库连接池
	  概念:是一个容器(集合),存放数据库连接的容器。
	  当系统初始化后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
	  好处:
	  1.节约资源
	  2.用户访问高效
	  实现:
	  1.标准接口:DataSource,java.sql包下的
	  1.方法:
	  *获取连接:getConnection()
	  *归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而 是归还连接
	  2.一般我们不去实现它,有数据库厂商来实现
	  1.C3P0:数据库连接池技术
	  2.Druid:数据库连接池实现技术,由阿里巴巴提供的
	  这里重点介绍下Druid。
	  四、Druid:数据库连接池实现技术
	  1.步骤:
	  1.导入jar包druid-1.0.9.jar
	  2.定义配置文件:
	  *是properties形式的
	  *可以叫任意名称,可以放在任意目录下
	  3.加载配置文件。Properties
	  4.获取数据库连接池对象:通过工厂来来获取 DruidDataSourceFactory
	  5.获取连接:getConnection
	  五、Spring JDBC
	  1. 概念: Spring框架对JDBC的简单封装,提供了一个JDBCTemplate对象简化JDBC的开发。
	  步骤:
	  1.导入jar包
	  2.创建JdbcTemplate对象,依赖于数据源DataSource
	  3.调用JdbcTemplate的方法来完成CRUD的操作
	  update():执行DML的增删改操作
	  queryForMap(): 将查询的结果集封装为Map双列集合对象,每次只能查询出一条记录
	  queryForList():将查询的结果集封装为List单列集合对象
	  注意:将每一条记录封装为map集合,将map集合封装为list集合
	  query():将查询结果封装为JavaBean对象 (实体类对象)
	  query的参数:RowMapper
	  一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
	  new BeanPropertyRowMapper<类型>(类型.class)
	  queryForObject():将查询结果封装为Object对象
	  一般用于聚合函数的查询
	  六、HTML(简单介绍)
	  1.基本的一些标签
	  1)介绍HTML之前,先介绍下JavaWeb技术:
	  概念:用于java语言开发基于互联网的项目.
	  软件架构:
	  C/S:Client/Server 客户端/服务器端
	  如:QQ/迅雷等
	  优点:用户体验好
	  缺点:开发/安装/部署/维护,麻烦
	  B/S:Browser/Server 浏览器/服务器端
	  通过网址,访问不同的程序
	  优点::开发/安装/部署/维护 比较简单
	  缺点:大型应用,用户体验较差,因为传输比较慢,硬件要求过高
	  B/S架构详解:
	  资源分类:
	  静态资源:基于HTML/JS/CSS等技术,使用静态网页开发技术发布的资源.
	  Html超文本标记语言:Hyper text  Markiplanguage简称
	  特点:
	  所有用户访问,得到的结果是一样的。
	  如:文本,图片,音频、视频,HTML,CSS,JavaScript
	  如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,
	  可以展示静态资源
	  动态资源:基于Servlet/JSP等技术,使用动态网页及时发布的资源.
	  特点:
	  所有用户访问,得到的结果可能不一样。
	  如:jsp/servlet,php,asp...
	  *如果用户请求的是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器
	  注意: 我们要学习动态资源,必须先学习静态资源!
	  静态资源:
	  HTML:用于搭建基础网页,展示页面的内容
	  CSS:用于美化页面,布局页面
	  JavaScript:控制页面的元素,让页面有一些动态的效果
	  2)HTML和其基本标签
	  1.概念:是最基础的网页开发语言
	  Hyper Text Markup Language超文本标记语言
	  超文本:
	  超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本.
	  标记语言:
	  由标签构成的语言。<标签名称> 如html,xml
	  标记语言不是编程语言
	  2.快速入门:
	  语法:
	  1.html文档后缀名 .html 或者.htm
	  2.标签分为
	  1.围堵标签:有开始标签和结束标签。如 <html></html>
	  2.自闭和标签:开始标签和结束标签在一起。如 <br/>
	  3.标签可以嵌套:
	  需要正确嵌套,不能你中有我,我中有你
	  错误:<a><b></a></b>
	  正确:<a><b></b></a>
	  4. 在开始标签中可以定义属性。属性是由键值对构成,值需要用引号(单双都可)引起来
	  5. html的标签不区分大小写,但是建议使用小写。
	  HTML标签:表单标签
	  *表单:
	  *概念:用于采集
	  *form标签:用于定义表单的.可以定义一个范围,范围代表采集用户数据的范围.
	  *属性:
	  *action:指定提交数据的URL
	  *method:指定提交方式
	  *分类:一共7种,常用2种:
	  get:
	  请求参数会在地址栏中显示,会封装到请求行中
	  请求参数大小有限制的
	  不太安全
	  post:
	  请求参数不会在地址栏中显示
	  请求参数大小没有限制的
	  较为安全
	  表单项中的数据要想被提交:必须指定其name属性.
	  表单项标签:
	  *input:可以通过type属性值,改变元素展示样式
	  *type属性:
	  text:文本输入框,默认值
	  placehoder:指定输入框的提示信息,当输入的内容发生变化,会
	  password:密码输入框,
	  radio:单选框
	  *注意:
	  1.要想让多个单选框实现单选的效果,则多个单选框的name属性值必须一样。
	  2.一般会给每一个单选框提供value属性,指定其被选中后提交的值
	  3.checked属性,可以指定默认值
	  checkbox:复选框
	  *注意:
	  1.一般会给每一个单选框提供value属性,指定其被选中后提交的值
	  2.checked属性,可以指定默认值
	  file: 文件选择框(文件上传)
	  hidden:隐藏域,用于提交一些信息
	  submit:提交按钮,可以提交表单
	  button:普通按钮
	  image:图片提交按钮
	  *src属性指定图片的路径
	  color:取色器
	  date:年月日的日历
	  datetime-local:年月日时分秒
	  email:邮箱
	  number:数字,如年龄等
	  *label:指定输入项的文字描述信息
	  *注意:
	  * label的for属性一般会和 input 的 id属性值 对应。如果对应了,则点击label区域,会让input输入框获取焦点。
	  * select属性 :下拉列表,设置name属性
	  <option></option>指定列表项
	  *  textarea属性:文本域.
	  *cols:指定列数,每一行有多少个字符
	  *rows:默认多少行
	  CSS:页面美化布局控制
	  1. 概念:Cascading Style Sheets层叠样式表
	  *层叠:多个样式可以作用在同一个html的元素上,同时生效
	  2.好处:
	  1.功能强大
	  2.将内容展示和样式控制分离
	  *降低耦合度。解耦
	  *让分工协作更容易
	  *提高开发效率
	  3.CSS的使用:CSS与html结合方式
	  1.内联样式
	  *在标签内使用style属性指定css代码
	  * 如:<div style="color:red;">hello css</div>
	  2.内部样式
	  *在head标签内,定义style标签,style标签的标签体内容就是css代码
	  *如:
	  <style>
	  div{
	  color:blue;
	  }
	  </style>
	  <div>hellocss</div>
	  3.外部样式
	  1.定义css资源文件。
	  2.在head标签内,定义link标签,引入外部的资源文件
	  *如:
	  *a.css文件:
	  div{
	  color:green;
	  }
	  <linkrel="stylesheet" href="css/a.css">
	  <div>hellocss</div>
	  <div>hellocss</div>
	  *注意:
	  *1,2,3种方式css作用范围越来越大
	  *1方式不常用,后期常用2,3
	  *3种格式可以写为:
	  <style>
	  @import"css/a.css";
	  </style>
	  总结:
	  html中三种写css的方式:
	  1.直接在标签上写style属性
	  2.在head标签中直接写<style>....</style>
	  3.在外部定义.css文件,通过<link rel=  />引入外部样式
	  优先级就近原则,即1>2>3
	  css语法:
	  格式:
	  选择器{
	  属性名1:值;
	  属性名2:值;
	  ......
	  }
	  *选择器:筛选具有相似特征的元素
	  *注意:
	  *每一对属性需要使用;隔开,最后一对属性可以不加;
	  分类:
	  基础选择器:
	  1.id选择器:选择具体的id属性值元素
	  *语法:#id属性值{}
	  2.元素选择器:选择具有相同标签名称的元素
	  *语法:标签名称{}
	  *注意:id选择器优先级高于元素选择器
	  3.类选择器:选择具有相同的class属性值的元素
	  *语法:.class属性值{}
	  *注意:类选择器优先级高于元素选择器
	  *class=class属性值1  class属性值2   class属性值3...也是可以的,只是相同设置只有一个起作用
	  扩展选择器:
	  1.选择所有元素:
	  *语法:  *{    }
	  2.并集选择器:
	  *语法:选择器1,选择器2{  }
	  3.后代选择器:筛选选择器1下的是所有后代选择器2,哪怕是孙子级,只要有选择器2即可
	  *语法: 选择器1  选择器2{  },用空格隔开的
	  4.子元素选择器:
	  *语法: 选择器1 >选择器2{ }
	  5.属性选择器:
	  *语法:元素名称[属性名="属性值"]{  }
	  6.伪类选择器:
	  * 语法:元素:状态{}
	  *如:<a>
	  *状态:
	  *link:初始化的状态
	  *visited:被访问过的状态
	  *active:正在访问状态
	  *hover:鼠标悬浮状态
	  属性
	  1.字体、文本
	  *font-size:字体大小
	  *color:文本颜色
	  *text-align:对其方式
	  *line-height:行高
	  2.背景
	  *background:
	  3.边框
	  *border:设置边框,符合属性
	  4.尺寸
	  *width:宽度
	  *height:高度
	  5.盒子模型:控制布局
	  *margin:外边距
	  *padding:内边距
	  *默认情况下内边距会影响整个盒子的大小
	  *box-sizing: border-box; 设置盒子的属性,让width和height就是最终盒子的大小
	  *float:浮动
	  *left
	  *right
     如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h60300.shtml








