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

📄 databasetool.java

📁 Lucene+nuctch一书的全部源码 测试源码 和几个简单的项目
💻 JAVA
字号:
package Chapter12;

import java.io.File;
import java.io.IOException;
import java.sql.*;
import java.io.*;
import java.sql.*;
import org.apache.lucene.store.Directory; 
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.analysis.standard.StandardAnalyzer;

import org.apache.lucene.index.IndexWriter;
import java.util.Vector;
import org.apache.lucene.analysis.*;

public class databaseTool {
	
	private String strdriver;
	private String connstring;

	private Connection connection;
	private Statement statement;
	ConfigManager config = new ConfigManager();
	
	String driver   = config.getItemValue("MSSQL", "driver");
	String address  = config.getItemValue("MSSQL", "address");
	String username = config.getItemValue("MSSQL", "user");
	String passwd   = config.getItemValue("MSSQL", "passwd");
	
	public databaseTool()
	{
		strdriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";  
		connstring = address;
		String user = username;   
		String password = passwd; 
		try {
			Class.forName(strdriver).newInstance();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} try {
			connection = DriverManager.getConnection(connstring, user, password);
		} catch (SQLException e) {
			e.printStackTrace();
		} try {
			statement = connection.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
		}		
	}
	
	public databaseTool(String strconnect) {
		strdriver = driver;  
		connstring = address;
		String user = username;
		String password = passwd;
		
		try {
			Class.forName(strdriver).newInstance();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} try {
			connection = DriverManager.getConnection(connstring, user, password);
		} catch (SQLException e) {
			e.printStackTrace();
		} try {
			statement = connection.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		databaseTool tool = new databaseTool("BookData");
		tool.closedatatool();
	}	

	public ResultSet searchByField(String table,String name, String value) {
		ResultSet rs=null;
		String sql="select * from "+table+" where ("+name+" like '%"+value+"%')";
		System.out.println(sql);
		try {
			rs = statement.executeQuery(sql);
		} catch (SQLException e) {
			System.out.println("databaseTool:searchByColumn!");
			e.printStackTrace();
			}
		return rs;
	}
	public ResultSet searchresult(String sql){
		ResultSet rs=null;
		try {
			rs=statement.executeQuery(sql);
		} catch (SQLException e) {
			System.out.println("databaseTool:查询出错");
			e.printStackTrace();
		}
		return rs;
}

	public boolean closedatatool() {
		try {
			statement.close();
			connection.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println("databaseTool:关闭数据库失败");
			e.printStackTrace();
			return false;
		}
		return true;
	}
	public String countItem(String tableName){
		String result=null;
		String sql="SELECT COUNT(*) FROM "+tableName;
		try {
			ResultSet rs=statement.executeQuery(sql);
			if(rs.next()){
			result=rs.getString(1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}
	
	public int  IndexCreate(String indexpath) throws IOException
	{
		int num = 0;
		try{
			IndexWriter FSWriter = new IndexWriter(indexpath,new StandardAnalyzer(),false);
			FSWriter.setUseCompoundFile(true);
		
			num = FSWriter.docCount();
			
			IndexCreate(FSWriter);
			FSWriter.optimize();
			FSWriter.close();
		} catch (IOException e){
			e.printStackTrace();
		}
		
		return num;
	}
	
	public boolean  IndexCreate(IndexWriter fswriter) throws IOException {

		Connection conn = null;
		ConfigManager config = new ConfigManager();
		String driver = config.getItemValue("MSSQL", "driver");
		String address = config.getItemValue("MSSQL", "address");
		String username = config.getItemValue("MSSQL", "user");
		String passwd = config.getItemValue("MSSQL", "passwd");
		config=null;
		try {
			Class.forName(driver).newInstance();
		} catch (InstantiationException e2) {
			e2.printStackTrace();
		} catch (IllegalAccessException e2) {
			e2.printStackTrace();
		} catch (ClassNotFoundException e2) {
			e2.printStackTrace();
		}
		String url = address;
		String user = username;
		String password = passwd;
		Statement stmt = null;
		Statement stmt1 = null;
		Statement stmt2 = null;
		Statement stmt3 = null;
		Statement stmt4 = null;
		int countNum=0;
		int countMin =0;
		int tempcount=0;
		try {
			conn = DriverManager.getConnection(url, user, password);
			stmt =  conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			stmt1 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			stmt2 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			stmt3 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			stmt4 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
		} catch (SQLException e2) {
			e2.printStackTrace();
		}
		
		ResultSet rsCount =null;
		try {
			String countSql = "select max(id),min(id) from Lucene_content";
			rsCount = stmt.executeQuery(countSql);
			while(rsCount.next()){
			countNum = rsCount.getInt(1);
			countMin = rsCount.getInt(2);
			
			}
			System.out.println("countNum="+countNum);
			System.out.println("countMin="+countMin);
		} catch (SQLException e2) {
			e2.printStackTrace();
		}finally{
			if(stmt!=null){
				try {
					stmt.close();
					stmt = null;
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		ResultSet rs = null;
		long time = System.currentTimeMillis();
		String sql = null;
		int rs_num = 0;
		int value = 1000;
		int MergeFactorValue = 200;
		IndexWriter writer = null;
		FileManager manager = new FileManager();
		Vector v = manager.getFile(); 
		String temp =(String)v.get(0);
		int infoCount= Integer.parseInt(temp);
		if(countNum<=infoCount){
			return false;      // 异常退出
		}

		sql = "select * from Lucene_content where id  between "  + countMin + " and " + countNum + " " ;
		try {
			rs = stmt1.executeQuery(sql);
		} catch (SQLException e1) {
			e1.printStackTrace();
			return false;      // 异常退出
			
		}	
		Directory ramdirectory = new RAMDirectory();
		Analyzer TextAnalyzer = new StandardAnalyzer();            // 生成分析器
		IndexWriter RAMWriter = new IndexWriter(ramdirectory ,TextAnalyzer ,true); // 生成索引器
		
		try{
			while (rs.next()) 
			{
				rs_num ++;
				try {
					
					String id = rs.getString("id");
					if (id == null || id.equalsIgnoreCase(""))
						id = " " ;
					Field field_id = new Field("id", id,   
							Field.Store.YES,Field.Index.UN_TOKENIZED);
					
					String title = rs.getString("title");
					if (title == null || title.equalsIgnoreCase(""))
						title = " ";
					Field field_title = new Field("title", title,   
							Field.Store.YES,Field.Index.TOKENIZED);
					
					String contents = rs.getString("contents");
					if (contents == null || contents.equalsIgnoreCase(""))
						contents = " ";	
					Field field_contents = new Field("contents", contents,   
							Field.Store.YES,Field.Index.TOKENIZED);
	
					Field field_type = new Field("type", "dataBase" ,   
							Field.Store.YES,Field.Index.UN_TOKENIZED);
														
					Document document = new Document() ; 
					document.add(field_id);
					document.add(field_title);
					document.add(field_contents);
					document.add(field_type);
					
					RAMWriter.addDocument(document);
				
					
				}catch (SQLException e) {
					continue;  // 跳过当前行
				}
				
			}
			RAMWriter.optimize();
			RAMWriter.close();
			fswriter.addIndexes(new Directory[]{ramdirectory});
			
		}catch (SQLException e) {
			;  
		}

		return true;				
	}
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -