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

 @Component("taskJob")
public class TaskJob extends HibernateDaoSupport { @Resource
private SessionFactory sessionFactory; @PostConstruct
public void init() {
setSessionFactory(sessionFactory);
} @Scheduled(cron = "0 0/1 * * * ?")
@Transactional
public void jobl() throws InterruptedException {
System.out.println("任务开始执行....");
this.getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session)
throws HibernateException {
session.createSQLQuery("truncate table tm_org").executeUpdate();
return null;
}
});
System.out.println("删除完毕........");
Thread.sleep(1000);
final File file = new File("C:\\Users\\lhq\\Desktop\\T1018.txt");
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
String tempString = null;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
final String[] split = tempString.split("\\s+");
Org org = new Org();
org.setOrgCode(split[0]);
org.setOrgName(split[1]);
// org.setStatus("0");
if (split.length>3) {
org.setUpOrg(split[3]);
}
org.setCreator("superuser");
this.getHibernateTemplate().persist(org); }
reader.close(); } catch (final IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (final IOException e) {
}
}
}
}
}

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

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

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

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

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

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

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

当然也是没问题。

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

小学生之Hibernate插入数据修改数据使用数据库默认值的实现的更多相关文章

  1. hibernate 插入数据时让数据库默认值生效

    用hibernate做数据库插入操作时,在数据库端已经设置了对应列的默认值,但插入的数据一直为null.查找资料发现,原来是hibernate的配置项在作怪. Hibernate允许我们在映射文件里控 ...

  2. SqlServer修改某个字段的默认值时的操作步骤

    sqlserver有时候需要修改一个字段的默认值,却发现修改(update)不了,也删除(delete)不了,排查发现,需要先删除原有的默认值约束,才行:步骤如下1.2.3.若原来这个字段就没有默认值 ...

  3. Mysql数据表字段设置了默认值,插入数据后默认字段的值却为null,不是默认值

    我将mysql的数据表的某个字段设置了默认值为1,当向该表插入数据的时候该字段的值不是默认值,而是null. 我的错误原因: 对数据库的操作我使用了持久化工具mybatis,插入数据的时候插入的是整个 ...

  4. DML添加数据&删除数据&修改数据

    DML:增删改表中数据 1.添加数据: 语法:insert into 表名(列名1,列名2).... values(值1,值2): 注意: 1.列名和值要一一对应. 2.如果表名后,不定义列名,则默认 ...

  5. DML添加数据-删除数据-修改数据

    DML添加数据 语法 insert into 表名(列名1,列名2,列名n) values(值1,值2,值n) 列:INSERT INTO day02(id,NAME,age) VALUES(1,&q ...

  6. MySQL关于sql_mode的修改(timestamp的默认值不正确)

    timestamp的默认值不正确原因: MySQL5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要解决这个问题,就需要修改sql_mod ...

  7. 使用hibernate annotation 为非空列加上默认值

    在网上查了很多资料都没找到如何为非空列加上默认值 以前的做法是给字段一个初始值,加上dynamic-insert属性 换了annotation了以后没有找到如何设置dynamic-insert属性 但 ...

  8. Sql 语句添加字段、修改字段类型、默认值语法

    Sql 语句添加字段 ,) not null --修改类型 alter Table bbs ) Sql 语句修改默认值 alter table 表名 drop constraint 约束名字 --删除 ...

  9. Hibernate+Struts2完成修改数据功能

    先看修改之前的数据: 下面是具体代码 view层: 顺着链接,继续: 继续: 继续 控制层和逻辑层: action: //修改 public String updateperson() { Strin ...

随机推荐

  1. h2database. 官方文档

    http://www.h2database.com/html/advanced.html http://www.h2database.com/html/tutorial.html#csv http:/ ...

  2. ecos的app机制

    底层->支持层->业务 底层base 数据库访问 service管理 app管理 kvstore存储 kvcache缓存 支持层 pam登录验证 dbeav数据库扩展功能 site前台 d ...

  3. .NET的对象映射工具AutoMapper使用笔记

    AutoMapper是一个.NET的对象映射工具. 项目地址:https://github.com/AutoMapper/AutoMapper. 帮助文档:https://github.com/Aut ...

  4. mysql--学生课程成绩表

    创建表student: CREATE TABLE `student` ( `sid` INT(11) NOT NULL AUTO_INCREMENT, `sname` VARCHAR(20) NOT ...

  5. Ext实现简单计算器

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!少帅的博客 使用Ext实现简单计算器,网页版实现 1.页面部分calculator. ...

  6. Java对文件的16进制读取和操作

    大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序.有几个重点地方: 16进制字符串->10进制数 int input = Integer.parseInt("Str ...

  7. POJ 3421 X-factor Chains

    线型素数筛+质因素分解+组合数. AC后发现这样做效率有点低..766ms. #include<stdio.h> #include<string.h> #include< ...

  8. Leetcode题1

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...

  9. Lambda表达式例子

    转 Lambda表达式例子 1.Java8 新特性介绍 写java的同学对java8肯定知道 那么java8到底有哪些特性呢,总结如下: Lambda表达式 函数式接口 Stream Optional ...

  10. 关于Android反编译

    详情查看:http://blog.csdn.net/ordinaryjoe/article/details/8626010