第三十八天

1.PreparedStatement的操作步骤

//1)创建数据库的连接对象----加入连接池之后的工具类(通过静态代码块---创建DataSource接口对象)
Connection conn = DruidJdbcUtils.getConnection() ;
//2)准备参数化的sql语句
String sql = "select * from 表名 where  字段名称 like ?" ;
//String sql2 = "insert into/update/delete from .... ;
//3)连接对象获取预编译对象同时发送参数化sql到数据库中进行编译
PreparedStatement stmt =  conn.preparedStatement(sql) ;
//4)准备参数赋值
stmt.setString(1,"%张%") ;
//5)在预编译对象中进行参数填充
ResultSet rs = stmt.executeQuery() ;//int count =  stmt.executeUpdate() ;
//6)遍历结果集
while(rs.next()){
    //通过的列的名称或者列的索引值获取....
}

2.数据库连接池的作用

数据库连接池: 
            c3p0
            dbcp
            druid :德鲁伊
1)资源重复利用
    使用连接池大大避免了不断的频繁创建连接对象,使用完毕关闭之后,造成的资源销毁大!
2)提高系统的响应速度
    在程序启动的时候,提前了准备了的足够的连接对象,存储在"池"中,当用户访问比较多的时候,同时应用,可以直接从
    连接池中取出连接对象,执行速度快!
3)控制连接对象 
    多个连接对象被多个线程在同一时刻使用的时候,连接池中对连接对象进行申请,利用,释放,归还连接池中等待下一次利用

3.Statement和PreparedStatement的区别

Statement对象执行sql语句的是,效率比较低,每一条sql,都必须发送给数据库进行操作,大大增加了数据库的负载!
Statement对象执行sql语句---(静态sql语句),存在字符串拼接,就存在非法sql造成恶意攻击数据库,造成sql注入!
​
PrepareStatement提高了sql的执行效率,发送一条参数化的sql,可以不断的重新赋值;
由于参数化的sql语句,里面全部都是占位符号?,不存在sql拼接,有效防止SQL注入!

4.通过DruidDataSourceFactory如何创建数据源

//1)读取连接池的配置文件
InputStream inputStream =当前类名.class.getClassLoader().getResourceAsStream("druid.properties") ;
//2)创建属性集合列表
Properties prop = new Properties() ;
//3)加载字节输入流到属性列表中
prop.load(inputStream) ;
//4)创建数据源
DataSource ds = DruidDataSourceFactory.createDataSource(prop) ; //方法本质就是创建的DruidDataSource子实现类对象

5. 数据库的三大范式以及事务的特点有哪些

1NF:数据库表中的每一列是不能在拆分的原子项!必须为单独的一列
2NF:非主键字段必须完全依赖于主键字段! 
    满足1NF基础上
        1)每一张表描述一件事情
        2)非主键字段必须完全依赖于主键字段! 
3NF:非主键字段不能产生传递依赖!
        通过外键拆分多张表
        
        学生表和选课表
        
        用户表     角色   权限     ---->权限认证----过滤器--->权限框架 SpringSecurity/Shiro
        
事务的特点ACID
​
原子性
一致性
隔离性
持久性




今日内容

1.针对预编译对象原生操作方式 -->引入Commons-dbUtils

Apache组织结构提供了开源工具类库,针对原生JDBC的一种简易封装,优化了代码,代码更加简洁!

  • 1)导入核心包commons-dbutils-1.6/1.7 .jar

  • 2)核心执行器:QueryRunner

  • --->创建这个执行器

  • public QueryRunner(DataSource ds) :指定数据源(连接池中核心参数....)

  • 3)准备sql语句

  • String sql = "insert into/update/delete from 增删改查 /"

  • String sql = "select查询语句"

  • 4)执行sql

  • ---->使用反射完成

2.Commons-Dutils涉及常用的一些API (核心接口) 以及使用

  • 核心接口ResultSetHandler

  • org.apache.commons.dbtuls.hadnlers. 下面的所有类都是

  • 都是ResultSetHandler它的子实现类

  • BeanListHandler---->将查询的结果集的所有数据封装带List<实体类类型>集合中,

  • BeanHandler----> 将查询的某条记录封装到实体类中

  • ScalarHandler--->将查询的结果集处理的时候返回的单行单列的数据

3.前端三剑客

HTML
CSS
javascript:js
前端框架    
        jquery
        boostrap ----提供视图组件以及全局css样式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值