由于第三方厂商未能按时提供实时数据,故需要纯手动导入一些实时数据,用于统计分析。正好最近自己学习了mybatis 。因此使用mybatis 配置一个select.insert 的简单操作语句,用于灌入实时数据。

  业务表

    Ems_Standard_FormulaRelation【配置表,主要提供实时表的unitId,mediaId,standardId】

    Ems_StandardRuntime_Hour【实时表】

  准备工作

    数据库我用的是sqlserver 2008 r2

    1、在lib 中导入所需要的jar包

      

    2、在Referenced Libraries 中添加 jar包。

      

    3、配置mybatis 的config 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- MyBatis针对SqlServer进行的配置 -->
<typeAliases>
<!-- 定义javabean -->
<typeAlias alias="formulaRelation" type="com.authority.model.Ems_Standard_FormulaRelation"/>
<typeAlias alias="runtimeHour" type="com.authority.model.Ems_StandardRuntime_Hour"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://10.18.14.221:1433;DatabaseName=ICPSystem"/>
<property name="username" value="sa"/>
<property name="password" value="3333"/>
</dataSource>
</environment>
</environments>
<!-- 定义配置sql xml的文件路径 -->
<mappers>
<mapper resource="com/authority/mapper/formulaRelation.xml"/>
<mapper resource="com/authority/mapper/runtimeHour.xml"/>
</mappers> </configuration>

      4、bean文件

Ems_Standard_FormulaRelation:

package com.authority.model;

public class Ems_Standard_FormulaRelation {

	private int id;

	private int standardId;

	private String unitId;

	private String mediaId;

	private String formulaId;

	private String formulaText;

	@Override
public String toString() {
return "Ems_Standard_FormulaRelation [id=" + id + ", standardId=" + standardId + ", unitId=" + unitId
+ ", mediaId=" + mediaId + ", formulaId=" + formulaId + ", formulaText=" + formulaText + "]";
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public int getStandardId() {
return standardId;
} public void setStandardId(int standardId) {
this.standardId = standardId;
} public String getUnitId() {
return unitId;
} public void setUnitId(String unitId) {
this.unitId = unitId;
} public String getMediaId() {
return mediaId;
} public void setMediaId(String mediaId) {
this.mediaId = mediaId;
} public String getFormulaId() {
return formulaId;
} public void setFormulaId(String formulaId) {
this.formulaId = formulaId;
} public String getFormulaText() {
return formulaText;
} public void setFormulaText(String formulaText) {
this.formulaText = formulaText;
} }

Ems_StandardRuntime_Hour:

package com.authority.model;

public class Ems_StandardRuntime_Hour {

    private int id;

    private int standardId;

    private String unitId;

    private String formulaValue;

    public String getFormulaValue() {
return formulaValue;
} public void setFormulaValue(String formulaValue) {
this.formulaValue = formulaValue;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public int getStandardId() {
return standardId;
} public void setStandardId(int standardId) {
this.standardId = standardId;
} public String getUnitId() {
return unitId;
} public void setUnitId(String unitId) {
this.unitId = unitId;
} public String getMediaId() {
return mediaId;
} public void setMediaId(String mediaId) {
this.mediaId = mediaId;
} public String getCaculateTime() {
return caculateTime;
} public void setCaculateTime(String caculateTime) {
this.caculateTime = caculateTime;
} public Double getCaculateValue() {
return caculateValue;
} public void setCaculateValue(Double caculateValue) {
this.caculateValue = caculateValue;
} public int getSortIndex() {
return sortIndex;
} public void setSortIndex(int sortIndex) {
this.sortIndex = sortIndex;
} private String mediaId; private String caculateTime; private Double caculateValue; private int sortIndex;
}

      5、配置sql xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.authority.model">
<select id="getFormula" resultType="com.authority.model.Ems_Standard_FormulaRelation">
select * from Ems_Standard_FormulaRelation
</select>
</mapper>

    

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.authority.model">
<insert id="insertRuntime" parameterType="com.authority.model.Ems_StandardRuntime_Hour">
insert into Ems_StandardRuntime_Hour (standardId,UnitId,MediaId,FormulaValue,
CaculateValue,CaculateTime,SortIndex) VALUES (#{standardId},#{unitId},#{mediaId},
#{formulaValue},#{caculateValue},#{caculateTime},#{sortIndex})
</insert>
</mapper>

        6、main方法。用于提交

package com.authority.connection;

import java.io.IOException;
import java.io.Reader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.authority.model.Ems_StandardRuntime_Hour;
import com.authority.model.Ems_Standard_FormulaRelation; public class DataAccess { public static void main(String[] args) throws IOException { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
String resource = "config.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession();
String sqlStatement = "com.authority.mapper.formulaRelation.getFormula";
String insertStatement = "com.authority.mapper.runtimeHour.insertRuntime";
@SuppressWarnings("unchecked")
List<Ems_Standard_FormulaRelation> relationlist = session.selectList(sqlStatement);
//单例的日期对象
Calendar cld = Calendar.getInstance();
//统计数据的时间单位是每小时。这个区间是10年的数据
for (int i = 0; i < 24 * 365 * 10; i++) {
//每次循环将当前时间的小时+1
cld.set(Calendar.HOUR, cld.get(Calendar.HOUR)+1);
for (Ems_Standard_FormulaRelation obj : relationlist) {
Ems_StandardRuntime_Hour runtime = new Ems_StandardRuntime_Hour();
runtime.setCaculateTime(df.format(cld.getTime()));
runtime.setCaculateValue(Math.random());
runtime.setMediaId(obj.getMediaId());
runtime.setStandardId(obj.getStandardId());
runtime.setUnitId(obj.getUnitId());
runtime.setStandardId(obj.getStandardId());
runtime.setFormulaValue(obj.getFormulaId());
int m = session.insert(insertStatement, runtime);
System.out.println(m);
}
}
session.commit();
}
}

  session.commit,我在测试过程中,必须加上这句话。否则会导致数据表为空。具体实现原理。还是需要跟源码看看的。不过mybatis 确实要比hibernate灵活度上高上不少。我个人还是喜欢比较直观的sql语句。

MyBatis学习笔记(3)—— 利用mybatis灌入假数据的更多相关文章

  1. (原创)mybatis学习四,利用mybatis自动创建代码

    在使用mybatis的过程中,我们可以直接利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件,然后copy到工程中即可 需要的jar包如下 下载路径如下:下载jar包 其中的g ...

  2. MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...

  3. mybatis 学习笔记 -详解mybatis 及实例demo

    快速入门1 要点: 首先明白mybatis 是什么 这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. 首先, ...

  4. mybatis学习笔记 spring与mybatis整合

    转载自http://blog.csdn.net/naruto_Mr/article/details/48239357 1.创建web工程,导入spring依赖包与mybatis依赖包,还需要mybat ...

  5. Mybatis学习01:利用mybatis查询数据库

    通过mybatis来操作mysql数据库的步骤大致可分为以下几步: 在这里,我们以对下面这个这个表格进行操作为例: 表名:ssm 1 配置依赖 在pom.xml中添加所需要的的依赖 <!-- m ...

  6. SpringMVC + Spring + MyBatis 学习笔记:为MyBatis增加打印SQL功能 (最简化配置)

    系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 1.以下jar包拷贝到 ...

  7. MyBatis学习笔记1--初识MyBatis

    我也是初学者,写博客只是想把自己的整个思路整理一下,有不对或者不好的地方,请大家多多指正. 1.MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...

  8. MyBatis学习笔记(三)——优化MyBatis配置文件中的配置

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4264301.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的 ...

  9. 1.1(Mybatis学习笔记)初识Mybatis

    一.Mybatis下载与使用 下载地址:https://github.com/mybatis/mybatis-3/releases 下载后解压目录: 需要将lib下的jar包和mybatid-x-x- ...

随机推荐

  1. -_-#setTimeout与setInterval

    你真的了解setTimeout和setInterval吗? 存在一个最小的时钟间隔 有关零秒延迟,此回调将会放到一个能立即执行的时段进行触发.JavaScript 代码大体上是自顶向下执行,但中间穿插 ...

  2. C#程序注销、重启、关机和锁定电脑

    一:截图 二:源代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  3. 如何在COM的IDL文件中include头文件?

    可以使用import语句,如import "x.h"; 则在自动生成的xxx_i.h中将会有include "x.h", 于是x.h就被include到工程中了 ...

  4. 《A First Course in Probability》-chaper5-连续型随机变量-均匀随机变量

    在连续随机变量这部分,有一种特殊的随机变量X,对于X所有可能取值,P(X)都相等,我们称其为均匀随机变量. 基于均匀随机变量的定义,我们容易看到,其密度函数f(x)必然是一条平行于x轴的直线,因为这样 ...

  5. SRM 401(1-250pt, 1-500pt)

    DIV1 250pt 题意:给一个整数f,则这样的正整数整数数列称为好数列:数列元素a0 >= a1 >= a2...,且a0<= f, a1 <= f-1, a2 <= ...

  6. Java IO流以及装饰器模式在其上的运用

    流概述 Java中,流是一种有序的字节序列,可以有任意的长度.从应用流向目的地称为输出流,从目的地流向应用称为输入流. Java的流族谱 Java的 java.io 包中囊括了整个流的家族,输出流和输 ...

  7. select.poll,epoll的区别与应用

    先讲讲同步I/O的五大模型 阻塞式I/O, 非阻塞式I/O, I/O复用,信号驱动I/O(SIGIO),异步I/O模型 而select/poll/epoll属于I/O复用模型 select函数 该函数 ...

  8. Linux用户root忘记密码的解决(unbuntu16.04)

    参考: http://www.linuxidc.com/Linux/2012-04/59069.htm http://www.68idc.cn/help/server/linux/2015060735 ...

  9. System.Threading.Timer 使用

    //定义计时器执行完成后的回调函数 TimerCallback timecallback = new TimerCallback(WriteMsg); //定义计时器 System.Threading ...

  10. lesson10:hashmap变慢原因分析

    下面的英文描述了String.hashCode()方法,在特定情况下,返回值为0的问题: Java offers the HashMap and Hashtable classes, which us ...