JavaEE
2019-08-21 19:55:51 62 举报
AI智能生成
为你推荐
查看更多
JavaEE
作者其他创作
大纲/内容
JavaEE
反射
反射的概念和作用
反射是在运行中获取一个类和对象的信息
在不知道类的任何信息的情况下可以使用这个类的任何东西
获取一个类的Class模板(对象)的方式
类名.class
对象名.getClass()
Class.forName(全限定名)
Class类
API
获得属性
getDeclaredField(String name)
获得一个属性
传属性名
返回Field类型
getDeclaredFields()
获得所有属性
无参
返回Field类型数组
获得方法
获得一个方法
传方法名和参数的类型(按类型顺序写)
这里的可变参数是用来区分重载方法
返回Method类型
getDeclaredMethods()
获得所有方法
返回一个Method类型的数组
构造方法
getDeclaredConstructors()
获得所有构造方法
返回Constructor类型的数组
getDeclaredConstructor(Class<?>... types)
获得一个构造方法
通过可变参数区分构造方法重载
返回Constructor类型的对象
获取名
getName()
获取全限定名
返回值String类型
getSimpleName()
获取类名
返回值String
创建对象
newInstance()
java.lang.reflect
Field
Class中getDeclaredFields()方法返回的对象的所属类
属性类
方法
获取属性名
返回String
getType()
获取属性数据类型
返回class java.lang.类名
设置值
ConStructor
Class中的getDeclaredConstructor()方法以Constructor类型返回类的构造方法
newInstance(Object... args)
调用该方法创建对象
可变参数
获得构造方法名
返回String类型
Method
Class中的getDeclaredMethods()方法以Method类型返回类中的所有方法
方法的调用
返回值类型为Object
获得方法名
代理模式
静态代理
动态代理
Proxy
InvocationHandler
类加载机制
jvm和类
JVM和类的关系
JVM终止的情况
1.程序运行到最后正常结束
2.遇到结束程序的语句
3.遇到未捕获异常或错误
4.程序所在平台强制结束JVM
类的初始化
类的加载
是将类的class文件读入内存并为之创建一个java.lang.Class对象
类的连接
负责把类的二进制数据合并到jre中
三阶段
验证
准备
解析
声明类变量时指定初值
使用静态初始化块对类变量初始化
初始化类的步骤
1.先加载并连接该类
类初始化的时机
1.创建该类的实例
2.调用该类的类方法
4.利用反射强制创建类或接口对应的Class对象
5.初始化该类的子类
6.运行某个主类
注解
注解的概念和作用
基本注解
JDBC
步骤
1.建立连接
加载驱动
Class.forName(com.jdbc.mysql.Driver)
获取连接
url
username
password
2.获取sql执行者
3.定义sql语句
4.执行sql
5.处理结果
6.释放资源
DirverManager
用于管理JDBC驱动服务的类
该类主要作用是获取Connection对象
主要方法
Connection
数据库连接对象
常用方法
createStatement()
返回Statement对象
prepareStatement()
返回PreparedStatement对象
prepareStatement(String sql)
span style=\"font-size: inherit;\
prepareCall(String sql)
sql执行者
Statement
子类
PreparedStatement
int executeUpdate()
ResultSet excuteQuery()
CallableStatement
缺点
会发生sql注入
executeUpdate(String sql)
传sql语句
返回int(影响数据条数)
excuteQuery(String sql)
返回ResultSet结果集
ResultSet
用来接收查询结果的结果集
next()
getXxx(String columnLable)或getXxx(int columnIndex)
close()
数据库连接池
c3p0
druid
作用
资源受控
初始化时创建多个连接
1.加载驱动
setDriverClassName()
2.设置url
setUrl()
3.设置用户名
setUsername
4.设置密码
setPassword()
5.获取连接
getConnection()
运行机制
1.程序初始化时创建连接池
2.使用时向连接池申请可用连接
3.使用完毕,将连接返还给连接池
4.程序退出时,断开所有连接,并释放资源
MyBatis
介绍
环境搭建
1.mybatis-3.4.1.jar
2.mysql-connector-java-5.1.24.jar
3.druid-1.1.5.jar
xml配置
总xml文件
1.配置mybatis执行日志
2.配置JavaBean类的别名
typeAliases表签
typeAlias子标签
type属性
alias属性
package子标签
name属性
3.配置连接数据库所必要的参数
driver
4.配置SQL语句映射文件
mappers标签
mapper标签
resource属性
SQL语句映射文件
mapper根标签
namespace属性
2.填写对应接口的全路径
resultMap标签
只用于对结果集的处理
主要处理的问题
1.JavaBean属性名与数据库字段名不一致导致的无法封装问题
2.多表连接查询问题
一对一
一对多
多对一
多对多
属性
id
type
子标签
column属性
property属性
result
collection
ofType属性
操作数据库的标签
select
resultMap属性
resultType属性
delete
update
insert
共有属性
有关sql语句传参问题
1.传单个参数
2.传多个参数
mybatis会将多个参数作为集合处理
取参方式
3.传对象
#{对象属性名}
4.使用注解给形参强制命名
5.传集合
6.传对象并用注解给对象强制命名
动态SQL
常用标签
if
用于判断参数是否要写到SQL语句中
test属性
where
一般与if标签搭配使用
<select id=\"listOrderByIds\" resultMap=\"orderMap\"> select * from s_order <where> <if test=\"orderId != null\"> and order_id = #{orderId} </if> <if test=\"memberId != null\"> and member_id = #{memberId} </if> </where> </select>
trim
prefix属性
prefixOverrides
suffixOverrides
set
foreach
collection属性
item属性
open
close
separator
其实动态 sql 语句的编写往往就是一个拼接的问题,为了保证拼接准确,我们最好首先要写原生的 sql 语句出来,然后在通过 mybatis 动态sql 对照着改,防止出错。
0 条评论
回复 删除
下一页