一、ORM简介
1、ORM(Object Relation Mapping)
Object:JavaBean对象
Relation:关系型数据库
Mapping:映射(存在着对应关系)
2、ORM框架:Hibernate、MyBatis(iBatis)、JPA(Java Persitence APIjava持久化框架,规范)
3、简单的JDBC框架:这些框架只是对JDBC的操作进行了简单的封装。比如DBUtilsSpring JDBCTemplate
二、DBUtils框架的使用
1、QueryRunner
int[] batch(String sql, Object[][] params):执行批处理
sql:执行的sql语句
params:二维数组。高维表示执行的语句的条数;地维表示每条语句需要的参数
返回:每条语句影响到的记录行数
<T> T query(String sql, ResultSetHandler<T> rsh)
适合sql中没有参数的查询,把结果封装到JavaBean中
<T> T query(String sql, ResultSetHandler<T> rsh, Object... params)
适合sql中有参数的查询,把结果封装到JavaBean中
执行insert update delete语句的,没有参数的情况
int update(String sql, Object... params)
执行insert update delete语句的,有参数的情况
int update(String sql, Object param)(画蛇添足)
执行insert update delete语句的,有一个参数的情况
三、DBUtils中的结果处理器详解
四、ThreadLocal(很重点)
1、ThreadLocal该类提供了线程局部变量
2、分析原理:
ThreadLocal内部有一个Map。Map的key是当前线程对象,value是一个Object对象。
模拟该类:
public class ThreadLocal<T>{
private Map<Runnable,T> map = new HashMap<Runnable,T>();
public void set(T t){
map.put(Thread.currentThread(),t);
//把传入的参数绑定到当前线程上
}
public void remove(){
map.remove(Thread.currentThread());
//从当前线程上删除对象
}
public T get(){
return map.get(Thread.currentThread());
//获取当前线程上绑定的对象
}
}