通过xml配置文件得到数据库信息

更新程序:
-----------------------------------------------------------------------------------------------------------
当前目录下新建config.xml文件:
文件内容:
<Config>
        <DBConfig>
                <driver>com.pointbase.jdbc.jdbcUniversalDriver</driver>        //driver信息
                <url>jdbc:pointbase:server://localhost:9092/test</url>          //url信息
                <user>PBPUBLIC</user>                                                          //数据库user
                <password>PBPUBLIC</password>                               //数据库password
        </DBConfig>
       
        <DBOperation>       
                <Select>
                        <SQL>select id ,name ,age ,address  from test</SQL> //sql语句,用来查询
                        <Text>select.csv</Text>  //查询结果的输出文件名
                </Select>
       
                <Insert>
                        <SQL>insert into test values('0011','sandy','25','shanghai')</SQL>
                        <Text>insert.csv</Text>
                </Insert>
               
                <Update>
                        <SQL>update test set address = '上海'</SQL>
                        <Text>update.csv</Text>
                </Update>
               
                <Delete>
                        <SQL>delete from test where id = '0008'</SQL>       
                        <Text>delete.csv</Text>
                </Delete>               
        </DBOperation>
</Config>

--------------------------------------------------------------------------------------------------------
新建一个.java文件,专门用来解析xml,这里我用的是开源的工具jdom,现在比较流行
新建文件:XmlParse.java 在同一个package内
--------------------------------------------------------------------------------------------------------
package ConnectionTest;

import java.io.IOException;
import java.util.HashMap;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class XmlParse {
        private HashMap configTable= new HashMap();

        public HashMap parseXML() throws JDOMException, IOException{
                SAXBuilder builder = new SAXBuilder();
                Document readDoc = builder.build("src.test/ConnectionTest/config.xml");
               
                Element config = readDoc.getRootElement();
                System.out.println(config.getName());
               
                Element e = config.getChild("DBConfig");
                HashMap dbConfig = new HashMap();
                configTable.put("dbconfig_driver",e.getChildText("driver"));
                configTable.put("dbconfig_url",e.getChildText("driver"));
                configTable.put("dbconfig_user",e.getChildText("user"));
                configTable.put("dbconfig_password",e.getChildText("password"));
               
                HashMap dbOper = new HashMap();
                e = config.getChild("DBOperation");
               
                Element c = e.getChild("Select");
                configTable.put("dboperation_selectSQL",c.getChildText("SQL"));
                configTable.put("dboperation_selectText",c.getChildText("Text"));
               
                c = e.getChild("Insert");
                configTable.put("dboperation_insertSQL",c.getChildText("SQL"));
                configTable.put("dboperation_insertText",c.getChildText("Text"));
               
                c = e.getChild("Update");
                configTable.put("dboperation_updateSQL",c.getChildText("SQL"));
                configTable.put("dboperation_updateText",c.getChildText("Text"));
               
                c = e.getChild("Delete");
                configTable.put("dboperation_deleteSQL",c.getChildText("SQL"));
                configTable.put("dboperation_deleteText",c.getChildText("Text"));
               
                return configTable;
        }

}

--------------------------------------------------------------------------------------------------------
最后是主程序修改:

--------------------------------------------------------------------------------------------------------
package ConnectionTest;

import java.io.BufferedWriter;
//import java.io.File;
//import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import org.jdom.JDOMException;

public class ContactTest {       
        private Connection conn = null;
        private int flag;
        private HashMap config = new HashMap();  //存放从config.xml中得到的配置信息
       
        static final String LINE_SEPARATOR = System.getProperty("line.separator");
       
        /*
         * 增加了构造器,得到解析后的xml的配置信息列表
         */
        public ContactTest() throws JDOMException, IOException{
                XmlParse xml = new XmlParse();
                config = xml.parseXML();
        }
       
        public void getConnection(){
                try{
                        /*
                         * 修改了程序,通过从配置文件中取得数据库信息
                         */
                       
                        /*
                        File file = new File("./src/test/ConnectionTest/config.properties");  //确定你的目录路径
                        Properties props = new Properties();
                        props.load(new FileInputStream(file));
       
                        String JDBC_URL = props.getProperty("db_url");
                        String JDBC_DRIVER= props.getProperty("db_driver");                                       
                        String USER = props.getProperty("db_user");
                        String PASSWORD = props.getProperty("db_password");
                        */
                        String JDBC_URL = (String)config.get("dbconfig_url");
                        String JDBC_DRIVER= (String)config.get("dbconfig_driver");                                       
                        String USER = (String)config.get("dbconfig_user");
                        String PASSWORD = (String)config.get("dbconfig_password");
                       
                        Class.forName(JDBC_DRIVER).newInstance();
                        conn = DriverManager.getConnection(JDBC_URL,USER,PASSWORD);
                        System.out.println("connection success-------------");
                }catch(Exception e){
                        e.printStackTrace();
                }
        }
       
        public void closeConnection() throws SQLException{
                if(this.conn != null){
                        conn.close();
                }
        }
       
        public void getResult(int flag,Collection col) throws IOException{
                String name = null;
                if(flag == 0){
                        System.out.println("输出查询信息");
                        name = (String)config.get("dboperation_selectText");  //从配置中得到文件名,不再是固定文件名了
                        WriterOut(name,col);
                }else if(flag == 1){
                        System.out.println("输出插入信息");
                        name = (String)config.get("dboperation_insertText");;
                        WriterOut(name,col);
                }else if(flag == 2){
                        System.out.println("输出修改信息");
                        name = (String)config.get("dboperation_updateText");;
                        WriterOut(name,col);
                }else if(flag == 3){
                        System.out.println("输出删除信息");
                        name = (String)config.get("dboperation_deleteText");;
                        WriterOut(name,col);
                }else{
                        System.out.println("标志码输入错误");
                }
        }
       
        public void WriterOut(String name,Collection list) throws IOException{
                String path = "d:/"+name;
               
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path)));
                int count = list.size();
                String csvData[] = new String[count];
               
                Iterator it = list.iterator();
               
                int i = 0;
                while(it.hasNext()){
                        String temp = (String)it.next();
                        System.out.println(temp);
                        csvData[i] = temp;
                        i++;
                }
               
                for(int j = 0;j < csvData.length;j++)
                {
                        writer.write(csvData[j] + LINE_SEPARATOR);
                       
                }
                writer.close();
               
        }
       
        public void SelectDB(){
                try{
                        getConnection();
                        Statement stmt  = this.conn.createStatement();
                        String SQL = (String)config.get("dboperation_selectSQL");
                        ResultSet rs = stmt.executeQuery(SQL);
                       
                        Collection col = new ArrayList();  //集合,用来存放数据库信息
                       
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();

                        String temp = "";
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");

                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);
                       
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }       
                                }
                                col.add(temp);   //
                                System.out.println(" ");
                        }
                        getResult(0,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
        }
       
        public void InsertDB(){
                try{
                        getConnection();
                        String SQL = (String)config.get("dboperation_insertSQL");
                        PreparedStatement pstmt  = this.conn.prepareStatement(SQL);
                       
                        ResultSet rs = pstmt.executeQuery();
                        conn.commit();
                       
                        SQL = (String)config.get("dboperation_selectSQL");;
                        Statement stmt = this.conn.createStatement();
                        rs = stmt.executeQuery(SQL);
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();
                       
                        Collection col = new ArrayList();
                       
                        String temp = "";
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");
                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }
                                }
                                col.add(temp);
                                System.out.println(" ");
                        }
                        getResult(1,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
        }
       
        public void UpdateDB(){
                try{
                        getConnection();
                        String SQL = (String)config.get("dboperation_updateSQL");
                        PreparedStatement pstmt  = this.conn.prepareStatement(SQL);
                       
                        ResultSet rs = pstmt.executeQuery();
                        conn.commit();
                       
                        SQL = (String)config.get("dboperation_selectSQL");
                        Statement stmt = this.conn.createStatement();
                        rs = stmt.executeQuery(SQL);
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();
                       
                        Collection col = new ArrayList();
                       
                        String temp = "";
                       
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");
                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);
                       
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }
                                }
                                col.add(temp);
                                System.out.println(" ");
                        }
                        getResult(2,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
               
        }
       
        public void DeleteDB(){
                try{
                        getConnection();
                        String SQL = (String)config.get("dboperation_deleteSQL");
                        PreparedStatement pstmt  = this.conn.prepareStatement(SQL);
                       
                        ResultSet rs = pstmt.executeQuery();       
                        conn.commit();
                       
                        SQL = (String)config.get("dboperation_selectSQL");
                        Statement stmt = this.conn.createStatement();
                        rs = stmt.executeQuery(SQL);
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();
                       
                        Collection col = new ArrayList();
                       
                        String temp = "";
                       
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");
                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }
                                }
                                col.add(temp);
                                System.out.println(" ");
                        }
                        getResult(3,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
               
        }
       
        public void excute(int tag){
                if(tag == 0){
                        System.out.println("进行查询操作");
                        SelectDB();
                }else if(tag == 1){
                        System.out.println("进行添加操作");
                        InsertDB();
                }else if(tag == 2){
                        System.out.println("进行修改操作");
                        UpdateDB();
                }else if(tag == 3){
                        System.out.println("进行删除操作");
                        DeleteDB();
                }else{
                        System.out.println("标志码输入错误");
                }
        }
       
        public static void main(String[] args) throws JDOMException, IOException
        {
                ContactTest  ct = new ContactTest ();
                ct.flag = 0;  //0-查询;1-添加;2-修改;3-删除
                ct.excute(ct.flag);
        }
       
}

为了便于你更好理解这些程序,我增加了注释,建议使用editplus来看,这样比较好区分注释
config.xml:
----------------------------------------------------------------------------------------------------------
<!----------首先是根节点<config>--------->
<Config> 
<!----------然后是子节点<DBConfig>,用来存放数据库的配置信息--------->
        <DBConfig>
                <!-------在该节点下的第一个配置参数<dirver>:数据库驱动,<driver></driver>是标签,当中就是你的配置信息------->
                <driver>com.pointbase.jdbc.jdbcUniversalDriver</driver>
                <!-------在该节点下的第二个配置参数<url>:数据库url地址--------->
                <url>jdbc:pointbase:server://localhost:9092/test</url>
                <!-------在该节点下的第三个配置参数<user>:数据库用户名--------->
                <user>PBPUBLIC</user>
                <!-------在该节点下的第四个配置参数<password>:数据库密码--------->
                <password>PBPUBLIC</password>               
        </DBConfig>

<!----------然后是子节点<DBOperation>,用来存放对数据库的操作信息,这个和<DBConfig>是同一个级别的--------->               
        <DBOperation>
                <!-------在该节点下的第一个子节点<select>:对数据库进行select操作--------->
                <Select>
                                <!-------在该子节点下有两个具体的配置参数--------->
                                <!-------配置参数<SQL>,对数据库进行select的操作的查询语句,就是将在程序中的查询语句在这里定义了------>
                        <SQL>select id ,name ,age ,address  from test</SQL>
                                <!--配置参数<Text>,根据你的业务需求需要在不同的数据库操作后输出不同的文件信息,这里存放输出的文件名-->
                        <Text>select.csv</Text>
                </Select>
                       
        <!-------在该节点下的第二个子节点<insert>:对数据库进行insert操作--------->
                <Insert>
                        <SQL>insert into test values('0011','sandy','25','shanghai')</SQL>
                        <Text>insert.csv</Text>
                </Insert>
        
                <!-------在该节点下的第三个子节点<update>:对数据库进行update操作--------->
                <Update>
                        <SQL>update test set address = '上海'</SQL>
                        <Text>update.csv</Text>
                </Update>
        
                <!-------在该节点下的第四个子节点<delete>:对数据库进行delete操作--------->
                <Delete>
                        <SQL>delete from test where id = '0008'</SQL>       
                        <Text>delete.csv</Text>
                </Delete>               
        </DBOperation>
</Config>


XmlParse.java  增加注释:
-----------------------------------------------------------------------------------------------------------
package ConnectionTest;

import java.io.IOException;
import java.util.HashMap;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

/*
* 对xml进行解析,从xml中拿到所有的配置信息,放在集合中,采用HashMap集合方式
* HashMap是采用key = value的方式存放的,所以可以通过对应的key值得到相应的配置信息
* 这个和xml的标签和标签内容是一一对应的,例如<user>public</user>是标签,那么在
* HashMap中这配置信息的就可以存放为,key = "user",value = "public"来存放
* 具体的参照API文档
*/
public class XmlParse {
        private HashMap configTable= new HashMap(); //生成一个HashMap,用来存放所有的配置信息

        /*
         * 方法parseXML,具体执行解析xml文件
         * 返回一个HashMap,就是将解析完成的含有配置信息的HashMap返回
         */
        public HashMap parseXML() throws JDOMException, IOException{
                //固定格式,先生成解析器,再建立Document
                SAXBuilder builder = new SAXBuilder();
                //将你要解析的xml文件导入,注意文件的路径,总是以工程文件的根目录为起点的
                Document readDoc = builder.build("src.test/ConnectionTest/config.xml");
               
                //Element为xml中元素节点,这里通过getRootElement()方法得到根节点
                Element config = readDoc.getRootElement();
                //通过根节点得到一个名字为"DBConfig"的子节点
                Element e = config.getChild("DBConfig");
               
                //在这个子节点下有四个具体的配置信息,我们通过e.getChildText()这个
                //方法得到里面的具体的配置信息,就是<></>标签中间的部分,"driver"就是
                //标签的名字
                //再通过HashMap的put(key,value)的方法将这些信息保存到HashMap中
                configTable.put("dbconfig_driver",e.getChildText("driver"));
                configTable.put("dbconfig_url",e.getChildText("url"));
                configTable.put("dbconfig_user",e.getChildText("user"));
                configTable.put("dbconfig_password",e.getChildText("password"));
               
        //再次通过根节点得到一个名字为"DBOperation"的子节点
                e = config.getChild("DBOperation");
               
                //找到该子节点下的一个名字为"Select"的子节点
                Element c = e.getChild("Select");
                //同样进行读取节点信息和HashMap的保存操作
                configTable.put("dboperation_selectSQL",c.getChildText("SQL"));
                configTable.put("dboperation_selectText",c.getChildText("Text"));
               
                //以下同上
                c = e.getChild("Insert");
                configTable.put("dboperation_insertSQL",c.getChildText("SQL"));
                configTable.put("dboperation_insertText",c.getChildText("Text"));
               
                c = e.getChild("Update");
                configTable.put("dboperation_updateSQL",c.getChildText("SQL"));
                configTable.put("dboperation_updateText",c.getChildText("Text"));
               
                c = e.getChild("Delete");
                configTable.put("dboperation_deleteSQL",c.getChildText("SQL"));
                configTable.put("dboperation_deleteText",c.getChildText("Text"));
               
                //最后将解析完成,保存后的HashMap返回
                return configTable;
        }

}


ContactTest.java 增加注释:
--------------------------------------------------------------------------------------------------------
package ConnectionTest;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

import org.jdom.JDOMException;

public class ContactTest {       
        private Connection conn = null;  //数据库连接connection
        private int flag;  //标志位,判断数据库操作
        private HashMap config = new HashMap();  //存放从config.xml中得到的配置信息
       
        //常量,分行标志符,从系统中获得的
        static final String LINE_SEPARATOR = System.getProperty("line.separator");
       
        /*
         * 增加了构造器,得到解析后的xml的配置信息列表
         */
        public ContactTest() throws JDOMException, IOException{
                XmlParse xml = new XmlParse();  //声明一个对象,解析xml配置文件
                config = xml.parseXML();  //调用解析方法,将返回的HashMap结果放入config中
        }
       
        /*
         * 数据库连接操作
         */
        public void getConnection(){
                try{
                        /*
                         * 修改了程序,通过从配置文件中取得数据库信息
                         * 这里是从hashmap中拿到配置信息get("dbconfig_url")这个方法
                         * 是从hashmap中拿出key值为dbconfig_url的value的值,因为放入
                         * hashmap中的key,value类型都是object的,所以拿出来的时候要转换
                         * 格式成String
                         */
                        String JDBC_URL = (String)config.get("dbconfig_url");
                        String JDBC_DRIVER= (String)config.get("dbconfig_driver");                                       
                        String USER = (String)config.get("dbconfig_user");
                        String PASSWORD = (String)config.get("dbconfig_password");
                       
                        Class.forName(JDBC_DRIVER).newInstance();
                        conn = DriverManager.getConnection(JDBC_URL,USER,PASSWORD);
                        System.out.println("connection success-------------");
                }catch(Exception e){
                        e.printStackTrace();
                }
        }
       
        public void closeConnection() throws SQLException{
                if(this.conn != null){
                        conn.close();
                }
        }
       
        public void getResult(int flag,Collection col) throws IOException{
                String name = null;
                if(flag == 0){
                        System.out.println("输出查询信息");
                        //这里要定义输出文件的文件名字,我们现在也是从hashmap中拿到文件名的值
                        //就是你在config.xml中看到的<text></text>标签中的文件名
                        name = (String)config.get("dboperation_selectText");
                        WriterOut(name,col);
                }else if(flag == 1){
                        System.out.println("输出插入信息");
                        name = (String)config.get("dboperation_insertText");;
                        WriterOut(name,col);
                }else if(flag == 2){
                        System.out.println("输出修改信息");
                        name = (String)config.get("dboperation_updateText");;
                        WriterOut(name,col);
                }else if(flag == 3){
                        System.out.println("输出删除信息");
                        name = (String)config.get("dboperation_deleteText");;
                        WriterOut(name,col);
                }else{
                        System.out.println("标志码输入错误");
                }
        }
       
        /*
         * 对查询的内容进行输出,并且控制输出格式
         */
        public void WriterOut(String name,Collection list) throws IOException{
                String path = "d:/"+name;  //输出路径
               
                //这里定义了一个IO输出的包装器
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path)));
                int count = list.size();  //计算总共要输出几行
                /*
                 * 修改程序,改变输出格式
                 */
                String csvData[] = new String[count];  //这个你要求的csv文件的数据输出的数组
               
                Iterator it = list.iterator();  //定义一个迭代器,用来遍历集合
               
                int i = 0;
                //开始遍历集合,不断的从集合中取出纪录,直到遍历结束
                while(it.hasNext()){
                        String temp = (String)it.next();
                        System.out.println(temp);
                        csvData[i] = temp;  //将取出的纪录放入数组中
                        i++;
                }
               
                //将数组中的纪录通过IO包装器放到文件中
                for(int j = 0;j < csvData.length;j++)
                {
                        //需要在输出文件是修改文件格式,达到csv的文本要求
                        writer.write(csvData[j] + LINE_SEPARATOR);
                       
                }
                writer.close();
               
        }
       
        public void SelectDB(){
                try{
                        getConnection();
                        Statement stmt  = this.conn.createStatement();
                        //这里的SQL语句也放到xml文件中去配置了
                        String SQL = (String)config.get("dboperation_selectSQL");
                        ResultSet rs = stmt.executeQuery(SQL);
                       
                        Collection col = new ArrayList();  //集合,用来存放数据库信息
                       
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();
                       
                        /*
                         * 这里加了些字段信息得内容,这里没有对字段的长度进行判断,所有在输出格式时会有偏差
                         */
                        String temp = "";
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");
                                /*
                                 * 新增加的语句,为了达到csv文件的输出的格式
                                 */
                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);  //放入集合中,将一行的内容放到集合中去
                       
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        /*
                                         * 新增加的语句,为了达到csv文件的输出的格式
                                         */
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }       
                                }
                                col.add(temp);   //放入集合中,将整合后的一行的内容放到集合中去
                                System.out.println(" ");
                        }
                        getResult(0,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
        }
       
        public void InsertDB(){
                try{
                        getConnection();
                        String SQL = (String)config.get("dboperation_insertSQL");
                        PreparedStatement pstmt  = this.conn.prepareStatement(SQL);
                       
                        ResultSet rs = pstmt.executeQuery();
                        conn.commit();
                       
                        SQL = (String)config.get("dboperation_selectSQL");;
                        Statement stmt = this.conn.createStatement();
                        rs = stmt.executeQuery(SQL);
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();
                       
                        Collection col = new ArrayList();
                       
                        String temp = "";
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");
                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }
                                }
                                col.add(temp);
                                System.out.println(" ");
                        }
                        getResult(1,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
        }
       
        public void UpdateDB(){
                try{
                        getConnection();
                        String SQL = (String)config.get("dboperation_updateSQL");
                        PreparedStatement pstmt  = this.conn.prepareStatement(SQL);
                       
                        ResultSet rs = pstmt.executeQuery();
                        conn.commit();
                       
                        SQL = (String)config.get("dboperation_selectSQL");
                        Statement stmt = this.conn.createStatement();
                        rs = stmt.executeQuery(SQL);
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();
                       
                        Collection col = new ArrayList();
                       
                        String temp = "";
                       
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");
                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);
                       
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }
                                }
                                col.add(temp);
                                System.out.println(" ");
                        }
                        getResult(2,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
               
        }
       
        public void DeleteDB(){
                try{
                        getConnection();
                        String SQL = (String)config.get("dboperation_deleteSQL");
                        PreparedStatement pstmt  = this.conn.prepareStatement(SQL);
                       
                        ResultSet rs = pstmt.executeQuery();       
                        conn.commit();
                       
                        SQL = (String)config.get("dboperation_selectSQL");
                        Statement stmt = this.conn.createStatement();
                        rs = stmt.executeQuery(SQL);
                        ResultSetMetaData ss = rs.getMetaData();       
                        int count = ss.getColumnCount();
                       
                        Collection col = new ArrayList();
                       
                        String temp = "";
                       
                        for(int j = 1; j <= count; j++){
                                System.out.print(ss.getColumnName(j)+"        ");
                                if(j == count){
                                        temp = temp + ss.getColumnName(j);
                                }else{
                                        temp = temp + ss.getColumnName(j)+",";
                                }
                        }
                        col.add(temp);
                        System.out.println(" ");
                       
                        while(rs.next()){       
                                temp = "";
                                for (int i = 1; i <= count;i++){
                                        System.out.print(rs.getString(i)+" ");
                                        if(i == count){
                                                temp = temp + "\""+ rs.getString(i) + "\"";
                                        }else{
                                                temp = temp + "\""+ rs.getString(i) + "\",";
                                        }
                                }
                                col.add(temp);
                                System.out.println(" ");
                        }
                        getResult(3,col);
                        closeConnection();
                }catch(Exception e){
                        e.printStackTrace();
                }
               
        }
       
        public void excute(int tag){
                if(tag == 0){
                        System.out.println("进行查询操作");
                        SelectDB();
                }else if(tag == 1){
                        System.out.println("进行添加操作");
                        InsertDB();
                }else if(tag == 2){
                        System.out.println("进行修改操作");
                        UpdateDB();
                }else if(tag == 3){
                        System.out.println("进行删除操作");
                        DeleteDB();
                }else{
                        System.out.println("标志码输入错误");
                }
        }
       
        public static void main(String[] args) throws JDOMException, IOException
        {
                ContactTest  ct = new ContactTest ();
                ct.flag = 0;  //0-查询;1-添加;2-修改;3-删除
                ct.excute(ct.flag);
        }
       
}

------------------------------------------------------------------------------------------------
6.java中所有的数据结构都是对象,通过运算符new为他们分配内存堆,这句话怎么理解?

应该说你这句话不太对,java中的一些基本数据类型,如int ,double ,long,boolean等这些基本类型不是对象,所以严格的来说java不是都是对象的,除了这些个之外其他的都是对象了。
java中要产生对象要具有生命力就要做两件事情,一是声明,这个就好像告诉别人你要生孩子了。二就是要具体分配一个空间给这个对象,让这个对象可以有自己的生命力,这个就是new,而空间就是指的内存空间,java中任何可以操作的对象都是需要得到自己的内存空间才能被使用的

------------------------------------------------------------------------------------------------
7.关于Iterator it = list.iterator();

迭代器是通常是和集合一起用的,是一种java的模式,俗称迭代子,用来遍历整个集合,从集合中取数据

举例:
package Iterator;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class IteratorTest {
        public static void main(String[] args){
                Collection list = new ArrayList();  //定义一个ArrayList数组集合
                list.add("3");  //向这个集合中放入数据
                list.add("2");
                list.add("1");
                list.add("4");
                list.add("5");
                list.add("6");
               
                Iterator it = list.iterator();  // 第一步
               
                while(it.hasNext()){   //第二步
                        String temp = (String)it.next();  //取出元素
                        System.out.println(temp);
                }                              
        }
}


--------------------------------------------------------------------------------------------------
8.找出在某一个文件夹下的某一类文件

package File;

import java.io.File;
import java.io.FilenameFilter;

public class FileDemo {
       
        public static void main(String[] args){
-->首先声明一个File对象,指明你的文件目录路径,这里是我计算机中的东西,记住一定要是路径
                File dir = new File("E:\\JAVA程序\\JAVA code\\copyfile\\core java");
-->Filter是你自己写的一个实现FilenameFilter接口的类,这个接口用用来过滤文件的名字,传入的参数是要过滤的关键字
                Filter filter=new Filter("java");
-->这里将通过Filter过滤得到的文件列表放到一个数组中去               
                String fileList[] = dir.list(filter);
                System.out.println("找到文件数:"+fileList.length);
-->下面就是通过遍历这个数组,从数组中取到文件名               
                for(int I = 0 ; I < fileList.length; I++){
-->因为在下面要对文件进行判断,所以这里要加上路径和文件名,否则下面的判断会因为找不到文件而判断错误
                        File tmpFile = new File("E:\\JAVA程序\\JAVA code\\copyfile\\core java\\"+fileList[I]);
-->判断找到的这些文件是目录呢还是文件
                        if(tmpFile.isFile()){
                                System.out.println("文件:"+tmpFile);
                        }else{
                                System.out.println("目录:"+tmpFile);
                        }
                }
        }
}


-->实现过滤器接口的类,这个类主要作用是找出所有文件夹下的以extension结尾的文件
class Filter implements FilenameFilter{
        String extension;
        Filter(String extension)
        {
                this.extension=extension;
        }
       
        public boolean accept(File directory,String filename){

-->这里的filename.endsWith("."+extension);方法就是找以.extension结尾的文件
                return filename.endsWith("."+extension);
        }
}

我所修改的程序简单的讲就是,查找所有在E:\\JAVA程序\\JAVA code\\copyfile\\core java这个目录下的以.java结尾的文件


-----------------------------------------------------------------------------------------------------------------
9.关于接口的一些问题

Collection months=new ArrayList(); (这个ArrayList和Collection 我都不太明白)
--------------------------------------------------------------------------------------------------------
Collection是集合的一个接口,ArrayList是集合的一种,这里ArrayList实现Collection这个接口,声明一个接口的对象需要new一个实现他的类。

Object s[]=months.toArray();  (这个地方也不明白)
--------------------------------------------------------------------------------------------------------
Object是java中所有类的父类,months是前面生成的集合对象,是一个ArrayList的对象,这个对象有一个方法是toArray(),能够把这个集合中的转换成一个Object类型的对象数组

System.out.println(s[i].toString());(s[i].toString() 打印这个为什么就是数组里面的内容)
---------------------------------------------------------------------------------------------------------
System.out.println()打印出来的是字符串,()内放的应该是String类型的值,这里用了
s[i].toString()这个语句,意思就是把数组中的一个对象转换成String类型然后输出


List months=new ArrayList();(这个地方List要换成ArrayLis才不报错
我也不知道为什么 我想只要上面那个明白了 下面这个也应该就明白了吧)
----------------------------------------------------------------------------------------------------------
这里和Collection是相同的,List是一个集合的接口,ArrayList()是实现这个接口的类,同样也是生成一个接口对象需要new一个实现他的类

posted @ 2011-10-24 22:16  死靈天使  阅读(1044)  评论(0编辑  收藏  举报