日期:2014-05-16  浏览次数:20433 次

web程序安装,配置数据库代码
			// 获取表单中数据库主机
			String dbhost = request.getParameter("dbhost");
			// 获取表单中数据库名
			String dbname = request.getParameter("dbname");
			
			//更改c3p0的配置文件的用户名和密码
			String saveDbUser = request.getParameter("dbuser");
			String saveDbPwd = request.getParameter("dbpwd");
			
			// 获取表单中数据库用户名
			String dbUser = "-u"+saveDbUser;
	
			// 获取表单中数据库密码
			String dbPwd = "-p"+saveDbPwd;
			
			//数据库链接
			String jdbcUrl = "jdbc:mysql://"+dbhost+":3306/"+dbname+"?characterEncoding=utf8";
			
			
			//更新c3p0配置文件开始
			Properties pro = new Properties();
			String c3p0Properties = this.getClass().getClassLoader().getResource("c3p0.properties").getPath();
			c3p0Properties = URLDecoder.decode(c3p0Properties,"utf-8");
			File c3p0File = new File(c3p0Properties);//配置文件对象
			pro.load(new FileInputStream(c3p0File));
			pro.setProperty("c3p0.jdbcUrl", jdbcUrl);
			pro.setProperty("c3p0.password", saveDbPwd);
			pro.setProperty("c3p0.user", saveDbUser);
			pro.store(new FileOutputStream(c3p0File),null);
			//更新c3p0配置文件结束
			 C3p0Connection.updateC3p0(c3p0Properties);
		    //数据文件位置路径
		    String path = this.getServletContext().getRealPath(ArticleConstant.JDBC_PATH);
		   
		    //执行导入数据库的命令 
			String savePath = "mysql "+dbUser+" "+dbPwd+" "+dbname + " "+ "--default-character-set=utf8" + " <"+path;
		    File file = new File(path);
		    if(file.exists()){
		    	re.setCode(2);
		    	Properties prop = System.getProperties();
				String os = prop.getProperty("os.name");
				if(os.startsWith("Win")){
					String[] command  = { "cmd", "/c", savePath};
					Runtime.getRuntime().exec(command);
		    	}else{
		    		String[] command  = {"/bin/sh", "-c", savePath};
					Runtime.getRuntime().exec(command);
		    	}
		    }else{
		    	String content = "您的安装包user文件夹下的数据库"+file.getName()+"文件未找到!"+"请仔细检查是否存在!";
		    	re.setCode(3);
		    	re.setContent(content);
		    }
		    
		   
		

?转