A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© software0210 初级黑马   /  2019-8-20 15:23  /  1347 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

概念:Java DataBase Connectivity  Java 数据库连接, Java语言操作数据库        
* JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

jdbc的操作步骤:
1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
                        1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
                        2.右键-->Add As Library
                2. 注册驱动
                3. 获取数据库连接对象 Connection
                4. 定义sql
                5. 获取执行sql语句的对象 Statement
                6. 执行sql,接受返回结果
                7. 处理结果
                8. 释放资源
* 功能:
1. 注册驱动:告诉程序该使用哪一个数据库驱动jar
static void registerDriver(Driver driver) :注册与给定的驱动程序 DriverManager 。
Class.forName("com.mysql.jdbc.Driver");
2. 获取数据库连接:
* 方法:static Connection getConnection(String url, String user, String password)
* 参数:
* url:指定连接的路径
* 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
Connection:数据库连接对象
1. 功能:
        1. 获取执行sql 的对象
                * Statement createStatement()
                * PreparedStatement prepareStatement(String sql)  
ResultSet:结果集对象,封装查询结果
                * boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true
                * getXxx(参数):获取数据
                        * Xxx:代表数据类型   如: int getInt() ,        String getString()
PreparedStatement:执行sql的对象
                1. SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
                        1. 输入用户随便,输入密码:a' or 'a' = 'a
                        2. sql:select * from user where username = 'fhdsjkf' and password = 'a' or 'a' = 'a'
                2. 解决sql注入问题:使用PreparedStatement对象来解决
                3. 预编译的SQL:参数使用?作为占位符


事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。
1. 操作:
        1. 开启事务
        2. 提交事务
        3. 回滚事务
2. 使用Connection对象来管理事务
        * 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
                * 在执行sql之前开启事务
        * 提交事务:commit()
                * 当所有sql都执行完提交事务
        * 回滚事务:rollback()
                * 在catch中回滚事务


数据库连接池

1. 概念:其实就是一个容器(集合),存放数据库连接的容器。
            当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。

2. 好处:
        1. 节约资源
        2. 用户访问高效

3. 实现:
        1. 标准接口:DataSource   javax.sql包下的
                1. 方法:
                        * 获取连接:getConnection()
                        * 归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而是归还连接
Druid:数据库连接池实现技术,由阿里巴巴提供的
        1. 步骤:
                1. 导入jar包 druid-1.0.9.jar
                2. 定义配置文件:
                        * 是properties形式的
                        * 可以叫任意名称,可以放在任意目录下
                3. 加载配置文件。Properties
                4. 获取数据库连接池对象:通过工厂来来获取  DruidDataSourceFactory
                5. 获取连接:getConnection

定义工具类
                1. 定义一个类 JDBCUtils
                2. 提供静态代码块加载配置文件,初始化连接池对象
                3. 提供方法
                        1. 获取连接方法:通过数据库连接池获取连接
                        2. 释放资源
                        3. 获取连接池的方法


* JavaWeb:
        * 使用Java语言开发基于互联网的项目

* 软件架构:
        1. C/S: Client/Server 客户端/服务器端
                * 在用户本地有一个客户端程序,在远程有一个服务器端程序
                * 如:QQ,迅雷...
                * 优点:
                        1. 用户体验好
                * 缺点:
                        1. 开发、安装,部署,维护 麻烦
        2. B/S: Browser/Server 浏览器/服务器端
                * 只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序
                * 优点:
                        1. 开发、安装,部署,维护 简单
                * 缺点:
                        1. 如果应用过大,用户的体验可能会受到影响
                        2. 对硬件要求过高

* B/S架构详解
        * 资源分类:
                1. 静态资源:
                        * 使用静态网页开发技术发布的资源。
                        * 特点:
                                * 所有用户访问,得到的结果是一样的。
                                * 如:文本,图片,音频、视频, HTML,CSS,JavaScript
                                * 如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,可以展示静态资源
                2. 动态资源:
                        * 使用动态网页及时发布的资源。
                        * 特点:
                                * 所有用户访问,得到的结果可能不一样。
                                * 如:jsp/servlet,php,asp...
                                * 如果用户请求的是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器


        * 我们要学习动态资源,必须先学习静态资源!

        * 静态资源:
                * HTML:用于搭建基础网页,展示页面的内容
                * CSS:用于美化页面,布局页面
                * JavaScript:控制页面的元素,让页面有一些动态的效果
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>
               
                        <head>
                                <title>title</title>
                        </head>
                       
                        <body>
                                <FONT color='red'>Hello World</font><br/>
                               
                                <font color='green'>Hello World</font>
                       
                        </body>
       
                </html>

3. 标签学习:
        1. 文件标签:构成html最基本的标签
                * html:html文档的根标签
                * head:头标签。用于指定html文档的一些属性。引入外部的资源
                * title:标题标签。
                * body:体标签
                * <!DOCTYPE html>:html5中定义该文档是html文档
        2. 文本标签:和文本有关的标签
                * 注释:<!-- 注释内容 -->
                * <h1> to <h6>:标题标签
                        * h1~h6:字体大小逐渐递减
                * <p>:段落标签
                * <br>:换行标签
                * <hr>:展示一条水平线
                        * 属性:
                                * color:颜色
                                * width:宽度
                                * size:高度
                                * align:对其方式
                                        * center:居中
                                        * left:左对齐
                                        * right:右对齐
                * <b>:字体加粗
                * <i>:字体斜体
                * <font>:字体标签
                * <center>:文本居中
                        * 属性:
                                * color:颜色
                                * size:大小
                                * face:字体

                * 属性定义:
                        * color:
                                1. 英文单词:red,green,blue
                                2. rgb(值1,值2,值3):值的范围:0~255  如  rgb(0,0,255)
                                3. #值1值2值3:值的范围:00~FF之间。如: #FF00FF
                        * width:
                                1. 数值:width='20' ,数值的单位,默认是 px(像素)
                                2. 数值%:占比相对于父元素的比例


        3. 图片标签:
                * img:展示图片
                        * 属性:
                                * src:指定图片的位置

                * 代码:
                         <!--展示一张图片 img-->

                    <img src="image/jingxuan_2.jpg" align="right" alt="古镇" width="500" height="500"/>
               
                    <!--
                        相对路径
                            * 以.开头的路径
                                * ./:代表当前目录  ./image/1.jpg
                                * ../:代表上一级目录
                     -->
               
                    <img src="./image/jiangwai_1.jpg">
               
                    <img src="../image/jiangwai_1.jpg">
        4. 列表标签:
                * 有序列表:
                        * ol:
                        * li:
                * 无序列表:
                        * ul:
                        * li:
        5. 链接标签:
                * a:定义一个超链接
                        * 属性:
                                * href:指定访问资源的URL(统一资源定位符)
                                * target:指定打开资源的方式
                                        * _self:默认值,在当前页面打开
                                        * _blank:在空白页面打开

                * 代码:
                         <!--超链接  a-->

                    <a >点我</a>
                    <br>
               
                    <a  target="_self">点我</a>
                    <br>
                    <a  target="_blank">点我</a>
               
                    <br>
               
                    <a href="./5_列表标签.html">列表标签</a><br>
                    <a href="mailto:itcast@itcast.cn">联系我们</a>
               
                    <br>
                    <a ><img src="image/jiangwai_1.jpg"></a>
        6. div和span:
                * div:每一个div占满一整行。块级标签
            * span:文本信息在一行展示,行内标签 内联标签

        7. 语义化标签:html5中为了提高程序的可读性,提供了一些标签。
                1. <header>:页眉
                2. <footer>:页脚


        8. 表格标签:
                * table:定义表格
                        * width:宽度
                        * border:边框
                        * cellpadding:定义内容和单元格的距离
                        * cellspacing:定义单元格之间的距离。如果指定为0,则单元格的线会合为一条、
                        * bgcolor:背景色
                        * align:对齐方式
                * tr:定义行
                        * bgcolor:背景色
                        * align:对齐方式
                * td:定义单元格
                        * colspan:合并列
                        * rowspan:合并行
                * th:定义表头单元格
                * <caption>:表格标题
                * <thead>:表示表格的头部分
                * <tbody>:表示表格的体部分
                * <tfoot>:表示表格的脚部分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马