由于第三方厂商未能按时提供实时数据,故需要纯手动导入一些实时数据,用于统计分析。正好最近自己学习了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. ural-1099-Work Scheduling(裸带花树)

    题意: 有N个人,有限对的人可以在一起工作,问最多能有多少对. 分析: 任意图的最大匹配 // File MAXName: 1099.cpp // Author: Zlbing // Created ...

  2. Qt入门(19)——自定义窗口部件

    我们介绍可以画自己的第一个自定义窗口部件.我们也加入了一个有用的键盘接口.我们添加了一个槽:setRange().        void setRange( int minVal, int maxV ...

  3. soap协议

    定义: 简单对象访问协议是交换数据的一种协议规范,是一种轻量的.简单的.基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息. 协议中的几个关键词术语: SO ...

  4. 【转】通知 Toast详细用法(显示view)

    原文网址:http://www.pocketdigi.com/20100904/87.html 今天学习Android通知 Toast的用法,Toast在手机屏幕上向用户显示一条信息,一段时间后信息会 ...

  5. 动态规划 HDU 1176

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  6. JavaScript 操作 DOM 常用 API 总结

    文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前, ...

  7. HTML embed标签使用方法和属性详解

    一.基本语法   代码如下:   embed src=url   说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等,Netscape及新版的IE 都支持 ...

  8. makeKeyAndVisible的作用

    [self.window makeKeyAndVisible]; 这个是便捷方法,去使被使用对象的主窗口显示到屏幕的最前端.你也可以使用hiddenUIView方法隐藏这个窗口

  9. CSS3伪类选择器 图示

         

  10. OSChina 其中很重要的一类——RequestContext

    RequestContext 这个类在 OSChina 中是很重要的一个类.该类由全局 Filter 进行初始化.并传递给包含 Action 和 页面中直接使用.使用时通过 RequestContex ...