1. 程式人生 > >基於spring-mybatis的swing介面程式開發

基於spring-mybatis的swing介面程式開發

框架設計

  • swing
  • spring
  • mybatis

開發工具

  • eclipse
  • maven
  • windowsbuilder外掛(用來視覺化開發介面程式)
  • jdk8
  • mysql5.6

開發步驟

  1. 建立空maven工程,匯入maven依賴
   <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.0.2.RELEASE</spring.version>
<jackson.version>2.8.1</jackson.version> </properties> <dependencies> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version
>
${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency
>
<groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- 新增MyBatis依賴 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- 阿里巴巴的資料庫連線池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.16</version> </dependency> <!-- spring結成mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <!--報表依賴--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.8</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.8</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>

2.可以選擇從後向前開發

先開發dao層,可以使用逆向工程生成資料庫的實體類及mapper檔案
根據業務需求開發service介面層,注意@service註解載入介面實現類上
開發controller層,使用@controller介面

3.開發使用者介面

元件繫結事件
Form設計器中選擇要新增繫結事件的元件,右鍵選擇add event handle 後選擇相應的事件
元件輸入資料獲取
通過元件的getText()獲取
後臺資料獲取
可以使用SpringBeanFactory.getInstance().getBean(“areaController”)方式獲取介面,給 JComboBox提供Item.實現名稱和id的對應.

 private void getComboBoxArea(){
        AreaController areaController = (AreaController) SpringBeanFactory.getInstance().getBean("areaController");
        List<Area> areas = areaController.listAllAreas();//查詢地址物件
        this.areaKeys = new String[areas.size()];//地址名陣列
        this.areaIds = new int[areas.size()];//地址id陣列
        for (int i = 0; i < areaIds.length; i++) {
            areaKeys[i]= areas.get(i).getName();
            areaIds[i]= areas.get(i).getId();
        }
        System.out.println(JSONUtils.toJSONString(Arrays.toString(areaKeys)));
    }

初始化介面時呼叫:

 getComboBoxArea();
 JComboBox<String> areaName = new JComboBox<String>();
 areaName.setBounds(174, 89, 120, 26);
 areaName.setModel(new javax.swing.DefaultComboBoxModel<String>(areaKeys));
 contentPane.add(areaName);