JDBC访问数据库的基本步骤是什么?
加载驱动
通过DriverManager对象获取连接对象Connection
通过连接对象获取会话
通过会话进行数据的增删改查,封装对象
关闭资源
说说PreparedStatement和Statement的区别?
效率:预编译会话比普通会话对象,数据库系统不会对相同的SQL语句再次翻译
安全性:可以有效的避免SQL注入攻击!SQL注入攻击就是从客户端输入一些非法的特殊字符,而使服务器端在构造SQL语句的时候仍能够正确构造,从而收集程序和服务器的信息和数据
数据库连接池的原理。为什么要使用连接池。
数据库连接是一件费时的操作,连接池可以使多个操作共享一个链接。
数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接数量、使用情况,为系统开发,测试及性能调整提供数据。
使用连接池是为了提高对数据库连接资源的管理。
什么是事务
就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行就可以使用事务。
数据库事务的四个特性
指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。
drop,delete与truncate的区别
drop直接删掉表
truncate删除表中数据,再插入时自增长id又从1开始
delete删除表中数据,可以加where子句
查询语句不同元素(where、limit、group by、having等等)执行先后顺序
标准SQL规范中它们的顺序依次为from->where->group by->having->select->order by->limit
左连接、右连接、内连接和全外连接的区别
左连接:返回左表中的所有记录和右表中连接字段相等的记录
右连接:返回右表中的所有记录和坐标中连接字段相等的记录
内连接:只返回两个表中连接字段相等记录
全外连接:返回左右表中连接字段相等的记录和剩余所有记录