zoukankan      html  css  js  c++  java
  • 小学生之Hibernate插入数据修改数据使用数据库默认值的实现

    最近在写一个案例,定时任务对数据库进行更新操作,废话不多说,上代码:

     1 @Component("taskJob")
     2 public class TaskJob extends HibernateDaoSupport {
     3     
     4     @Resource
     5     private SessionFactory sessionFactory;
     6 
     7     @PostConstruct
     8     public void init() {
     9         setSessionFactory(sessionFactory);
    10     }
    11     
    12     @Scheduled(cron = "0 0/1 * * * ?")
    13     @Transactional
    14     public void jobl() throws InterruptedException {
    15         System.out.println("任务开始执行....");
    16         this.getHibernateTemplate().execute(new HibernateCallback() {
    17 
    18             public Object doInHibernate(Session session)
    19                     throws HibernateException {
    20                 session.createSQLQuery("truncate table tm_org").executeUpdate();
    21                 return null;
    22             }
    23         });
    24         System.out.println("删除完毕........");
    25         Thread.sleep(1000);
    26         final File file = new File("C:\Users\lhq\Desktop\T1018.txt");
    27         BufferedReader reader = null;
    28         try {
    29             System.out.println("以行为单位读取文件内容,一次读一整行:");
    30             reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
    31             String tempString = null;
    32          // 一次读入一行,直到读入null为文件结束
    33             while ((tempString = reader.readLine()) != null) {
    34                 final String[] split = tempString.split("\s+");
    35                 Org org = new Org();
    36                 org.setOrgCode(split[0]);
    37                 org.setOrgName(split[1]);
    38 //                org.setStatus("0");
    39                 if (split.length>3) {
    40                     org.setUpOrg(split[3]);
    41                 }
    42                 org.setCreator("superuser");
    43                 this.getHibernateTemplate().persist(org);
    44                 
    45             }
    46             reader.close();
    47             
    48         } catch (final IOException e) {
    49             e.printStackTrace();
    50         } finally {
    51             if (reader != null) {
    52                 try {
    53                     reader.close();
    54                 } catch (final IOException e) {
    55                 }
    56             }
    57         }
    58     }
    59 }

    最开始执行完操作的时候,这一行是没有的,因为我在数据库中设置了默认值,

    控制台上就给我报错,如图:

    为了程序的运行,我把这行手动添加上了,今天仔细一想,应该有办法解决这个问题,就上网找了N多个文字,都没有具体找到实现方法,大多都是配置文件形式的(这年头谁还用配置文件,都用注解了),后来千辛万苦找到一个解决方案,如图:

    于是我就照葫芦画瓢,也这么写,然后发现是这样的:

    一看就知道是过时的方法,为了程序的执行没有管他,run起来也没有问题,之后我又看了一下源码发现4.1版本的时候移除了:

    然后我发现这里面每个字段上有这么一句:

    意思就是用{}里面的替换了,于是就改成了这样:

    当然也是没问题。

    就是跟大家分享一下经验,帮助需要的人提供方案.

  • 相关阅读:
    JQuery MultiSelect(左右选择框)
    jquery隐藏table表格的某一列
    JS刷新页面的几种方法
    jQuery对select操作小结
    更新数据前jquery如何填充数据到表单域中
    hibernate中load和get方法的区别
    java项目常用 BaseDao BaseService
    js判断360浏览器 兼容模式IE版本
    vue 文本比较插件
    vue问题总结
  • 原文地址:https://www.cnblogs.com/1600kun/p/6364497.html
Copyright © 2011-2022 走看看