Alt+Shift+J————————添加作者/多行注释
导包——————————Ctrl+Shift+O
查看源码————————光标放在上面+Ctrl+T
给方法加多行注释——————在方法的上面一行输 / 然后回车
- 实现一个接口,新建一个implement包,包里新建javaClass,点击add,搜索并选中将要实现的接口名字,点击finish
- try、catch/throw异常——————Ctrl+1
- JDBCUtil02.getConn();——>Connection conn = JDBCUtil02.getConn();光标放在getconn()上,Ctrl+1选择assign statement to new local variable
- 接口定义时如果没有定义抛异常,实现接口的子类也不能抛异常,子类如果需要抛异常,则必须要返回接口处定义方法抛异常
- Dao和Service两个包的区别:1.Dao只针对单一逻辑,是数据操作层面;2service针对复杂逻辑,是业务处理的层面;
两者关系:由Service去调用Dao里的方法来处理业务。 - static关键字解析:
{被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的
}
所有的静态方法和静态变量都可以通过对象访问(只要访问权限足够)。
C3P0连接池
创建C3P0Utils类,定义获取connection、释放connection的方法
//创建连接池,使用静态关键字修饰是为了直接使用类名·的方式调用
static CombopooledDataSource datasource = new CombopooledDataSource("mysql");
//从连接池取用一个连接
public static Connection getConnection(){
try{
return datasource.getConnection();
}catch(Exception e){
logger.error("Exception in c3p0Utils!",e);
throw new MyError("数据库连接错误",e);
}
}
//关闭资源
public static void release(Connection conn , Statement st , ResultSet rs){
closeRs(rs);
closeSt(st);
closeConn(conn);
}
//具体方法
//Result对象释放
private static void closeRs(ResultSet rs){
try {
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
}
//Statement对象关闭
private static void closeSt(Statement st){
try {
if(st != null){
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
st = null;
}
}
//连接对象关闭
private static void closeConn(Connection conn){
try {
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null;
}
}
}