Java学习笔记——三层架构
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 }
以上是 Java学习笔记——三层架构 的全部内容, 来源链接: utcz.com/z/390457.html