⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jbauto.java

📁 实体对象javabean的自动生成工具。用于生成数据库表单的javabean程序
💻 JAVA
字号:

import java.sql.*;
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JBAuto{

	public static String transform(String type){
	  int length=type.length();
	  StringBuffer sb=new StringBuffer(type);
		String st=sb.substring(0,1);
		String si=sb.substring(1,length);
		String sr=st.toUpperCase();
		String tran=sr+si;
		return tran;
		}
				   
				  
  public static String JDPrivate(String[] type,String[] name){
	  String Pri[]=new String[type.length];
		String thePrivate=" ";
		for(int i=1;i<type.length;i++){
		   if(type[i]=="String"){
		     Pri[i]="\n\tprivate "+type[i]+" "+name[i]+"=\"\""+";";
			 }
			 else{
			   Pri[i]="\n\tprivate "+type[i]+" "+name[i]+";";
			 }	
       thePrivate+=Pri[i];		
		}
		String Priother="\n\n\tprivate Connection con;\n";
		thePrivate+=Priother;
		return thePrivate;
	}
	
	
	
	public static String JDConnect(String drv,String url,String user,String password){
	  String theConnect="\n\tpublic void setConnection()throws SQLException{\n"+
		                  "\t\ttry{\n"+
                      "\t\t\tClass.forName(\""+drv+"\");\n"+
                      "\t\t}\n"+
                      "\t\tcatch(ClassNotFoundException ce){\n"+
                      "\t\t\tSystem.out.println(\"SQLException:\"+ce.getMessage());\n"+
		                  "\t\t\treturn;\n"+
                      "\t\t}\n"+
                      "\t\tcon=DriverManager.getConnection(\""+url+"\",\""+user+"\",\""+password+"\");\n"+	
                      "\t}\n\n";
		return theConnect;
	}
	
		
		
	public static String JDGet(String tablename,String[] type,String[] name,String[] key){
		String thekey = getTheKey.getKeyA(key);
	  String theGet="\n\tpublic ArrayList get"+transform(tablename)+"(){\n"+
		              "\t\tString select=\"Select * from "+tablename+" \"+\n"+
									"\t\t\t\t\t\t\t\t\t\"Order by "+thekey+"\";\n"+
									"\t\tArrayList tablList=new ArrayList();\n"+
									"\t\ttry{\n"+
									"\t\t\tPreparedStatement prepStmt=con.prepareStatement(select);\n"+
									"\t\t\tResultSet rs=prepStmt.executeQuery();\n"+"\t\t\t"+transform(tablename)+
									" t=null;\n"+
									"\t\t\twhile(rs.next()){\n"+
									"\t\t\t\tt=new "+transform(tablename)+"();\n";
		String[] Gettype=new String[type.length];
		for(int i=1;i<type.length;i++){
		  Gettype[i]="\t\t\t\tt."+name[i]+"="+"rs.get"+transform(type[i])+"("+i+");\n";
			theGet+=Gettype[i];
			}
		theGet=theGet+"\t\t\t\tt.setConnection();\n"+
				          "\t\t\t\ttablList.add(t);\n"+
			            "\t\t\t}\n"+
			            "\t\t\tprepStmt.close();\n"+
		              "\t\t}catch (SQLException ex){\n"+
			            "\t\t\tSystem.out.println(\"SQLException:\"+ex.getMessage());\n"+
		              "\t\t}\n"+			
		              "\t\treturn tablList;\n"+
	                 "\t}\n";
		return theGet;
	}	
	
	
	
	public static String JDLoad(String tablename,String[] type,String[] name,String[] key,String[] keytype){
		String thekeytype=getTheKey.getKeyType(key,keytype);
		String thekey=getTheKey.getKeyA(key);
		String thekey1=getTheKey.getKeyB(key);
		String prepkey="";
		for(int j=1;j<key.length;j++){
		  prepkey+="\t\t\tprepSt.set"+transform(keytype[j])+"("+j+","+key[j]+");\n";
		}  
	  String theLoad="\n\tpublic void load"+transform(tablename)+"("+thekeytype+") throws Exception{\n"+
		               "\t\tString select =\"select * from "+tablename+" \""+
										"+\"where "+thekey1+	
		                "\t\ttry{\n"+
			              "\t\t\tPreparedStatement prepSt = con.prepareStatement(select);\n"+prepkey+ 
			              "\t\t\tResultSet rs = prepSt.executeQuery();\n"+
			              "\t\t\tif(rs.next()){\n"+"\t\t\t\tthis.";
		String[] getLoad=new String[type.length];
		for(int i=1;i<type.length;i++){
		  if(i==1){
		    getLoad[i]=name[i]+"=rs.get"+transform(type[i])+"("+i+");\n";
			}
			else{
			  getLoad[i]="\t\t\t\t"+name[i]+"=rs.get"+transform(type[i])+"("+i+");\n";
			}
			theLoad+=getLoad[i];
			}
		theLoad=theLoad+			
				    "\t\t\t\tprepSt.close();\n"+
			      "\t\t\t}else{\n"+
				    "\t\t\t\tprepSt.close();\n"+
				    "\t\t\t\tthrow new Exception("+thekey+"+\" 已被删除或修改编号。\");\n"+
			      "\t\t\t}\n"+
		        "\t\t}catch(SQLException ex){\n"+
			      "\t\t\tSystem.out.println(\"SQLException:\"+ex.getMessage());\n"+
		        "\t\t}\n"+	
	          "\t}\n";
		return theLoad;
		}
		
		
		
		public static String JDInsert(String tablename,String[] type,String[] name,String[] key){
		  String[] setst=new String[type.length];
			String sets="";
			for(int i=1;i<type.length;i++){
			  if(i!=type.length-1){
			    setst[i]="?,";
				}
				else{
				  setst[i]="?";
				}
				sets+=setst[i];
			}	
		  String theInsert="\n\n\tpublic void insert"+transform(tablename)+"() throws Exception{\n"+
		                   "\t\tString insert = \"insert into "+tablename+" values("+sets+")\";\n"+
		                   "\t\ttry{\n"+
			                 "\t\t\tPreparedStatement prepSt = con.prepareStatement(insert);\n";
			String[] setInsert=new String[type.length];
			for(int i=1;i<type.length;i++){
			  setInsert[i]="\t\t\tprepSt.set"+transform(type[i])+"("+i+","+name[i]+");\n";
				theInsert+=setInsert[i];
				}
		  String thekey=getTheKey.getKeyA(key);
			theInsert=theInsert+"\t\t\tprepSt.executeUpdate();\n"+
		            "\t\t}catch (SQLException ex){\n"+
			          "\t\t\tthrow new Exception("+thekey+"+\" 不存在。\");\n"+
		            "\t\t}\n"+		
	              "\t}\n";
			return theInsert;
			}
			
			

      public static String JDGetSet(String[] type,String[] name){
			  String[] theGet=new String[type.length];
				String[] theSet=new String[type.length];
				String theGetSet=" ";
				for(int i=1;i<type.length;i++){
				  theGet[i]="\n\tpublic "+type[i]+" get"+transform(name[i])+"(){\n"+
					          "\t\treturn "+name[i]+";\n\t}\n";
					theGetSet+=theGet[i];					
				  theSet[i]="\n\tpublic void set"+transform(name[i])+"("+type[i]+" "+name[i]+"){\n"
					         + "\t\tthis."+name[i]+"="+name[i]+";\n\t}\n";
	        theGetSet+=theSet[i];
					}
				return theGetSet;
				}
			
			
			
			public static String JDUpdate(String tablename,String[] type,String[] name,String[] key){
			  String theUpdate="\n\tpublic void update"+transform(tablename)+"()throws Exception{\n"+
		                     "\t\tString update=\"update "+tablename+" set ";
				String[] theName=new String[name.length];									
			  for(int i=key.length;i<name.length;i++){
				  if(i!=name.length-1){
				    theName[i]=name[i]+"=?,";
						}
					else{
					  theName[i]=name[i]+"=?";
						}
					  theUpdate+=theName[i];
				}
		    String thekey= getTheKey.getKeyB(key);
				String thekey1=getTheKey.getKeyA(key);
				String thekey2=getTheKey.getKeyC(key);
				theUpdate=theUpdate+" where "+thekey+
		              "\t\ttry{\n"+
			            "\t\t\tPreparedStatement prepSt = con.prepareStatement(update);\n";
				String[] theSet=new String[name.length];
				for(int i=1;i<name.length;i++){
				  for(int j=1;j<key.length;j++){
				    if(name[i].equals(key[j])==true){
						int num1=name.length-key.length+i;
					  theSet[i]="\t\t\tprepSt.set"+transform(type[i])+"("+num1+","+name[i]+");\n";
					  }
			    else{
					  int num2=i-key.length+1;
					  theSet[i]="\t\t\tprepSt.set"+transform(type[i])+"("+num2+","+name[i]+");\n";
						}
					}	
					theUpdate+=theSet[i];
					}
				theUpdate=theUpdate+	
			            "\t\t\tprepSt.executeUpdate();\n"+
			            "\t\t\tprepSt.close();\n"+
		              "\t\t}catch (SQLException ex){\n"+
			            "\t\t\tSystem.out.println(\"SQLException:\"+ex.getMessage());\n"+
			            "\t\t\tthrow new Exception(\"Update Fail:\"+"+thekey1+");\n"+
		              "\t\t}\n"+
	                "\t}\n";
				return theUpdate;
			}	
	
		
		
		public static String JDDelete(String tablename,String[] type,String[] name,String[] key){
		   String thekey=getTheKey.getKeyB(key);
		   String thekey1=getTheKey.getKeyA(key); 
		   String theDelete="\n\tpublic int delete"+transform(tablename)+"() throws Exception{\n"+
		                    "\t\tString delete=\"delete from "+tablename+" where "+thekey+
		                    "\t\ttry{\n"+
			                  "\t\t\tPreparedStatement prepSt = con.prepareStatement(delete);\n";
	     for(int i=1;i<key.length;i++){
				 
					 String s="\t\t\tprepSt.set"+transform(type[i])+"("+i+","+name[i]+");\n";
					 theDelete+=s;	
						
				}		
		  theDelete=theDelete+
			          "\t\t\tprepSt.executeUpdate();\n"+
			          "\t\t\tprepSt.close();\n"+						
			          "\t\t\treturn 1;\n"+
		            "\t\t}catch (SQLException ex){\n"+
			          "\t\t\tSystem.out.println(\"SQLException:\"+ex.getMessage());\n"+
			          "\t\t\tthrow new Exception(\"Delete Fail:\"+"+thekey1+");\n"+
		            "\t\t}\n"+
	              "\t}\n";
			return theDelete;
		}	

	
		
	
	public static void main(String args[]){
	  try{
		  JBAuto jd = new JBAuto();
		  ConnectionDialog cd = new ConnectionDialog(new JFrame());
			Connection con = cd.getConnection();
			String tablename = cd.getTablename();
			
		//~~~~~~获取数据库结果集数据列的列名和列类型~~~~~~//	
			DBInfo di = new DBInfo();
			String[] ColumnName = di.getColname(con,tablename);
			String[] ColumnType = di.getColtype(con,tablename);
		
		//~~~~~~实现SQL数据类型到Java数据类型的转换~~~~~~//
		  ChangeType ct = new ChangeType();
			ColumnType = ct.changeSQLType(ColumnType);
			
		//~~~~~~~~获取数据表SQL命令中指定的主键字~~~~~~~~~//	
		  DBKeyInfo dk = new DBKeyInfo();
			String[] Key = dk.getPrimaryKey(con,tablename);
			String[] KeyType = dk.getKeyType(ColumnName,ColumnType,Key);
			
		//~~~~~~~~产生实体JavaBean框架的源代码并输出~~~~~~~//	
			String s="\nimport java.sql.*;\n"+
            "import java.util.*;\n"+
						"import java.sql.Date;\n"+
						"\npublic class "+transform(tablename)+"{\n";

      String thePrivate=JDPrivate(ColumnType,ColumnName);
	    String theConnect=JDConnect(cd.getDrv(),cd.getUrl(),cd.getUser(),cd.getPassword());
  	  String theGet=JDGet(tablename,ColumnType,ColumnName,Key);
			String theLoad=JDLoad(tablename,ColumnType,ColumnName,Key,KeyType);
			String theInsert=JDInsert(tablename,ColumnType,ColumnName,Key);
			String theGetSet=JDGetSet(ColumnType,ColumnName);
			String theUpdate=JDUpdate(tablename,ColumnType,ColumnName,Key);
			String theDelete=JDDelete(tablename,ColumnType,ColumnName,Key);
			String JBText=s+thePrivate+theConnect+theGet+theLoad+theInsert+theGetSet+theUpdate+theDelete+"\n}";
		//-----产生Tablename.java文件并输出-----//
		  String JBname=transform(tablename)+".java";
      FileWriter fov=new FileWriter(JBname);
      fov.write(JBText);
			fov.close();
	  //~~~~~~~~~~~~~~~~~~~Success Info~~~~~~~~~~~~~~~~~~~~~//		
			GetText frame=new GetText(JBname);
		  frame.addWindowListener(new WindowAdapter(){
		    public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
      JOptionPane.showMessageDialog(null,
			                              "成功生成"+transform(tablename)+"的JavaBean构件!",
																	  "Infomation",
																		JOptionPane.WARNING_MESSAGE);
      
			//System.exit(0);*/
		}
	 catch(SQLException e){
		 JOptionPane.showMessageDialog(null,
			                              e.getMessage(),
																	  "SQLException",
																		JOptionPane.WARNING_MESSAGE);
		 System.exit(0);
    }
	 catch(IOException e1){
		 JOptionPane.showMessageDialog(null,
			                              e1.getMessage(),
																	  "IOException",
																		JOptionPane.WARNING_MESSAGE);
		System.exit(0);
		}	
	
	 catch (Exception ex){
		  JOptionPane.showMessageDialog(null,
			                              ex.getMessage(),
																	  "Exception",
																		JOptionPane.PLAIN_MESSAGE);

		System.exit(0);
		}	
   
  }	
   

}	

		
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -