java解析字符串,按照树形结构存入数据库--这个问题纠结了我好久,各路大神求帮忙

字符串:

LDAP://gz.cvte.cn/CN=张三,OU=研发中心,OU=事业部,OU=AAA有限公司,OU=C集团
LDAP://gz.cvte.cn/CN=tom,OU=销售部,OU=事业部,OU=AAA有限公司,OU=C集团
......

表结构:(可以修改,反正能体现到树状结构就好了)

id
name:名称
fatherId: 父Id
type:类型(人员,公司,部门)

问题:解析上述字符串,然后按照下列树状形式存入数据库,数据库不限。
PS:【上述字符串中 人员的名字, 集团的名字, xxx有限公司的名字都是唯一的】

C集团 (公司)
|-AA有限公司 (公司)
| |-电源事业部门 (部门) 
| |-研发中心 (部门)
| |-张三 (人员)
|
|-BBB公司 (公司)
|-研发中心 (部门) 
|-李四 (人员)

  • 请求大神解答,我弄了两天都没弄出来。。哎哎呀呀呀呀呀。。


猛跑小猪
浏览 966回答 6
6回答

慕莱坞森

闲来没事,就帮你写写。先说说表结构,就用你这个结构id:(自动增长)name:名称parentid:父IDtype:类型(人员,公司,部门) 使用DB------MYSQL5.0

江户川乱折腾

String connectionUrl = "jdbc:mysql://localhost:3306/数据库名称?user=用户名&password=密码";Connection conn = null;Statement stmt = null;try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(connectionUrl);conn.setAutoCommit(false);stmt = conn.createStatement();String[] strs = "CN=张三,OU=研发中心,OU=事业部,OU=AAA有限公司,OU=C集团".split(",");for (int i = strs.length - 1; i > -1; i--) { // 先有父类才有子类,所以倒过来写String str = strs[i];if (i == strs.length - 1) { // 创建ROOTstmt.executeUpdate("insert into test(id, name, parentid, type) values(null, '"+ str.substring(str.indexOf("=") + 1)+ "', 0, '"+ str.substring(0, str.indexOf("=")) + "')");conn.commit();} else { // 创建所有叶节点stmt.executeUpdate("insert into test(id, name, parentid, type) values(null, '"+ str.substring(str.indexOf("=") + 1)+ "', @@IDENTITY, '"+ str.substring(0, str.indexOf("=")) + "');");conn.commit();}}} catch (Exception e) {// 异常处理} finally {// 关闭连接,释放资源}

MYYA

File file = new File(文件路径);try {BufferedReader br = new BufferedReader(new FileReader(file));String line = null;List lists = new ArrayList();while(null != (line = br.readLine())) {lists.add(line);}return lists; } catch (FileNotFoundException e) {    } catch (IOException e) {     }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java