热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

一个根据配置文件对数据库进行增删改查的三层架构解决方法

最近在项目中遇到一个问题,数据库中有很多张需要由人手工维护的基本数据表,而这些数据表每一个都需要人工对其中的数据进行维护。在开发的过程中发现基本上每个页面需要做的控件相差不大,区别在于不同的界面对应的表和字段不同,而基本的代码处理流程是一

最近在项目中遇到一个问题,数据库中有很多张需要由人手工维护的基本数据表,而这些数据表每一个都需要人工对其中的数据进行维护。在开发的过程中发现基本上每个页面需要做的控件相差不大,区别在于不同的界面对应的表和字段不同,而基本的代码处理流程是一

最近在项目中遇到一个问题,数据库中有很多张需要由人手工维护的基本数据表,而这些数据表每一个都需要人工对其中的数据进行维护。在开发的过程中发现基本上每个页面需要做的控件相差不大,区别在于不同的界面对应的表和字段不同,而基本的代码处理流程是一至的,所以这就促使我想到能不能有更好一点的办法简化这个开发过程。

用户界面层,我们最重点的是用户操作界面的控件要和数据库的字段匹配,在开发过程中还有,如果数据库的字段有变化的话代码修改越少越好。所以最好UI可以根据数据库的字段自动生成相应的控件。

业务层,可能会做一些基本的数据校验之类的工作,由于在需求中重点是UI和数据库访问所以业务层的功能应该会相对简单一些。

数据库访问层,在数据库的操作语句中我们也需要知道数据库的字段,以此生成增删改查的语句。

在这里我打算使用配置文件来进行配置。

在这里我也想到过可以通过DAO来获得数据库的字段和字段类型,但是转念一想再数据库中我们很多时候可能会使用一样的SQL类型来存储不一样的数据类型,比如使用varchar可以存储字符串,但是也有人使用varchar存储枚举型数据,可能不同的人会使用不同的控件显示对应同一个SQL数据类型。所以这里我打算适当的使用一些配置来对UI显示数据的控件进行配置。

想到这里,在配置文件中就需要有这样一些配置项,1.数据库的字段。2.这个字段可以是用什么样地数据类型存储的3.在界面上是用什么控件来展示的。

这里我打算使用java来做开发,但是这种思想我觉得其他任何语言都是可以考虑使用的。所以如果读者们有什么意见的话也可以一起交流。

下一步是要对配置文件进行定型了。

2014-03-20



	
			
		
			
		
		
		
		
	

配置结构则需要考虑什么控件需要在界面上展示,怎么样展示,目前还是比较简单的控件只是输入文本的。

由于在每个界面上都有的保存,删除等的按钮,所以就添加一个的通用界面吧,当然直接在JFrame上画开始也可以。

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import javax.swing.JButton;
import java.util.TreeMap;
public class ProjectForm extends JFrame{
	public String nameString;
	public JPanel panel ;
	public TreeMap TextFieldList = new TreeMap();
	public ProjectForm() {
		
		panel = new JPanel();
		getContentPane().add(panel, BorderLayout.CENTER);
		panel.setLayout(null);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBounds(82, 5, 265, 33);
		panel.add(panel_1);
		
		JButton btnNew = new JButton("New");
		panel_1.add(btnNew);
		
		JButton btnSave = new JButton("Save");
		panel_1.add(btnSave);
		
		JButton btnClear = new JButton("Clear");
		panel_1.add(btnClear);
		
		JButton btnDelete = new JButton("Delete");
		panel_1.add(btnDelete);
	}
}
在生成的时候根据不同的表名向上添加控件。
import java.io.File;
import java.util.List;
import javax.swing.JLabel;
import javax.swing.JTextField;
import org.jdom2.*;
import org.jdom2.input.SAXBuilder;
public class FormCreator {
	static ProjectForm CreateForm(String name)
	{
		ProjectForm form = new ProjectForm();
		form.nameString = name;
		String filename = "D:\\work eclipse\\1.xml";
		int topx = 20;
		int topy = 80;
		int Labelwidth = 100;
		int LabelHeight = 15;
		int gapy = 30;
		int textwidth = 300;
		try 
		{
			SAXBuilder builder = new SAXBuilder();
			org.jdom2.Document document;
			File file = new File(filename);
			document = builder.build(file);
			Element rootElement = document.getRootElement();
			List tableList = rootElement.getChildren();
			
			for (int i = 0; i  tablefeilds = node.getChildren();
				for(int j=0;j UIfeilds = feildnode.getChildren();
					for(int k=0;k
之后则应该还有BLL和DAL的部分。						        
推荐阅读
author-avatar
cecilysun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有