项目笔记(物业管理系统)

一、项目分为四部分

1、总体设计,检查工作

2、数据库设计,框架设计

3、具体编码

4、界面设计,系统调试

二、连接mysql数据库

我用MySQL装载驱动的方式连接数据库,工程中导入mysql-connector-java-5.1.25-bin.jar

(1)装载驱动程序Class.forName("com.mysql.jdbc.Driver"); 

(2)定义数据库的地址String DBURL="jdbc:mysql://localhost:3300/wy",jdbc:<子协议>:<子名称>

  子协议:数据库驱动程序名或数据库联结机制名。子名称:根据子协议而变化,一般由4部分组成:驱动程序类型,数据库  ip,端口号,数据库名字

(3)连接数据库DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); 

(4)建立statement对象statement=connection.createStatement();

(5)声明并执行sql语句ResultSet rs=statement.executeQuery(sql1);

(6)对结果集进行处理

private static final String DBDRIVER="com.mysql.jdbc.Driver";          //驱动类类名
	private static final String DBURL="jdbc:mysql://localhost:3300/wy";    //连接URL
	private static final String DBUSER="root";                             //数据库用户名
	private static final String DBPASSWORD="12345";                         //数据库密码
	private static Connection connection=null;   //声明一个连接对象
	
	public static Connection getConnection() {      //连接数据库
		try {
			Class.forName(DBDRIVER);       //注册驱动
			connection=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); //获得连接对象
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return connection;
	}
三、设计登陆页面,验证

1、Login方法中Container container=getContentPane();获取当前JPanel,在他的上面添加组件

2、注意布局(setLayout方法)

3、为按钮添加事件okButton.addActionListener,做出响应。

4、验证,查询数据库user表单,与当前输入的比对,正确则弹出主界面

四、JTable,JSCrollPanel控件,AbstractTableModel对象

在JTable表格控件中,数据 与 表格 是分开的,这个分开的意思就是:表格内的数据是单独存放的,从数据库表中读取的数据暂存在Vector对象中,在Java中 JTable的数据是以AbstractTableModel表模式的方式存放的,这个AbstractTableModel就是用来存放数据的,当Table初始化的时候通过AbstractTableModel获取表格的 行数、列数、列标题、以及每个单元格存放的数据,于是当表格现实的时候就可以显示出对应的数据了。AbstractTableModel是抽象类,实现如下方法

JTable table;
		JScrollPane scroll;
		tm=new AbstractTableModel() {			
			@Override
			public Object getValueAt(int row, int column) {
				if(!vector.isEmpty()){
					return ((Vector)vector.elementAt(row)).elementAt(column);
				}else
				return null;
			}			
			@Override
			public int getRowCount() {
				// TODO Auto-generated method stub
				return vector.size();
			}			
			@Override
			public int getColumnCount() {
				// TODO Auto-generated method stub
				return title.length;
			}
			public String getColumnName(int column){ 
				return title[column];
			}
			public Class getColumnClass(int c){ 
				return getValueAt(0,c).getClass(); 
			}//取得列所属对象类 
		};
		table=new JTable(tm);
		table.setToolTipText("Display Query Result");
		table.setAutoResizeMode(table.AUTO_RESIZE_OFF);
		table.setCellSelectionEnabled(false);
		table.setShowHorizontalLines(true);
		table.setShowVerticalLines(true);
		scroll=new JScrollPane(table);
		scroll.setBounds(6,20,540,250);
		tableJPanel.add(scroll);
	}
五、对数据库进行增删改查

add:"insert into table_name(district_id,....)values("+Integer.parseInt(field1.getText())+.....

delete:"delete from community_info where district_id="+Integer.parseInt(field1.getText());

change:"update set district_id="+Integer.parseInt(field1.getText())+....+"WHERE district_id="+Integer.parseInt(field1.getText()); 

search:"select * from building_info where district_id="+Integer.parseInt(f1.getText());

update:"select * from building_info";
六、在JPanel中添加图片

         imageIcon = new ImageIcon("B:/p1.jpg"); //写入文件路径
	       imageLabel = new JLabel(imageIcon);         //初始化JLabel
	       jpanel = new JPanel();
	       this.add(BorderLayout.CENTER,jpanel);
	       this.setVisible(true);  //设置为显示
<span style="white-space:pre">	</span>       this.pack();
<span style="white-space:pre">	</span>       //设置jframe的大小
	       this.setBounds(new Rectangle(100,100,imageIcon.getIconWidth(),imageIcon.getIconHeight()));  
	        jpanel.add(BorderLayout.CENTER,imageLabel);



展开阅读全文

没有更多推荐了,返回首页