JDBC
获取数据库连接的方法
使用阿里提供的Durid技术 这个bin 包里提供了数据库连接池相关方法
获取数据库连接池 首先要新建一个工具类
在工具类中 我们把数据库连接池对象设置成静态的成员变量
在静态代码块中 为数据库连接池对象赋值
赋值过程 思路: 我们最终要获取数据库连接池对象
那么我们需要使用Durid中提供的工厂方法获取
在DuridDataSourceFactory的创建数据库连接池的方法也就是
createDataSource()中 需要一个properties 资源对象
那么 我们需要获得这个properties资源对象
而已知properties对象 需要加载后使用
那么我们需要将这个对象加载
获取方法:
首先new一个Properties对象
加载:
load()方法中需要传入一个输入流对象
那么我们需要获取资源的流对象
使用类加载器获取到类加载对象 然后获取资源流对象
传入properties资源文件的名字 获取
类.class.getClassLoader().getResourceAsStream(“druid.properties”);
- update():执行DML语句。增、删、改语句
* queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合
* 注意:这个方法查询的结果集长度只能是1
* queryForList():查询结果将结果集封装为list集合
* 注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中
* query(sql.Obj):查询结果,将结果封装为JavaBean对象
* query的参数:RowMapper()
* 在RowMapper接口中 有一个mapRow方法 每次调用都会封装一个obj对象返回
* mapRow方法中有两个参数 ResultSet 和 int
* ResultSet对象中有各种get方法 是根据数据库中的属性 获取到各种属性值
* 最后调用obj的构造方法 把这种属性传入然后返回
* 一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
* new BeanPropertyRowMapper<类型>(类型.class)
* queryForObject:查询结果,将结果封装为对象
* 一般用于聚合函数的查询
template.QUERY()
/**
* 对于query方法的理解 :queryForObject是查询记录然后封装成User对象
* 该方法有三个参数:sql语句,rowMapper以及args。
* args就是指sql语句中的“?” 在queryForObject方法中 后面的参数为@Nullable Object… args
* 也就是可变参数形式 这里是我们根据浏览器传入的姓名和密码
*
*
* 最关键的就是这个rowMapper了。
* rowMapper :row是行的意思 而Mapper是映射的意思
*
* 所以这个接口应该是 将数据表中的一行映射成为一个javaBean对象
* 在这个案例中 也就是映射为一个user对象
* 而我们在调用 template中的query方法的时候 其中会调用一个mapRow方法 这个方法需要我们自己去实现
*
* 而在本案例中 我们使用的的BeanPropertyRowMapper 实际上是rowMapper的实现类
* 使用这个实现类 我们就不需要去重写mapRow方法了
* 而其底层使用的技术就是反射,所以需要传入对应JavaBean中的.Class对象。
* */