每天几道面试题SSM面试题
SSM面試題
1、#{}和¥{}的區別?
${}會產生SQL注入,#{}不會產生SQL注入問題
#{}匹配的是一個占位符,相當于JDBC中的一個?,會對一些敏感的字符進行過濾,編譯過后會對傳遞的值加上雙引號,因此可以防止SQL注入問題。
${}匹配的是真實傳遞的值,傳遞過后,會與sql語句進行字符串拼接。${}會與其他sql進行字符串拼接,不能預防sql注入問題。
2、spring mvc的主要組件
1、前端控制器(DispatcherServlet)
2、處理器映射器(HandlerMapping)
3、處理器適配器(HandlerAdapter)
4、后端控制器(處理器)(Handler)
5、視圖解析器(ViewResolver)
3、spring DI 的三種方式
1. 接口注入
2. Setter方法注入
3. 構造方法注入
4、spring主要使用了什么模式
1.工廠模式
2.模版模式
3.代理模式
4.策略模式
5.單例模式
5、模糊查詢like語句該怎么寫
第1種:在Java代碼中添加sql通配符。
string a = “%smi%”; list<name> names = mapper.selectlike(a); <select id=”selectlike”>select * from foo where bar like #{value} </select>第2種:在sql語句中拼接通配符,會引起sql注入
string a = “smi”; list<name> names = mapper.selectlike(a); <select id=”selectlike”>select * from foo where bar like "%"${value}"%" </seect>6、如何執行批量注入
利用MyBatis拼接sql語句:
INSERT INTO userTable (id,username,password) VALUES ('1','A','123'),('2','B','456'),....Service層
List<User> userList=new ArrayList<>(); ... userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); ... UserDao.addUsers(userList)Dao層
public void addUsers(List<User> list);Mapper代碼如下:
<insert id="方法名">INSERT INTO userTable (id,username,password)VALUES<foreach collection="list" item="u" separator=",">(#{u.id},#{u.username},#{u.password})</foreach></insert>7、請說說MyBatis的工作原理
先封裝SQL,接著調用JDBC操作數據庫,最后把數據庫返回的表結果封裝成Java類。
8、獲取上一次自動生成的主健值
9、說一下spring的事務隔離
1、Default:用底層數據庫的設置隔離級別,數據庫設置的是什么我就用什么;
2、未提交讀(read uncommited) :臟讀,不可重復讀,虛讀都有可能發生。
是最低的事務隔離級別,它允許另外一個事務可以看到這個事務未提交的數據。
3、已提交讀 (read commited):避免臟讀。但是不可重復讀和虛讀有可能發生。
保證一個事物提交后才能被另外一個事務讀取。另外一個事務不能讀取該事物未提交的數據。
4、可重復讀 (repeatable read) :避免臟讀和不可重復讀.但是虛讀有可能發生。
保證多次讀取同一個數據時,其值都和事務開始時候的內容是一致,禁止讀取到別的事務未提交的數據,MySQL 的默認級別。
5、串行化讀 (serializable) :避免以上所有讀問題.
這是花費最高代價但最可靠的事務隔離級別。事務被處理為順序執行。
Mysql 默認:可重復讀
Oracle 默認:已提交讀
6、臟讀 :表示一個事務能夠讀取另一個事務中還未提交的數據。比如,某個事務嘗試插入記錄 A,此時該事務還未提交,然后另一個事務嘗試讀取到了記錄 A。
7、不可重復讀 :是指在一個事務內,多次讀同一數據。
8、幻讀 :指同一個事務內多次查詢返回的結果集不一樣。一個事務讀到另一個事務已提交的insert數據。
10、spring IOC的實現機制
1、初始化spring容器
2、掃描包下所有calss
3、解析calss中的注解信息
4、封裝類反射后實例化類對象
5、以beanld,bean實例化類對象形式保存集合(–本地調用某個bean中的方法)
6、getbean
7、bean的實例化類對象
8、bean的具體方法及執行結果
總結
以上是生活随笔為你收集整理的每天几道面试题SSM面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 修改nginx端口号_分
- 下一篇: java peek函数_基础篇:JAVA