📄 mmseditorbat.java
字号:
package Src;
import java.beans.Statement;
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class mmsEditorBat {
// 设置铃声文件的文件目录。注意:该文件目录不能包含文件夹。
private static String fileDirector = "E:\\ll\\temp";
// 设置铃声首页内容。可以随便设置,将来可能还要用存储过程更新。
private static String mimeTextContent = "中国移动提醒您:您已通过12580成功下载了1首铃声,0.5元/条。更多精彩铃声下载、点歌、号码查询、美食等信息查询请随时拨打12580。";
// 设置配置 smil 文件的内容(一般不用变!)。分3部分!
// <smil><body><par dur="245s"><text src="11470777440040.txt"/><audio src="F0012.mid"/></par></body></smil>
// <smil><body><par dur="811s"><text src="11470779341140.txt"/><ref src="F0014.mmf"/></par></body></smil>
// <smil><body><par dur="5s"><text src="11474024900980.txt"/><ref src="L0002.amr"/></par></body></smil>
private String smilFistText = "<smil><body><par dur=\"60s\"><text src=\"";
private String smilSecondText = "\"/><audio src=\"";
private String smilThirdText = "\"/></par></body></smil>";
private String smilSecondTextAudio = "\"/><audio src=\""; // mid各式的铃声文件
private String smilSecondTextEx = "\"/><ref src=\""; // 其他各式的铃声文件
// 设置连接数据库的参数。
private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mmsdb2";
private String user ="sa_mmsdb2";//这里替换成你自已的数据库用户名
private String password = "diandian";//这里替换成你自已的数据库用户密码
private int tnContentID = -1;
private int tnMimeContentIDSmil = -1 ;
private int tnMimeContentIDText = -1 ;
private int tnMimeContentIDAudio = -1 ;
private String[] FileArray;
private static List fileListArray;
private static List tnContentIdList;
private static File fileList;
mmsEditorBat() {
fileListArray = (List) new ArrayList(); // 创建List对象。存放要导入的文件名称
tnContentIdList = (List) new ArrayList(); // 创建List对象。存放已经建立的彩信Id
fileList = new File(fileDirector); // 获取文件夹中所有文件名。
this.fileList(fileList); // 所有文件名放入“fileListArray”表中。
}
public static void main(String[] args) {
// File fileName = new File("F:\\test\\ok.txt"); // 在windows环境下的分隔符是"\\"
mmsEditorBat fileApp = new mmsEditorBat();
// fileApp.newFile(fileName);
fileApp.makeMms();
//fileApp.testSQl();
fileApp.getCreateMMSidShow();
}
public void newFile(File fileName) // 新建一个ok.txt文件
{
try {
fileName.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
public void fileList(File fileList) // 获取文件夹中所有文件名放入“fileListArray”表中
{
FileArray = fileList.list(); // 将文件夹中获得的文件名信息放入字符串数组中,便于放入List表中。
System.out.println(fileDirector + ":");
// System.out.println("FileArray.length:"+ FileArray.length);
for (int i = 0; i < FileArray.length; i++) { // 将字符串数组元素放入List表中,便于删除使用。
// System.out.println(FileArray[i]);
if (FileArray[i] != null && FileArray[i] != "") {
fileListArray.add(FileArray[i]);
} else {
System.out.println("FileArray[" + i
+ "] is null or blanck! can not add to fileListArray!");
}
}
System.out.println("fileListArray.size():" + fileListArray.size());
for (int i = 0; i < fileListArray.size(); i++) {
System.out.println(fileListArray.get(i));
}
System.out.println("--- end fileList ---");
}
public void makeMms() {
String fileName;
System.out.println("\n程序开始批处理导入文件到彩信数据库 MMSDB2");
while(!fileListArray.isEmpty()){
fileName = (String)fileListArray.get(0);
System.out.println("\n******** 开始导入文件:" + fileName +" ********");
try // head TRY()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection conn = DriverManager.getConnection(url, user, password);
String ex = "";
String qr = "";
String qr0 = "";
// -- begin my work --
// 在 MMS_TSysStoreContentKey 中的处理
System.out.print("\n\n-- 在 MMS_TSysStoreContentKey 中的处理 " );
ex = "insert into mmsdb2.dbo.MMS_TSysStoreContentKey(tcSubject) values ('"+ fileName + "') ";
PreparedStatement pstmt00 = conn.prepareStatement(ex);
pstmt00.executeUpdate();
pstmt00.close();
// 获取新建彩信Id
qr = "select tnContentID from mmsdb2.dbo.MMS_TSysStoreContentKey where tcSubject = '" + fileName + "'";
PreparedStatement pstmt10 = conn.prepareStatement(qr); // ok
java.sql.ResultSet rs10 = pstmt10.executeQuery();
while (rs10.next()) {
int i = 0;
tnContentID = rs10.getInt("tnContentID"); // 取得彩信id号
if(rs10.wasNull() || tnContentID == -1 ){
//System.out.print("-- info 没有获取到最大的MimeId号码,程序错误! ");
throw new NullPointerException("-- info 没有获取到彩信Id号,程序错误! "); // 抛出异常!
}else{
System.out.print("\n获取到新建的彩信Id号:" + tnContentID);
}
}
System.out.print("\n要处理的彩信Id号为:" + tnContentID);
tnContentIdList.add(Integer.toString(tnContentID));
pstmt10.close();
// 在 MMS_TSysStoreContentMime 中的处理
System.out.print("\n\n-- 在 MMS_TSysStoreContentMime 中的处理 " );
String tcMimeContentName = "";
String textContent = "";
//在 MMS_TSysStoreContentMime中插入text元素信息
tcMimeContentName = "" + System.currentTimeMillis();
tcMimeContentName = tcMimeContentName + ".txt";
textContent = tcMimeContentName;
System.out.print("\ntcMimeContentName:" + tcMimeContentName);
ex = "insert into mmsdb2.dbo.MMS_TSysStoreContentMime(tcMimeType,tcMimeContentName,tcContent) values ('text/plain','" + tcMimeContentName + "','" + this.mimeTextContent +"') ";
PreparedStatement pstmt01 = conn.prepareStatement(ex);
pstmt01.executeUpdate();
pstmt01.close();
// 获取text元素的MimeId
qr = "select tnMimeContentID from mmsdb2.dbo.MMS_TSysStoreContentMime where tcMimeContentName = '" + tcMimeContentName + "'"; // 判断该
PreparedStatement pstmt11 = conn.prepareStatement(qr); // ok
java.sql.ResultSet rs11 = pstmt11.executeQuery();
while (rs11.next()) {
tnMimeContentIDText = rs11.getInt("tnMimeContentID");
if(rs11.wasNull() || tnMimeContentIDText == -1){
throw new NullPointerException("\n-- info 没有获取到text的MimeId号码,程序错误! "); // 抛出异常!
}else{
System.out.print("\n获取到text的MimeId号码:" + tnMimeContentIDText);
}
}
pstmt11.close();
//在 MMS_TSysStoreContentMime中插入smil元素信息
tcMimeContentName = "" + System.currentTimeMillis();
tcMimeContentName = tcMimeContentName + ".smil";
if(fileName.contains(".mid")){
this.smilSecondText = this.smilSecondTextAudio;
}else{
this.smilSecondText = this.smilSecondTextEx;
}
String smileContent = this.smilFistText + textContent + this.smilSecondText + fileName + this.smilThirdText ;
ex = "insert into mmsdb2.dbo.MMS_TSysStoreContentMime(tcMimeType,tcMimeContentName,tcContent) values ('application/smil','" + tcMimeContentName + "','" + smileContent +"') ";
PreparedStatement pstmt02 = conn.prepareStatement(ex);
pstmt02.executeUpdate();
pstmt02.close();
// 获取text元素的MimeId
qr = "select tnMimeContentID from mmsdb2.dbo.MMS_TSysStoreContentMime where tcMimeContentName = '" + tcMimeContentName + "'"; // 判断该
PreparedStatement pstmt12 = conn.prepareStatement(qr); // ok
java.sql.ResultSet rs12 = pstmt12.executeQuery();
while (rs12.next()) {
this.tnMimeContentIDSmil = rs12.getInt("tnMimeContentID");
if(rs12.wasNull() || tnMimeContentIDSmil == -1){
throw new NullPointerException("-- info 没有获取到text的MimeId号码,程序错误! "); // 抛出异常!
}else{
System.out.print("\n获取到text的MimeId号码:" + tnMimeContentIDSmil);
}
}
pstmt12.close();
// 在 MMS_TSysStoreContentMime中插入 二进制 元素信息
FileInputStream infile = new FileInputStream(fileDirector + "\\" + fileName );//2135 byte
long filelength=infile.available();
String tcMimeType = "";
if(fileName.contains(".mid")){
tcMimeType = "audio/mid";
}else{
tcMimeType = "application/octet-stream";
}
PreparedStatement pstmt04 = conn.prepareStatement("insert into mmsdb2.dbo.MMS_TSysStoreContentMime(tcMimeType,tcMimeContentName,tbContent) values(?,?,?)");//ok
pstmt04.setString(1,tcMimeType);
pstmt04.setString(2,fileName);
pstmt04.setBinaryStream(3, infile, infile.available());
pstmt04.executeUpdate();
System.out.println("\n数据库操作成功,恭喜你!!");
pstmt04.close();
infile.close();
// 获取 二进制 元素的MimeId
tcMimeContentName = fileName;
qr = "select tnMimeContentID from mmsdb2.dbo.MMS_TSysStoreContentMime where tcMimeContentName = '" + tcMimeContentName + "'"; // 判断该
PreparedStatement pstmt13 = conn.prepareStatement(qr); // ok
java.sql.ResultSet rs13 = pstmt13.executeQuery();
while (rs13.next()) {
this.tnMimeContentIDAudio = rs13.getInt("tnMimeContentID");
if(rs13.wasNull() || tnMimeContentIDAudio == -1){
throw new NullPointerException("-- info 没有获取到 二进制 的MimeId号码,程序错误! "); // 抛出异常!
}else{
System.out.print("\n获取到 二进制 的MimeId号码:" + tnMimeContentIDAudio);
}
}
pstmt13.close();
// 在 MMS_TSysStoreContentID 中的处理
System.out.print("\n\n-- 在 MMS_TSysStoreContentID 中的处理 " );
System.out.print("要建立的彩信Id:" + tnContentID + "\n");
//在 MMS_TSysStoreContentID中插入第一个Mime元素信息
ex = "insert into mmsdb2.dbo.MMS_TSysStoreContentID(tnContentID,tnMimeContentID,tnSeqNo) values ("+ tnContentID + ","+ this.tnMimeContentIDSmil + ","+ 0 +") ";
PreparedStatement pstmt05 = conn.prepareStatement(ex);
pstmt05.executeUpdate();
pstmt05.close();
//在 MMS_TSysStoreContentID中插入第二个Mime元素信息
ex = "insert into mmsdb2.dbo.MMS_TSysStoreContentID(tnContentID,tnMimeContentID,tnSeqNo) values ("+ tnContentID + ","+ this.tnMimeContentIDText + ","+ 1 +") ";
PreparedStatement pstmt06 = conn.prepareStatement(ex);
pstmt06.executeUpdate();
pstmt06.close();
//在 MMS_TSysStoreContentID中插入第三个Mime元素信息
ex = "insert into mmsdb2.dbo.MMS_TSysStoreContentID(tnContentID,tnMimeContentID,tnSeqNo) values ("+ tnContentID + ","+ this.tnMimeContentIDAudio + ","+ 2 +") ";
PreparedStatement pstmt07 = conn.prepareStatement(ex);
pstmt07.executeUpdate();
pstmt07.close();
conn.close();
//
} catch (Exception err) {
err.printStackTrace(System.out);
}
fileListArray.remove(fileName);
}
}
public void getCreateMMSidShow(){
System.out.println( "\n===== 新创建的彩信ID号:=====" );
System.out.println( "总共:" + this.tnContentIdList.size() + " 条!\n" );
for(int i = 0;i < this.tnContentIdList.size();i++){
System.out.println(tnContentIdList.get(i));
}
}
public void testSQl()
{
String RL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=meimei";
String user ="sa";//这里替换成你自已的数据库用户名
String password = "diandian";//这里替换成你自已的数据库用户密码
String sqlStr = "select * from UT_COMM_COMMAND";
try{ //这里的异常处理语句是必需的.否则不能通过编译!
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println( "类实例化成功!" );
System.out.println("slkdjf");
Connection con = DriverManager.getConnection(RL,user,password);
System.out.println( "创建连接对像成功!" );
Statement st = (Statement) con.createStatement();
System.out.println( "创建Statement成功!" );
ResultSet rs = ((java.sql.Statement) st).executeQuery( sqlStr );
System.out.println( "操作数据表成功!" );
System.out.println( "----------------!" );
while(rs.next())
{
System.out.print(rs.getInt("UniformServiceId") + " ");
System.out.print(rs.getString("MsgContent") + " ");
System.out.print(rs.getInt("GateWayId") + " ");
System.out.print(rs.getString("Memo") + " ");
System.out.println(rs.getString("ProcName"));
}
rs.close();
((Connection) st).close();
con.close();
}
catch(Exception err){
err.printStackTrace(System.out);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -