学习内容:

1.Java反射

2.jdbc入门


1.反射的概述

Java的反射机制:动态获取信息以及动态调用对象方法

Java的反射机制的作用:用来编写一些通用性较高的代码或者框架的时候使用

原理:java文件编译成class文件,通过jvm将class对象加载到内存中,其中构造方法加载为构造对象,属性加载为Field对象,方法加载为Method对象

2.Field类:属性

Filed对象的获得

得到所有的成员变量

Field[] fields = c.getFields();//取得所有public属性(包括父类继承)

Field[] fields = c.getDeclareFields();//取得所有public属性(包括父类继承)

得到指定的成员变量

Field name = c.getFields("name ");//取得所有public属性(包括父类继承)

Field name = c.getDeclareFields("name ");//取得所有public属性(包括父类继承)

设置Field变量是否可以访问

field.setAccessible(boolean)

Field变量值的读取、设置

field.get(obj)
field.set(obj,value)

案例demo

public void demo1() throws Exception{
//获得Class
Class class1 = Class.forname("com.imooc.test.Person");
//获得属性
Field field1 = class1.getField("name");
//操作属性
Person p = (Person)class1.newInstance();
field.set(p,"李四") Object obj = field.get(p);
system.out.println(obj);
}

method类方法类似

2.jdbc API

一、加载驱动

DriveManager会导致驱动注册两次,实际开发中注册驱动使用

Class.forName("com.mysql.jdbc.Driver")

二、获得连接

Connection.getConnection(url,username,password)

Connection连接对象

主要作用:

一、创建执行SQL语句的对象

Statement createStatement()                                 :执行SQL语句,有SQL注入的漏洞存在

PreparedStatement prepareStatement(String sql):预编译SQL语句,解决SQL注入的漏洞

CallableStatement prepareCall(String sql)            :执行SQL中存储过程

二、进行事务的管理

setAutoCommit(boolean autoCommit)                   :设置事务是否自动提交

commit()                                                                  :事务提交

rollback()                                                                 :事务回滚

Statement :执行SQL

主要作用:

一、执行SQL语句

boolean execute(String sql)                                      :执行SQL

ResultSet executeQuery(String sql)                          :执行SQL中的select语句

int executeUpdate(String sql)                                    :执行SQL中的insert/update/delete语句

释放资源

// 释放资源
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;//垃圾回收机制更早回收对象
}

3.JDBC的SQL注入漏洞

举例:在用户名中输入带SQL语句关键字中的or的话,由于or前面用户名是正确的,此时无论密码是什么都是错误的

避免SQL注入漏洞的方法

用PreparedStatement创造对象

4. 数据库连接池

应用程序直接获取连接,用户每次请求都需要向数据库获得连接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。极易造成数据库服务器内存溢出。

c3p0为常用连接池

手动设置连接池

//创建连接池
ComboPooledDataSource dataSource = new ComboPooledDataSource ();
//设置连接池的参数
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql:///jdbctest");

或使用配置文件的方式

Java学习十三的更多相关文章

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第十三周

    java学习第十三周         本周,进行了对前六章知识点的小测试,在测试中我也发现了许多自己学习上存在的隐患,对一些知识点理解的太过粗略,没有很好的去记忆那些重要的小细节,把注意力过多的放在了 ...

  2. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  3. 20145330第七周《Java学习笔记》

    20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...

  4. JAVA学习之Ecplise IDE 使用技巧(2)第二章:键盘小快手,代码辅助

    上一篇:JAVA学习之Ecplise IDE 使用技巧(1)第一章:我的地盘我做主,工作空间 第二章:键盘小快手,代码辅助 内容包括: 第一:显示行号 如何设置行号:Ecplice菜单Windows& ...

  5. 2016最新Java学习计划

    一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 ...

  6. “全栈2019”Java第九十三章:内部类应用场景(迭代器设计模式)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. 201671010140. 2016-2017-2 《Java程序设计》java学习第十五周

    java学习第十五周 Java的GUI界面设计,框架以及主要部件填充,归置,布局管理,在第十一章和第十二章进行了系统的学习,在这两章的知识奠基下,可以简单的构造一个GUI用户界面,在两周的学习后,可以 ...

  8. “全栈2019”Java第十三章:基本数据类型

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. “全栈2019”Java第二十三章:流程控制语句中决策语句switch上篇

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. H5页面,华为手机打开不加载JS的问题

    今天在做H5页面放在其他手机上面都可以刷出列表,但是就是放在华为手机上面刷不出来,怎么想都想不通,后面主管说华为手机的浏览器是严格遵守H5什么鬼东西的,然后其他浏览器做到比较好的,如果有报错就帮我们解 ...

  2. 动手实验01-----vCenter 微软AD认证配置与用户授权

    环境说明: AD域->   centaline.net 阅读目录: 1. 配置与AD认证源 2.权限角色 1. 配置与AD认证源 登陆vCenter后,在 系统管理 -> 配置 -> ...

  3. Assignment写作谨慎学术抄袭是关键

    学术写作(Academic Writing)作为留学生涯的“必修课”,总是让闻者叹气,抓耳挠腮.初入课堂的留学生,更是缺乏写作经验不知从何下笔,只想仰天长啸“Essay真的好难啊!!”面对一个Essa ...

  4. c++程序—字符型

    #include<iostream> using namespace std; int main() { //字符型 char ch = 'a'; cout << ch < ...

  5. 汇编,寄存器,内存,mov指令

    一.代码 和 汇编 和 二进制之间的关系 二.复习一下计算机组成原理的知识 1.寄存器 计算机中有三个存储 32位cpu提供的寄存器有三种类型8位 16位 32位 64位的只是32位的扩展 并且程序大 ...

  6. Java学习笔记(一) 面向对象---封装

    面向对象---封装 封装是面向对象思想的三大特征之一. 理解: 隐藏对象的属性和实现细节,仅对外提供公共访问方式. 优点: 将变化隔离 便于使用 提升代码复用性 提高安全性 封装原则: 将不需要对外提 ...

  7. 1、求loss:tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None))

    1.求loss: tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)) 第一个参数log ...

  8. Hive鲜为人知的宝石-Hooks

    本来想祝大家节日快乐,哎,无奈浪尖还在写文章.谴责一下,那些今天不学习的人.对于今天入星球的人,今天调低了一点价格.减少了20大洋.机不可失失不再来.点击阅读原文或者扫底部二维码. hive概述 Hi ...

  9. Spring AOP复习

    最近在翻<Spring In Action>Spring 实战这本书,重新了解了一下AOP的概念和思想并写了一个小Demo示例,记录在这里: 环境:intelliJ IDEA 2018.M ...

  10. Tensorflow学习教程------softmax简单介绍

    做机器学习的同志们应该对这个都不陌生,这里简单举个例子.一般来说,使用softmax函数来将神经元输出的数值映射到0到1之间,这样神经元输出的值就变为了一个概率值. 公式和例子如下图 公式和例子如下图