由于第三方厂商未能按时提供实时数据,故需要纯手动导入一些实时数据,用于统计分析。正好最近自己学习了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. 「Poetize8」Divisible

    描述 Description 设F[i]为斐波那契数列的第i项,F[1]=1,F[2]=1,F[i]=F[i-1]+F[i-2](i>=3). 输入格式 InputFormat 输入包含若干行( ...

  2. python编译环境发掘——从IDLE到sublime到pycharm到Anaconda

    一个好的编译器对于我们处理日常的科研很关键,好的编译器无论是从界面,字体风格,提示,调试等各方面都能从用户角度出发,提供最好的使用体验.Python本身自带的IDLE或者在CMD里进行操作和调试,对于 ...

  3. Json.Net学习笔记(十) 保持对象引用

    更多内容见这里:http://www.cnblogs.com/wuyifu/archive/2013/09/03/3299784.html 默认情况下,Json.Net将通过对象的值来序列化它遇到的所 ...

  4. NOI题库2454 雷涛的小猫

    2454:雷涛的小猫 总时间限制: 20000ms 单个测试点时间限制: 10000ms 内存限制: 65536kB 描述 雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助的小猫(当然,这样 ...

  5. [Git] MAC上Git初探

    1.基本设置,包括用户名.邮箱.编辑工具.查看设置.帮助等 $ git config --global user.name "John Doe" $ git config --gl ...

  6. 《A First Course in Probability》-chaper4-离散型随机变量-随机变量函数的期望

    给定一个离散型随机变量X,根据定义我们容易得到期望E[X],但是在具体的问题当中,我们会得到一个关于X的另一个函数关系Y=g(X),那么我们就非常的好奇,根据函数关系Y=g(X)和随机变量X的分布列数 ...

  7. 《A First Course in Probability》-chaper5-连续型随机变量-基本概念

    在利用基本的概率论模型解决实际问题的时候,我们很容易发现一些随机变量的连续分布的,例如火车进站的时间.台灯的寿命等一些和时间相关的随机变量,此时我们发现我们难以求出某个点的概率了,因为随机变量是连续的 ...

  8. [Falcor] Indroduce to Model

    How to work with JSON data indirectly through a Falcor Model. The Falcor Model allows you to work wi ...

  9. [Angular 2] ng-control & ng-control-group

    Control: Controls encapsulate the field's value, a states such as if it is valid, dirty or has error ...

  10. Linux的进程优先级-邹立巍

    http://liwei.life/2016/04/07/linux%E7%9A%84%E8%BF%9B%E7%A8%8B%E4%BC%98%E5%85%88%E7%BA%A7/