Layer:
UI层: user interface 用户接口层
Biz层: service business login layer 业务逻辑层
DAO层: Date Access Object 数据访问层
1.建立三层架构
UI层(对应包ui):这里就是一个简单的测试类
Biz层(对应包service):包括实体类的service层接口IGradeService和其实现类(impl包下)GradeServiceimpl
DAO层(对应包dao):BaseDAO工具类和实体类的dao层接口IGradeDAO和其实现类(impl包下)GradeDAOimpl
BaseDAO代码:
1 package cn.happy.dao; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 8 /** 9 * database Data Access Object 10 * 数据库访问工具类 11 * Created by yanshaochen on 17-7-25. 12 */ 13 public class BaseDAO { 14 static final String URL="jdbc:mysql://127.0.0.1:3306/t14"; 15 static final String DRIVER="com.mysql.jdbc.Driver"; 16 static final String USR="root"; 17 static final String PASSWORD="root"; 18 private Connection con=null; 19 private PreparedStatement ps=null; 20 private ResultSet rs=null; 21 //getConnection 22 public Connection getConnection() throws Exception { 23 Class.forName(DRIVER); 24 if(con==null||con.isClosed()){ 25 con= DriverManager.getConnection(URL,USR,PASSWORD); 26 } 27 return con; 28 } 29 //close rs,ps,con 30 public void closeResources() throws Exception { 31 if(rs!=null) 32 rs.close(); 33 if(ps!=null) 34 ps.close(); 35 if(con!=null) 36 con.close(); 37 } 38 //executeUpdate 39 public int executeUpdate(String sql,Object... objs) throws Exception { 40 int count=0; 41 getConnection(); 42 ps=con.prepareStatement(sql); 43 if(objs!=null){ 44 for (int i=0;i<objs.length;i++){ 45 ps.setObject(i+1,objs[i]); 46 } 47 }48 count=ps.executeUpdate(); 49 return count; 50 } 51 //executeQuery 52 public ResultSet executeQuery(String sql,Object... objs) throws Exception { 53 getConnection(); 54 ps=con.prepareStatement(sql); 55 if(objs!=null){ 56 for (int i=0;i<objs.length;i++){ 57 ps.setObject(i+1,objs[i]); 58 } 59 }60 rs = ps.executeQuery(); 61 return rs; 62 } 63 }
实体类代码:
1 package cn.happy.entity; 2 3 /** 4 * Created by yanshaochen on 17-7-25. 5 */ 6 public class Grade { 7 private String gradeName; 8 9 public String getGrade() { 10 return gradeName; 11 } 12 13 public void setGrade(String gradeName) { 14 this.gradeName = gradeName; 15 } 16 }
Biz层接口代码:
1 package cn.happy.service; 2 3 import cn.happy.entity.Grade; 4 5 /** 6 * Created by yanshaochen on 17-7-25. 7 */ 8 public interface IGradeService { 9 boolean addGrade(Grade grade) throws Exception; 10 }
实现类代码(与dao层联系):
1 package cn.happy.service.impl; 2 3 import cn.happy.dao.IGradeDAO; 4 import cn.happy.dao.impl.GradeDAOImpl; 5 import cn.happy.entity.Grade; 6 import cn.happy.service.IGradeService; 7 8 /** 9 * Created by yanshaochen on 17-7-25. 10 */ 11 public class GradeServiceImpl implements IGradeService { 12 IGradeDAO dao=new GradeDAOImpl(); 13 @Override 14 public boolean addGrade(Grade grade) throws Exception { 15 return dao.addGrade(grade); 16 } 17 }
DAO层接口代码:
1 package cn.happy.dao; 2 3 import cn.happy.entity.Grade; 4 5 /** 6 * Created by yanshaochen on 17-7-25. 7 */ 8 public interface IGradeDAO { 9 boolean addGrade(Grade grade) throws Exception; 10 }
实现类代码:
1 package cn.happy.dao.impl; 2 3 import cn.happy.dao.BaseDAO; 4 import cn.happy.dao.IGradeDAO; 5 import cn.happy.entity.Grade; 6 7 /** 8 * Created by yanshaochen on 17-7-25. 9 */ 10 public class GradeDAOImpl extends BaseDAO implements IGradeDAO{ 11 @Override 12 public boolean addGrade(Grade grade) throws Exception { 13 boolean flag=false; 14 String sql="insert into grade(gradeName)values(?);"; 15 int count = executeUpdate(sql,grade.getGrade()); 16 if(count>0){ 17 flag=true; 18 } 19 return flag; 20 } 21 }
测试类代码:
1 package cn.happy.ui; 2 3 import cn.happy.entity.Grade; 4 import cn.happy.service.IGradeService; 5 import cn.happy.service.impl.GradeServiceImpl; 6 7 /** 8 * Created by yanshaochen on 17-7-25. 9 */ 10 public class MyMain { 11 public static void main(String[] args) throws Exception { 12 Grade grade = new Grade(); 13 grade.setGrade("T21"); 14 IGradeService igs=new GradeServiceImpl(); 15 boolean isSuccess = igs.addGrade(grade); 16 if(isSuccess){ 17 System.out.println("添加成功!"); 18 }else { 19 System.out.println("添加失败!"); 20 } 21 } 22 }