面试 MVC MVC是三个单词的缩写分别为 模型(Model)视图(View)和控制Controller) MVC模式的目的就是实现Web系统的职能分工 Model层实现系统中的业务逻辑通常可以用JavaBean或EJB来实现 View层用于与用户的交互通常用JSP来实现 Controller层是Model与View之间沟通的桥梁它可以分派用户的请求并选择恰当的视图以用于显示同时它也可以解释用户的输入并将它们映射为模型层可执行的操作 MVC可与生活中什么对应起来 MVC有什么优点 低耦合性视图层和业务层分离这样就允许更改视图层代码而不用重新编译模型和控制器代码同样一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可因为模型与控制器和视图相分离所以很容易改变应用程序的数据层和业务规则 高重用性和可适用性随着技术的不断进步现在需要用越来越多的方式来访问应用程序MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码它包括任何WEB(HTTP)浏览器或者无线浏览器(wap)比如用户可以通过电脑也可通过手机来订购某样产品虽然订购的方式不一样但处理订购产品的方式是一样的由于模型返回的数据没有进行格式化所以同样的构件能被不同的界面使用例如很多数据可能用HTML来表示但是也有可能用WAP来表示而这些表示所需要的命令是改变视图层的实现方式而控制层和模型层无需做任何改变 较低的生命周期成本MVC使降低开发和维护用户接口的技术含量成为可能 快速的部署使用MVC模式使开发时间得到相当大的缩减它使程序员(Java开发人员)集中精力于业务逻辑界面程序员(HTML和JSP开发人员)集中精力于表现形式上 可维护性分离视图层和业务逻辑层也使得WEB应用更易于维护和修改 有利于软件工程化管理由于不同的层各司其职每一层不同的应用具有某些相同的特征有利于通过工程化工具化管理程序代码 你认为你比别人强的地方是什么 笔试 数据库方面 请说明IN和EXISTS的区别 IN 其实与等于相似比如in() 就是 = or = 的一种简单写法所以一般在元素少的时候使用IN如果多的话就用exists exists的用法跟in不一样一般都需要和子表进行关联而且关联时需要用索引这样就可以加快速度 测试表明exists效率更高 char和 varchar的区别 .CHAR 的长度是固定的而VARCHAR的长度是可以变化的 比如存储字符串abc;对于CHAR ()表示你存储的字符将占个字节(包括个空字符)而同样的VARCHAR ()则只占用个字节的长度只是最大值当你存储的字符小于时按实际长度存储 .CHAR的效率比VARCHAR的效率稍高 .目前VARCHAR是VARCHAR的同义词工业标准的VARCHAR类型可以存储空字符串但是oracle不这样做尽管它保留以后这样做的权利Oracle自己开发了一个数据类型VARCHAR这个类型不是一个标准的VARCHAR它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值如果你想有向后兼容的能力Oracle建议使用VARCHAR而不是VARCHAR char: 使用指定长度的固定长度表示的字符串比如char()则数据库会使用固定的个字节来存储数据不足为的字符串在其后补空字符varchar 在oracle中varchar跟char是一个类型sqlserver中varchar相当于oracle中的varcharvarchar 用实际字符数+个字节来存储的变长字符串比如一个字段定义为varchar()而实际存储的内容为A则数据库会用个字节来存储该字符串其中前两个字节用来存储字符的长度 在数据库中的字段由于一个字段大小不能超过一个block的长度所以varchar和char都是最大为个字节由于可能会存储汉字也就是一个字符用个字节来存储所以字段中最大定义为varchar()而在plsql中这个大小的限制变为左右这是因为表示其大小的字节只有两个 UNION和UNION ALL 的区别 其他的集合操作符如Intersect和Minus的操作和Union基本一致这里一起总结一下 Union对两个结果集进行并集操作不包括重复行同时进行默认规则的排序 Union All对两个结果集进行并集操作包括重复行不进行排序 Intersect对两个结果集进行交集操作不包括重复行同时进行默认规则的排序 Minus对两个结果集进行差操作不包括重复行同时进行默认规则的排序 可以在最后一个结果集中指定Order by子句改变排序方式 写一个用EXP命令通过system用户(密码是abc)到处YSS用户数据文件到FUNdmp以及到处Log文件FUN_logLog到C盘根目录 批处理 请描述smit命令功能 rem命令功能和有什么不同的地方 注释 Call命令的功能call命令调用的是一个过程还是一个文件? 调用bat文件 echo off 的功能 关闭程序执行过程的显示 Java方面 写出jdbc修改数据库表数据的各个步骤(代码实现) import javasql*; public class Accemp{ public static void main (String []args){ Connection con;//数据库连接对象(代表与一数据库连接) Statement stumt;// 语句对象(可以接收和执行一条sql语句) ResultSet rs;//结果集对象(保存查询返回的结果) //加载驱动 DriverManagerregisterDriver(new sunjdbcodbcJdbcOdbcDriver()); //建立一个数据库连接 con = DriverManagergetConnection(;jdbc:odbc:employee;); stmt = concreateStatement(); rs = stmtexecuteQuery(;select ename from xxx;); while(rsnext()){ Systemoutprint(rsgetString(;ename;)+; ;); }; } } 说明statement和Prepare statement 的区别写出代码 statement 用于执行一个静态sql语句并返回sql语句参数赋值 prepare statement 用于执行预编译的sql语句可为sql语句参数赋值 PS以上答案不一定全对只是个人总结如果有更好的答案还望不吝赐教谢谢 |