黑马程序员技术交流社区

标题: 成都校区Java EE双元21期ZhuGuangQian [打印本页]

作者: zgq_2012    时间: 2019-1-3 12:38
标题: 成都校区Java EE双元21期ZhuGuangQian
1、★ JDBC :java数据库连接,Java语言操作数据库,本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口,各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2、8步操作
(1)(导包)注册驱动 Class.forNmae(“com.mysql.jdbc.Driver”);// 5版本之后可以省略,建议写
(2)连接数据库 Connection con=DriverManager.getConnection(“jdbc:mysql:// localhost:3306/db2”,”用户名”,”密码”);
(3)写SQL语句 String sql=”update 表 set age=20”;
(4)获取SQL语句执行对象 Statement sta=con.createStatement();
(5)Int i =stat.executeUpdate(sql); // 调用mysql执行语句方法,返回的是int数字,指影响行数
(6)输出一下结果 sout(i);
(7)释放资源 后写先关 sta.close(); con.close(); 最好放在finally()里面
3、各个对象
(1)DriverManager:驱动管理对象
①注册驱动:告诉程序该使用哪一个数据库,MySQL5版本之后的jar包可以省略注册驱动,
②获取数据库连接 static Connection getConnection(String url,String user,String password);
1)Url:指定连接的路径,jdbc:mysql://ip地址(域名):端口号/数据库名称
a.若连接本机的服务器,且端口号是3306,则ip和端口号可以删除
2)User:用户名
3)Password:密码
(2)Connection :数据库连接对象
①获取执行sql的对象
1)con.createstatement();// 获取执行对象,后续用执行对象调用执行方法
2)Con.prepareStatement(String sql);
②管理事务
1)开启事务 Con.setAutoCommit(boolean autoCommit); 调用该方法设置参数为false,即开启事务
2)提交事务 con.commit();
3)回滚事务 con.rollback();
(3)Statement:执行mysql的对象
①执行SQL
1)Boolean execute(string sql);// 可以执行任意sql的方法
②Int executeUpdate(String sql);// 执行DML(增删改),DDL(库,表的操作)语句,返回的是影响行数,用来判断语句是否执行成功,返回值>0成功,反之失败,不严谨,例如添加表
③Resultset executeQuery(String sql) ;// 执行DQL(查询)语句  返回结果集
(4)ResultSet:结果集对象,封装查询结果
①next();游标向下移动一行,判断有没有数据,返回的是boolean值,有就获取,没有就不获取
②GetXxx();获取数据
1)Xxx:代表数据类型 例如getInt / get String
2)参数:
a.Int:代表列的编号,从1开始,如getString(1)
b.String:代表列名称, 如getDouble(“Name”)
③遍历结果集,用while(re.next()){}
(5)prepareStatement:执行SQL的对象,是一个接口不是类
①SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
②解决问题,使用preparedStatement对象来解决
③参数使用?作为占位符
④Connection.preparedStatement(String sql);
⑤给?赋值 setXxx(1,参数1),表示传入的参数是第一个?的值
⑥都会使用preparedStatement来完成增删改查,效率更高
4、JDBCUtiles工具类
(1)JDBCUtiles.close(参数); // 释放资源,重载方法,参数可以传2/3个
(2)JDBCUtiles.getConnection(参数);// 使用配置文件(反射操作)properties
5、JDBC控制事务
(1)用的是Connection的对象
(2)使用try--catch来防止回滚和提交的位置
(3)Try{
Commit()
}catch(){
Rollback()
}
1、JDBC连接池
(1)概念:就是一个容器(集合),存放数据库连接的容器
①系统初始化好后,容器被创建,容器会申请一些连接对象,当用户来访问数据库的时候,从容器中获取连接对象,访问完之后,把连接返回给容器
②节约资源
③用户访问高效
(2)C3P0:数据库连接池技术
①导入jar包
②定义配置文件,名称 c3p0.properties 或者 c3p0-config.xml
③路径:直接将文件放在src目录下即可
④创建核心对象 数据库连接池对象 new CombopooledDateSource();
⑤获取连接getConnection();
⑥关闭连接con.close();直接返回连接池
⑦数据库连接最大上限是100个连接数
(3)Druid:数据库连接池实现技术,阿里巴巴提供的    -- 默认注册驱动
①导包 druid-1.0.9.jar
②定义配置文件 properties格式,可以叫任意名称,一般放在SRC目录下
③加载配置文件,类的加载器
④获取连接池对象 DruidDataSourceFactory.createDataSource(pro);
⑤获取连接对象 ds.getConnection();
(4)
(5)Druid工具类
①定义一个工具类
②提供静态代码块
③ 。
2、JDBCTemplate
(1)Spring 框架对JDBC的简单封装,提供了一个JDBCTemplate 对象简化JDBC的开发
①导入jar包
②创建JDBCTemplate 对象,依赖于数据源DataSource
1)New JdbcTemplate(ds); // 工具包里面的ds,DataSource对象
③调用JDBCTemplate 的方法来完成CRUD的操作
1)Update(sql对象,参数1(第一个‘?’),参数2(第二个‘?’)):执行DML增删改语句
2)queryForMap(): 查询结果,分装为map集合(结果集是一行数据,多行不能查询),
3)queryForList(): 查询结果,分装为List集合(一般是查询多行数据)
a.将每一条记录封装为Map集合,
b.再将Map集合对象封装到List集合中
4)Query(sql,new BeanpropertyRowMapper<类型>(类型.class)):查询结果,封装为JavaBean对象,传递的参数是sql语句和和接口
a.
5)QueryForObject(sql,接收类型.class):查询结果,将结果封装为对象,
a.一般用于聚合函数的查询
1、B/S架构
(1)资源分类
①静态资源
1)使用静态网页开发技术发布的资源
2)特点
a.所有用户访问,得到的结果是一样的
b.如文本,图片,音频,视频,
a)HTML 用于搭建基础网页,展示页面的内容
b)CSS 用于梅花页面,布局页面
c)JavaScript 控制页面的元素,让页面有一些动态效果
c.如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器,浏览器中内置了静态资源的解析引擎,可以用展示静态资源
②动态资源
1)使用动态网页开发技术发布的资源
2)特点
a.所有用户访问,得到的结果可能不一样
b.如jsp/servlet,php,asp..
c.如果用户请求的是动态资源,那么服务器就会将动态资源转换为静态资源,然后再发送给浏览器
2、HTML 超文本标记语言
(1)超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本
(2)标记语言—最基础的网页开发语言
①有标签构成的语言。<标签名称>如html,xml
②标记语言不是编程语言
(3)语法:html文档的后缀名 .html或者.htm
(4)标签分为:
①围堵标签:<html> 开始标签 </html> 结束标签,
1)标签可以嵌套,格式要对<b> <a> </a> </b>
②自闭和标签:开始标签和结束标签再一起,如换行标签 <br/>
③在开始标签中可以定义属性,如<font color=”red”>,属性是由键值对构成,值需要用引号引起来(单双都可以)
④Html的标签不区分大小写,但是建议使用小写。
(5)标签学习
①文件标签:构成html最基本的标签
a.Html:html文档的跟标签<html lang=”en”> 指定语言English
b.Head:头标签,用于去指定html文档的一些属性,引入外部的资源
c.<meta charset=”utf-8”> 指定编码格式
d.Title:标题标签,
e.Body:体标签
f.<!DOCTYPE html>:h5中定义该文档是html文档
②文件标签:和文本有关的的标签
1)注释:<!--注释内容-->
2)<h1> 。。。</h> 标题标签,h1~h6字体大小逐渐递减
3)<p> </p>段落标签
4)<hr> 展示一条水平线 ,自闭和标签
5)<b> <b/> 字体加粗
6)<i> <i/> 字体以斜体展示
7)&copy 显示一个圈C
8)人名币符号 &yen; 代替
9)<font color=”red” size=”5” width=”50” face=”楷体”> <font/>
a.字体颜色,  
a)color=”red”,
b)rgb(值1,值2,值3):值得范围:0-255,三原色配色
c)#值1值2值3 同上,值范围:00-FF之间,三原色配色,常用
b.字体高度,size=”5”
c.字体宽度,width=”50”,单位是像素PX,可以写占比50%,占一半
d.字体样式 face=”楷体”
e.<center> <left> <right> 居中,居左,居右 或者align=”center”格式
③图片标签:
1)<Img src=”图片文件路径” alt=”图片加载失败显示的文字信息”/> 自闭和标签,展示图片,可以再其中加其他属性,宽度width,高度height等等
2)图片路径一般都写相对路径,
a../image/1.jpg 前面的./代表当前目录,可以省略
b.../ 代表上一级目录
④列表标签 自闭和标签
1)有序列表<ol type=”A” strat=”5”> type以什么格式成列,A就是ABC...,1就是1234...,strat 就是从第几个字符开始
a.<li> 有序事件</li>
2)无序列表<ul type=”disc实心圆点””circle圆圈””square实心方块”/>
⑤超链接标签:
1)<a href=”http://www.i23.hao.cn指定访问资源的URL(统一资源定位符)” target=”_self在本页打开超链接/_blank 打开以一个空白页打开连接”> 点我 </a>需要指定属性 ,
2)也可以访问资源路径
3)Href=”mailto:邮箱号” 打开邮件客户端,收件人就是里面的邮箱号
4)图片关联超链接<a href=”http://www.i23.hao.cn> <图片标签> </a>
⑥表格标签:
1)<table border=”1一个边框一个线” width=50%> 定义表格
Cellpadding 定义内容与单元格的距离
Cellspacing 定义单元格之间的距离,为0则单元格的线何为一条
<tr> 定义行 (<th>定义表头单元格)
<td>bianhao</td> 定义单元格
</tr>
</table> bgcolor=”yanse”可以定义背景颜色
2)<caption>: 定义表名字,在table里面定义,一直跟着表走
3)<thead>:
4)<tbody>:
5)<tfoot>:
6)Colspan:合并列 写在td里面的

7)Rowspan:合并行

⑦<div> </div> 块标签,一个div占一行,会换行
⑧<span> </span> 块标签,文本信息在一行展示,行内标签/内联标签
语义化标签:<heade




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2