小学生之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版本的时候移除了:

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

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

当然也是没问题。

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

时间: 2024-10-10 21:34:31

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

hibernate插入实体类【数据库默认值】不生效的问题

第一个问题老生常谈 如果表结构设置默认值 数据库实体类不对该字段进行复制的情况下插入数据记录 字段直接以数据库设置的默认值进行插入hibernate本身可以根据XML配置进行生效此配置 1 <hibernate-mapping 2     package="*.entity"> 3     <class name="ProEntity" table="PRODUCTINFO" dynamic-insert="true&

修改 phpmyadmin 创建数据库默认编码

phpmyadmin 创建数据库的默认编码是:latin1_swedish_ci 修改默认编码的方法是 1.登录phpmyadmin 2.在导航部分点:变量 3.Ctrl+F 查找:latin1_swedish_ci 4.把latin1_swedish_ci 修改为 你想要的编码,我设置的是:utf8_general_ci 修改 phpmyadmin 创建数据库默认编码,布布扣,bubuko.com

如何修改情景模式的默认值

一,针对每个情景模式的默认值修改: 1,默认铃声是统一在alps/build/target/product/core.mk文件中设置,其中ro.config.notification_sound表示通知的默认铃声,ro.config.ringtone表示语音来电和视频来电的铃声,若希望语音来电和视频来电分开设置,请参考FAQ08273 [Audio Profile]如何设置视频来电铃的默认铃声: PRODUCT_PROPERTY_OVERRIDES:=\ ro.config.notificati

使用jQuery的data方法来为页面中的某个元素存储数据,(获取焦点,清除默认值)

使用data方法可以避免在DOM中存储数据,有些前端开发er喜欢使用HTML的属性来存储数据: 使用”alt”属性来作为参数名存储数据其实对于HTML来说是不符合语义的. 我们可以使用jQuery的data方法来为页面中的某个元素存储数据: html部分: 1 <form id="testform"> 2 <input type="text" class="clear" value="Always cleared&qu

Android 在frameworks中修改Setting中的默认值

在frameworks中跟Setting默认值相关的几个文件 /frameworks/base/packages/SettingsProvider/res/values/defaults.xml /frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java 在defaults.xml文件中定义了相关的值,DatabaseHelper.java会把相应的值读取出来保

使用预处理语句实现插入删除修改数据

预处理插入语句 $m=new mysqli('localhost','root','','db'); $m->set_charset('utf8'); $stmt=$m->prepare('insert into stu values(null,?,?,?)'); $n='aa'; $g='保密'; $s=10; $stmt->bind_param('ssi',$n,$g,$s); $stmt->execute(); $stmt->close(); $m->close(

oracle移动数据/修改数据文件路径

参考:http://wwyz998.blog.163.com/blog/static/321867852011117111832334/ oracle移动数据文件 1.连接到数据库 [[email protected]]$ ./sqlplus /nolog SQL> conn / as sysdba 2. 查看数据文件位置 SQL> select file_name from sys.dba_data_files; 或 SQL> select name from v$datafile;

.net批量更新(插入、修改、删除)数据库

思路: 1. 设置DataTable中每行的状态标识,即调用DataRow的方法setAdded().setModified().Delete() 2. 使用DataAdapter的Update(DataTable)方法 代码例子: String connString = "........"; //连接字符串 String selectCommand = "select * from item"; SqlDataAdapter da = new SqlDataAd

Android 在frameworks中修改Setting中的默认值 (二)

修改设置->关于手机->法律信息 下有一些Item,如开放源代码许可.Google法律信息等,这里分析的是Android 4.4的代码 如下图所示,想添加"Google法律信息"选项 查看Settings的源码在/Settings/src/com/android/settings/DeviceInfoSettings.java文件初始化时有这样一段代码 @Override public void onCreate(Bundle icicle) { super.onCreat