⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmseditorbat.java

📁 批处理导入彩信文件到数据库。制作大量固定格式彩信时候用到。
💻 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 + -