class Singulation{
private static Singulation instance =null;
private Singulation(){
}
public static Singulation getinstance{
if(instance==null){
Synochronized(Singulation.class){
if(instance==null){
避免多次连接数据库上万次的IO消耗
静态内部类属于外部类的成员,new School.Teacher
非静态内部类属于外部类的实例的,new School().Teacher
class School{
class Teacher{
static class Teacher{
匿名实现类 创建一次,使用一次,方法内部创建一个类
public interface isayhello{
String sayhello(String name);
}
public class SayHello{
public static main(String[] args){
isayhello obj=new iayhello(){
public string sayHello(String name){return "hello"+name}}
System.out.priintln(obj.sayHello("hj"))}}
javabean 特殊的类,field 是private 利用set get 方法,与数据库中的表一一对应
domain层与javabean
Dao数据访问层 model响应前端
public class DAOFactory{
public static iTaskDAO getTaskDAO(){
return new TaskDAOImpl()}}
iTaskDAP taskDAO=DAOFactory.getTaskDAO();
Task task=taskDAO.findById(2);
Syso.println(task.getTaskName());
public class TaskDAOImpl implements ITaskDAO{
public Task findById(long taskId){
final Task task=new Task();
String sqsl="select*from task where task_id=?"
Object[] params=new Object[](taskId);
JDBCHelper jdbchelper=JDBCHelper.getInstance();
jdbchelper.excuteQuery(sql,params,new JDBCHelper.QueryCallback(){
public void process(ResultSet rs)throws Exception{
if(rs.next()){
long taskid=rs.getLong(1);
String taskName=rs.etString(2);
String createTime=rs.getString(3);
task.setTaskid(taskid);
task.settaskName(taskName);
return task;