面向切面编程(如:写日志等)、批量插入N个sql语句

OOP: 面向对象编程 对象、类、接口、抽象、封装、多态;

AOP: 面向切面编程 切面(aspect):一个关注点的模块化。 关注点可能是一个类,也可以是一个方法;

连接点(Joinpoint):在程序执行过程中某个特定的点,比如调用的方法。

通知( Advice): 在连接的连接点上执行的特定动作,这个动作就叫通知;

切入点(Pointcut):匹配连接点的断言。 这个断言可以看成一个表达式;

引入(Introduction): 对目标的方法或属性,引入一个代理的对象;

目标对象(Target Object): 切入点执行的对象;

AOP代理(AOP Proxy): 执行目标对象的代理对象;

织入(Weaving): 把目标对象中加入的通知叫织入;

spring中的通知一共有5个: before 前置型通知 MethodBeforeAdvice after 后置型通知 AfterAdvice Interceptor 环绕型通知 MethodInterceptor returning 最终型通知 AfterReturningAdvice throws 异常型通知 ThrowsAdvice

 

spring中的通知一共有5个:

before 前置型通知

MethodBeforeAdvice after

后置型通知 AfterAdvice Interceptor

环绕型通知 MethodInterceptor returning

最终型通知 AfterReturningAdvice throws

异常型通知 ThrowsAdvice

 

/**
* 批量插入N个sql语句
* @param sql
* @return
* @throws Exception
*/
public boolean addBank(Object [] sql){
Connection conn = null;
Statement st = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USER, PWD);

conn.setAutoCommit(false); //把自动提交改成手动提交

st = conn.createStatement();
for (int i = 0; i < sql.length; i++) {
System.out.println("------sql:"+sql[i]);
st.addBatch(sql[i].toString());
}
st.executeBatch(); //执行批处理的sql语句

conn.commit(); //提交;

System.out.println("---新增成功....");
return true;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();

//回滚代码
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}

} finally{
try {
st.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}


public static void main(String[] args) throws Exception{
// String sql = "insert into user5.bankcard(card,username,password,money) values('1','11','11',2343)";
// new BankCardDao().addBank(sql);

List<String> list = new ArrayList<>();
for (int i = 14; i < 17; i++) {
String sql = "insert into user5.bankcard(card,username,password,money) values('"+i+"','user"+i+"','11',2343)";
list.add(sql);
}
list.add("insert into user5.bankcard(card,username,password,money) values('12','11','11',2343)");
new BankCardDao().addBank(list.toArray());

}

 

posted @ 2017-06-29 12:37  hdsfakjhf  阅读(391)  评论(0编辑  收藏  举报