me, age, FROM Person_Tbl”; ps = con.prepareStatement(sql);
//step 4 :执行查询语句,获取结果集;
rs = ps.executeQuery();
//step 5:处理结果集—输出结果集中保存的查询结果;
while (rs.next()){
System.out.print(“id = ” + rs.getLong(“id”));
System.out.print(” , fname = ” + rs.getString(“fname”));
System.out.print(” , lname = ” + rs.getString(“lname”));
System.out.print(” , age = ” + rs.getInt(“age”)); }
/************************JDBC 修 改*********************/
sql = “UPDATE Person_Tbl SET age=23 WHERE id = ”; ps = con.prepareStatement(sql);
ps.setLong(1, 88);
int rows = ps.executeUpdate();
System.out.println(rows + ” rows affected.”);
} catch (Exception e){
e.printStackTrace();
} finally{
try{
//关闭数据库连接,以释放资源。
con.close();
} catch (Exception e1) {
E1.printStackTrace();
} } }
31、Statement,PreparedStatement,CallableStatment的区别
答: 区别有以下几点: 1) Statement是PreparedStatement和CallableStatement的父类; 2)Statement是直接发送Sql语句到数据库,事先没有进行预编译。
PreparedStatement会将sql进行预编译,当sql语句要重复执行时,数据库会调用以前预编译好的sql语句,所以PreparedStatement在性能方面会更好;
3)PreparedStatement在执行sql时,对传入的参数可以进行强制的类型转换。以保证数据格式与底层的数据库格式一致。
4)CallableStatement 适用与存储过程的查询表达语句
aop称为是面向切面编程,那么对它最好的解释就是拦截器了,而他的aop原理呢就是:在执行某些代码之前执行另外的代码,是程序变的灵活,扩展性更灵活,可以随意的删除和添加某些功能!你可以参照filter过滤器,其实filter就是一个很好的对aop的解释
AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面编程。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。
在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。可以更好的将本来不应该粘合在一起的功能分离开。
1.定义切入点:spring根据需要织入通知的类和方法来定义切入点
通知是根据他们的特性织入目标类和方法的,如类名和方法名
2.静态切入点:spring为创建静态切入点提供了方便的父类–StaticMethodMatcherPointcut。
1)要创建自制的静态切入点,只需要继承这个类,实现isMatch()方法
2)当被调用方法的名字与给出的映射名字匹配时,切入点才匹配
3)使用明确的方法名,也可以在名字的起始和结束处使用通配符*。
81、现有1~100共一百个自然数,已随机放入一个有98个元素的数组a[98]。要求写出一个尽量简单的方案,找出没有被放入数组的那2个数,并在屏幕上打印这2个数。注意:程序不用实现自然数随机放入数组的过程。 答:
int[] b = new int[]{….存入98个随机的1~100的整数};
int[] a = new int[100];
for(int t : b) a[t-1]=t;
for(int t=0; t < a.length; t++)
if(a[t]==0) System.out.println(t+1);
84、在web应用开发过程中经常遇到输出某种编码的字符,如从GBK到iso8859-1等,如何输出一个某种编码的字符串?
答:public static String translate(String str) {
String tempStr = “”;
try {
tempStr = new String(str.getBytes(“GBK”), “ISO-8859-1″);
tempStr = tempStr.trim();
} catch (Exception e) {
System.err.println(e.getMessage()); }
return tempStr; }
87、JAVA实现一种排序
答:用插入法进行排序代码如下
package com.tarena;
import java.util.*;
class InsertSort {
ArrayList list;
public InsertSort(int num,int mod) {
list = new ArrayList(num);
Random rand = new Random();
System.out.println(“The ArrayList Sort Before:”);
for (int i=0;i
list.add(new Integer(Math.abs(rand.nextInt()) % mod + 1)); System.out.println(“list["+i+"]=”+list.get(i)); } }
public void SortIt() {
Integer tempInt; int MaxSize=1;
for(int i=1;i
tempInt = (Integer)list.remove(i); if(tempInt.intValue()>=((Integer)list.get(MaxSize-1)).intValue()) { list.add(MaxSize,tempInt);
MaxSize++;
System.out.println(list.toString());.
} else { for (int j=0;j
if (((Integer)list.get(j)).intValue()>=tempInt.intValue()) {
list.add(j,tempInt); MaxSize++; System.out.println(list.toString()); break;