MyBatis学习笔记(3)—— 利用mybatis灌入假数据
由于第三方厂商未能按时提供实时数据,故需要纯手动导入一些实时数据,用于统计分析。正好最近自己学习了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灌入假数据的更多相关文章
- (原创)mybatis学习四,利用mybatis自动创建代码
在使用mybatis的过程中,我们可以直接利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件,然后copy到工程中即可 需要的jar包如下 下载路径如下:下载jar包 其中的g ...
- MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...
- mybatis 学习笔记 -详解mybatis 及实例demo
快速入门1 要点: 首先明白mybatis 是什么 这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. 首先, ...
- mybatis学习笔记 spring与mybatis整合
转载自http://blog.csdn.net/naruto_Mr/article/details/48239357 1.创建web工程,导入spring依赖包与mybatis依赖包,还需要mybat ...
- Mybatis学习01:利用mybatis查询数据库
通过mybatis来操作mysql数据库的步骤大致可分为以下几步: 在这里,我们以对下面这个这个表格进行操作为例: 表名:ssm 1 配置依赖 在pom.xml中添加所需要的的依赖 <!-- m ...
- SpringMVC + Spring + MyBatis 学习笔记:为MyBatis增加打印SQL功能 (最简化配置)
系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 1.以下jar包拷贝到 ...
- MyBatis学习笔记1--初识MyBatis
我也是初学者,写博客只是想把自己的整个思路整理一下,有不对或者不好的地方,请大家多多指正. 1.MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...
- MyBatis学习笔记(三)——优化MyBatis配置文件中的配置
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4264301.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的 ...
- 1.1(Mybatis学习笔记)初识Mybatis
一.Mybatis下载与使用 下载地址:https://github.com/mybatis/mybatis-3/releases 下载后解压目录: 需要将lib下的jar包和mybatid-x-x- ...
随机推荐
- CH Round #52 - Thinking Bear #1 (NOIP模拟赛)
A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...
- SQL约束和字段约束的创建和删除
1)禁止所有表约束的SQLselect 'alter table '+name+' nocheck constraint all' from sysobjects where type='U' 2)删 ...
- 数论(毕达哥拉斯定理):POJ 1305 Fermat vs. Pythagoras
Fermat vs. Pythagoras Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 1493 Accepted: ...
- 如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题
今天要写个程序,环境是win7+ vs2008+ oracle.首先得保证能连接到数据库.确认代码是没有问题的,但是拿过来直接.报错: “尝试加载 Oracle 客户端库时引发 BadImageFor ...
- Android 屏幕截图
1.同时按下电源键+音量下键截屏 PhoneWindowManager.java private void interceptScreenshotChord() { if (mScreenshotCh ...
- 动态规划——概率dp
所谓概率dp,用动态规划的思想找到一个事件中可能发生的所有情况,然后找到符合要求的那些情况数,除以总数便可以得到符合要求的事件发生的概率.其核心思想还是通过dp来得到事件发生的所有情况,很类似在背包专 ...
- 简单的闭包运算(Closure)演示程序
/* * 该程序用于计算某个产生式的闭包 * RexfieldVon * 2013年8月9日16:01:38 */ #include <stdio.h> #include <stdl ...
- J - Invitation Cards
题目大意:邀请卡 在电视的时代,没有多少人会去剧院观看演出.古老的喜剧演员 Malidinesia知道这个事实.他们想传播戏剧尤其是古老的戏剧,他们在邀请卡上打印必要的信息和一些节目,一些学生被雇佣过 ...
- 使用drawRect有什么影响
用来画图,这个方法会在intiWithRect时候调用.这个方法的影响在于有touch event的时候之后,会重新绘制,很多这样的按钮的话就会比较影响效率.以下都会被调用1.如果在UIView初始化 ...
- greenplum和postgresql
想着要不要写,两个原因"懒"和"空".其实懒和空也是有联系的,不是因为懒的写,而是因为对PostgreSQL和Npgsql的知识了解匮乏,也就懒得写.好了,开头 ...