Java部分常见面试题(二)

1:如何进行数据库查重
使用子查询 结合 group by having count 关键字
例:单字段查询重复率

select * from 查询表 where 查询字段 in
     (select 查询字段 from 查询表 group by 查询字段 having count(查询字段)>1);

删除重复数据

delete from 查询表
group by 查询字段
having count(查询字段) >1

多字段查询重复率

select * from  查询表  where (字段1,字段2) in
     (select 字段1,字段2 from 查询表 group by 字段1,字段2 where having count(字段1,字段2)>1);

2:数据库事务
数据库开启事务命令:
start transaction :开启事务
rollback:回滚事务
commit:提交事务
事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 数据库默认事务是自动提交的,也就是发一条sql它就执行一条;
JDBC中使用事务
当Jdbc程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL语句。若想关闭这种默认提交方式,让多条SQL在一个事务中执行,可使用下列的JDBC控制事务语句:
Connection.setAutoCommit(false); //开启事务(start transaction)
Connection.rollback(); //回滚事务(rollback)
Connection.commit(); //提交事务(commit)
3:springMvc的事务处理
导入相关依赖包 并在application.xml的配置文件中配置事务管理

<!--配置事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

详细见 https://blog.csdn.net/sanshipianyezi/article/details/77278074
在SSM项目中,有关事务回滚的处理,在service层中抛出RuntimeException即可,代码如下:

@Transactional(readOnly = false)
public String test() throws RuntimeException{
  //TODO
}

4:pom文件中排除重复jar包
1;在引用jar包时加上exclusion节点,排除某个jar包即可
2:用 dependencyManagement 选择高版本

<dependencyManagement>
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>某某包</artifactId>
<version>版本</version>
</dependency>
</dependencies>
</dependencyManagement>

3:用 exclusions 方法

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <exclusions>
      <exclusion>
         <groupId>commons-logging</groupId>
         <artifactId>commons-logging</artifactId>
      </exclusion>
   </exclusions>
</dependency>

5:springMvc使用注解的作用
1:减少xml的配置
2:方便service层 Dao层controller层之间的调用
3:简化工作流程
6:什么是事件冒泡
点击一个链接,触发绑定在链接上的click事件,进而触发到这元素的click事件
7:冒泡排序的算法思想
从最后两个比较将小的往前放再将倒数两个这样比较 一直将最小的放在第一位 再循环比较后面的值 直至大小排列顺序正确

猜你喜欢

转载自blog.csdn.net/qq_41193701/article/details/92800795