解析xml初始化数据库
项目的研发或者上线阶段,为了方便,可能需要初始化数据库:包括用户,权限,或者一些其他的基础数据。我这里采用的是解析Xml文件初始化数据库。 (1)Xml文件的格式如下: (2)配置初始化数据的Servlet 在web.xml中配置 <servlet> <servlet-name>PersistenceTest</servlet-name> <servlet-class>com.saving.ecm.servlet.PersistenceInitialize</servlet-class> <load-on-startup>2</load-on-startup> </servlet> (3)Tomcat服务器启动时,加载Servlet publicclassPersistenceInitializeextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; privatestaticfinalStringFILEPATH="initDataBase.xml"; @Override publicvoidinit()throwsServletException{ super.init(); try{ //如果用户数据count=0 Documentdocument=new SAXReader().read(Thread.currentThread().getContextClassLoader() .getResourceAsStream(FILEPATH)); initUser(document);//初始化用户 }catch(Throwablee){ e.printStackTrace(); } } @SuppressWarnings("unchecked") privatevoidinitUser(Documentdocument){ List<Node>childNodes=document.selectNodes("//users/user"); CommonAction<User>action=newCommonAction<User>(User.class); for(Nodenode:childNodes){ Useruser; try{ user=action.findById(Long.parseLong(node.valueOf("@id"))); if(user==null){ user=newUser(); } user.setAccount(node.valueOf("@account")); user.setName(node.valueOf("@name")); user.setPassword(MD5Util.md5(node.valueOf("@password"))); user.setEmail(node.valueOf("@email")); user.setRoleCode(node.valueOf("@roleCode")); user.setStatus(node.valueOf("@status")); user.setCreationTime(System.currentTimeMillis()); action.saveEntity(user); }catch(Throwablee){ e.printStackTrace(); } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |