基於spring-mybatis的swing介面程式開發
阿新 • • 發佈:2019-01-26
框架設計
- swing
- spring
- mybatis
開發工具
- eclipse
- maven
- windowsbuilder外掛(用來視覺化開發介面程式)
- jdk8
- mysql5.6
開發步驟
- 建立空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);