1.今天的任务是在数据库插入一条写死的数据
//EastScorePService.ts
import jsdom from "jsdom";
import jquery from "jquery";
import * as mysql from 'mysql'
import { HttpUtilEx } from "../../../utils/HttpUtilEx.js";
import { PageDao } from "../../../content/dao/PageDao.js";
import { PaginationDao } from "../../../content/dao/PaginationDao.js";
import { StringUtilEx } from "../../../utils/StringUtilEx.js";
import { ScoreDto } from "../dto/ScoreDto.js";
import { EastScoreService } from "../main/EastScoreService.js"
export class EastScorePService {
private static instance: EastScorePService = null;
public static getInstance(): EastScorePService {
if (EastScorePService.instance == null) {
EastScorePService.instance = new EastScorePService();
}
return EastScorePService.instance;
}
async calc() {
let result = new Array();
let test1 = new ScoreDto();
let test2 = new ScoreDto();
test1.setCode(600899);
test1.setDate('2021-12-16');
test1.setCount(2);
result.push(test1);
test2.setCode(6220899);
test2.setDate('2021-12-15');
test2.setCount(4);
result.push(test2);
EastScoreService.getInstance().importToDB(result);
}
//return result;
}
(
async function () {
let data = await EastScorePService.getInstance().calc();
}
)();
//EastScoreService.ts
import * as mysql from 'mysql'
import { ScoreDto } from '../dto/ScoreDto.js';
import { StringUtilEx } from "../../../utils/StringUtilEx.js";
export class EastScoreService {
private static instance: EastScoreService = null;
public static getInstance(): EastScoreService {
if (EastScoreService.instance == null) {
EastScoreService.instance = new EastScoreService();
}
return EastScoreService.instance;
}
public async importToDB(data: Array<ScoreDto>) {
let connection = mysql.createConnection({
host: '182.42.131.246',
port: 3306,
user: 'root',
password: 'abc123456',
database: 'eastmoney'
});
await connection.connect();
//#https://www.runoob.com/nodejs/nodejs-mysql.html
let commitCount = 0;
for (let i = 0; i < data.length && i < 5; i++) {
let dto = data[i];
let sqlData = [dto.getCode(), dto.getDate(), dto.getCount()];
let sqlArray = new Array();
sqlArray.push(sqlData[0]);
sqlArray.push(sqlData[1]);
let sqlStr = `insert into stock_score(Code,Date,Count)values(?,?,?)`;
connection.query(sqlStr, sqlData, function (error, results, fields) {
if (error)
throw error;
console.log('The solution is: ', results);
connection.commit();
commitCount++;
if (commitCount == data.length) {
connection.end();
}
});
};
}
}
ScoreDto.ts
export class ScoreDto {
private date: string;
private code: number;
private name: string;
private count: number;
public setName(name: string) {
this.name = name;
}
public getName() {
return this.name;
}
public setCode(code: number) {
this.code = code;
}
public getCode() {
return this.code;
}
public setDate(date: string) {
this.date = date;
}
public getDate() {
return this.date;
}
public setCount(count: number) {
this.count = count;
}
public getCount() {
return this.count;
}
}
遇到的问题:1.直接在文件目录中.ts文件所在位置打开这三个文件,而不是打开工程DataAnalyzer,tsc转译不了。
解决办法:必须在右键单击,用Vscode打开DataAnalyzer,打开它的上一级下一级都会报错。
2.tsc时报错:Cannot use import statement outside a module
解决办法:打开工程里的package.json文件,添加"type":“module”,