
JDBC接见数据库的基础步骤是什么? (引荐进修:java口试题目)
1,加载驱动
2,经由过程DriverManager对象猎取衔接对象Connection
3,经由过程衔接对象猎取会话
4,经由过程会话举行数据的增编削查,封装对象
5,封闭资本
说说preparedStatement和Statement的区分
1,效力:预编译会话比平常会话对象,数据库体系不会对雷同的sql语句不会再次编译
2,安全性:可以有用的防备sql注入进击!sql注入进击就是从客户端输入一些不法的特别字符,而使服务器端在组织sql语句的时刻依然可以准确组织,从而网络顺序和服务器的信息和数据。
比方:“select * from t_user where userName = ‘” + userName + “ ’ and password =’” + password + “’”
假如用户名和暗码输入的是’1’ or ‘1’=’1’ ; 则生产的sql语句是:
“select * from t_user where userName = ‘1’ or ‘1’ =’1’ and password =’1’ or ‘1’=’1’ 这个语句中的where 部份没有起到对数据挑选的作用。
说说事件的观点,在JDBC编程中处理事件的步骤。
1 事件是作为单个逻辑事情单位实行的一系列操纵。
2,一个逻辑事情单位必须有四个属性,称为原子性、一致性、断绝性和耐久性 (ACID) 属性,只要如许才成为一个事件
事件处理步骤:
3,conn.setAutoComit(false);设置提交体式格局为手工提交
4,conn.commit()提交事件
5,涌现异常,回滚 conn.rollback();
数据库衔接池的道理,为何要运用衔接池?
1,数据库衔接是一件费时的操纵,衔接池可以使多个操纵同享一个衔接。
2,数据库衔接池的基础思想就是为数据库衔接竖立一个“缓冲池”。预先在缓冲池中放入肯定数目的衔接,当须要竖立数据库衔接时,只需从“缓冲池”中掏出一个,运用终了以后再放归去。
我们可以经由过程设定衔接池最大衔接数来防备体系无尽的与数据库衔接。更为重要的是我们可以经由过程衔接池的治理机制看管数据库的衔接的数目、运用状况,为体系开发,测试及机能调解供应依据。
3,运用衔接池是为了进步对数据库衔接资本的治理
JDBC的脏读是什么?哪一种数据库断绝级别能防备脏读?
当我们运用事件时,有可能会涌现如许的状况,有一行数据刚更新,与此同时另一个查询读到了这个刚更新的值。如许就致使了脏读,由于更新的数据还没有举行耐久化,更新这行数据的营业可能会举行回滚,如许这个数据就是无效的。
数据库的TRANSACTIONREADCOMMITTED,TRANSACTIONREPEATABLEREAD,和TRANSACTION_SERIALIZABLE断绝级别可以防备脏读。
什么是幻读,哪一种断绝级别可以防备幻读?
幻读是指一个事件屡次实行一条查询返回的倒是差别的值。假定一个事件正依据某个前提举行数据查询,然后另一个事件插进去了一行满足这个查询前提的数据。
以后这个事件再次实行了这条查询,返回的效果集中会包括刚插进去的那条新数据。这行新数据被称为幻行,而这类征象就叫做幻读。
只要TRANSACTION_SERIALIZABLE断绝级别才防备发生幻读。
JDBC的DriverManager是用来做什么的?
JDBC的DriverManager是一个工场类,我们经由过程它来建立数据库衔接。当JDBC的Driver类被加载进来时,它会本身注册到DriverManager类内里
然后我们会把数据库设置信息传成DriverManager.getConnection()要领,DriverManager会运用注册到它内里的驱动来猎取数据库衔接,并返回给挪用的顺序。
execute,executeQuery,executeUpdate的区分是什么?
1,Statement的execute(String query)要领用来实行恣意的SQL查询,假如查询的效果是一个ResultSet,这个要领就返回true。假如效果不是ResultSet,比方insert或许update查询,它就会返回false。
我们可以经由过程它的getResultSet要领来猎取ResultSet,或许经由过程getUpdateCount()要领来猎取更新的纪录条数。
2,Statement的executeQuery(String query)接口用来实行select查询,而且返回ResultSet。纵然查询不到纪录返回的ResultSet也不会为null。
我们平常运用executeQuery来实行查询语句,如许的话假如传进来的是insert或许update语句的话,它会抛出错误信息为 “executeQuery method can not be used for update”的java.util.SQLException。 ,
3,Statement的executeUpdate(String query)要领用来实行insert或许update/delete(DML)语句,或许 什么也不返回,关于DDL语句,返回值是int范例,假如是DML语句的话,它就是更新的条数,假如是DDL的话,就返回0。
只要当你不确定是什么语句的时刻才应当运用execute()要领,不然应当运用executeQuery或许executeUpdate要领。
SQL查询出来的效果分页展现平常怎么做?
Oracle:
select * from (select *,rownum as tempid from student ) t where t.tempid between ” + pageSize*(pageNumber-1) + ” and ” + pageSize*pageNumber
MySQL:
select * from students limit ” + pageSize*(pageNumber-1) + “,” + pageSize; sql server: select top ” + pageSize + ” * from students where id not in + (select top ” + pageSize * (pageNumber-1) + id from students order by id) + “order by id;
JDBC的ResultSet是什么?
在查询数据库后会返回一个ResultSet,它就像是查询效果集的一张数据表。
ResultSet对象保护了一个游标,指向当前的数据行。入手下手的时刻这个游标指向的是第一行。假如挪用了ResultSet的next()要领游标会下移一行,假如没有更多的数据了,next()要领会返回false。可以在for轮回中用它来遍历数据集。
默许的ResultSet是不能更新的,游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以建立可以回滚或许可更新的ResultSet
当生成ResultSet的Statement对象要封闭或许从新实行或是猎取下一个ResultSet的时刻,ResultSet对象也会自动封闭。
可以经由过程ResultSet的getter要领,传入列名或许从1入手下手的序号来猎取列数据。
以上就是javaweb口试题目(2)的细致内容,更多请关注ki4网别的相干文章!