请允许我成为你的夏季——shiro、jdbcInsertall

   

  这两天总是觉得自己被关进了一个大笼子,日子拮据。生活不就是这样吗,一边觉得自己很差劲,一边又想成为一个更好的自己。可那又有什么办法呢,万物皆有裂痕,但那又怎样,那是光照进来的地方啊。

  

  开始学习shiro,一款java权限框架,看了一会视频感觉还不入读下面这位老哥的一篇博客要来得痛快。

  http://www.jianshu.com/p/6786ddf54582

  http://jinnianshilongnian.iteye.com/blog/2031823

  还有一个jdbc批量插入数据的方法。

    

 1 /**
 2      * 执行数据库插入操作
 3      *
 4      * @param datas     插入数据表中key为列名和value为列对应的值的Map对象的List集合
 5      * @param tableName 要插入的数据库的表名
 6      * @return 影响的行数
 7      * @throws SQLException SQL异常
 8      */
 9     public int insertAll(String tableName, List<Map<String, Object>> datas) throws SQLException {
10         /**影响的行数**/
11         int affectRowCount = -1;
12         Connection connection = null;
13         PreparedStatement preparedStatement = null;
14         try {
15             /**从数据库连接池中获取数据库连接**/
16             connection = getConnectionTwo();
17 
18 
19             Map<String, Object> valueMap = datas.get(0);
20             /**获取数据库插入的Map的键值对的值**/
21             Set<String> keySet = valueMap.keySet();
22             Iterator<String> iterator = keySet.iterator();
23             /**要插入的字段sql,其实就是用key拼起来的**/
24             StringBuilder columnSql = new StringBuilder();
25             /**要插入的字段值,其实就是?**/
26             StringBuilder unknownMarkSql = new StringBuilder();
27             Object[] keys = new Object[valueMap.size()];
28             int i = 0;
29             while (iterator.hasNext()) {
30                 String key = iterator.next();
31                 keys[i] = key;
32                 columnSql.append(i == 0 ? "" : ",");
33                 columnSql.append(key);
34 
35                 unknownMarkSql.append(i == 0 ? "" : ",");
36                 unknownMarkSql.append("?");
37                 i++;
38             }
39             /**开始拼插入的sql语句**/
40             StringBuilder sql = new StringBuilder();
41             sql.append("INSERT INTO ");
42             sql.append(tableName);
43             sql.append(" (");
44             sql.append(columnSql);
45             sql.append(" )  VALUES (");
46             sql.append(unknownMarkSql);
47             sql.append(" )");
48 
49             /**执行SQL预编译**/
50             preparedStatement = connection.prepareStatement(sql.toString());
51             /**设置不自动提交,以便于在出现异常的时候数据库回滚**/
52             connection.setAutoCommit(false);
53             System.out.println(sql.toString());
54             for (int j = 0; j < datas.size(); j++) {
55                 for (int k = 0; k < keys.length; k++) {
56                     preparedStatement.setObject(k + 1, datas.get(j).get(keys[k]));
57                 }
58                 preparedStatement.addBatch();
59             }
60             int[] arr = preparedStatement.executeBatch();
61             connection.commit();
62             affectRowCount = arr.length;
63             System.out.println("成功了插入了" + affectRowCount + "行");
64             System.out.println();
65         } catch (Exception e) {
66             if (connection != null) {
67                 connection.rollback();
68             }
69             e.printStackTrace();
70             throw e;
71         } finally {
72             if (preparedStatement != null) {
73                 preparedStatement.close();
74             }
75             if (connection != null) {
76                 connection.close();
77             }
78         }
79         return affectRowCount;
80     }

 

 

晚安 时间不早了,2017年9月6日01:31:22,地点 公司。

请允许我成为你的夏季

   艾米莉•狄更生(美)

请允许我成为你的夏季,

当夏季的光阴已然流逝!

请允许我成为你的音乐,

当夜鹰与金莺收敛了歌喉!

请允许我为你绽放,我将穿越墓地,

四处播撒我的花朵!

请把我采撷吧——银莲花——

你的花朵——将为你盛开,直至永远!

 

posted @ 2017-09-06 01:35  ZzUuOo666  阅读(313)  评论(0编辑  收藏  举报