Dao第四次作业

使用properties文件为jdbc的配置文件
1 将数据库里面的歌手查询出来,然后使用dom4j写入到D://singer.xml文件中,将歌手地区作为id节点的属性值
2 使用dom4j读取出来,使用log4j打印.
3 测试使用junit

//properties文件为jdbc的配置文件
/**
*
*/
package com.yidu.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.util.logging.Logger;

/**

  • 描述:jdbc工具类

  • @author zhouyuxian

  • @date 2019年8月23日 下午3:09:14

  • @version 1.0
    */
    public class JDBCTools {

    static Logger log = Logger.getLogger(“JDBCTools.class”);

    static String className = null;
    static String url = null;
    static String user = null;
    static String password = null;

    static{
    Properties pro = new Properties();
    InputStream is = JDBCTools.class.getClassLoader().getResourceAsStream(“config/db.properties”);
    try {
    pro.load(is);
    className = pro.getProperty(“className”);
    url = pro.getProperty(“url”);
    user = pro.getProperty(“user”);
    password = pro.getProperty(“password”);
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    /**

    • 得到连接
    • @return
    • @throws ClassNotFoundException
    • @throws SQLException
      */
      public static Connection getCon() throws ClassNotFoundException, SQLException{
      Class.forName(className);
      Connection con = DriverManager.getConnection(url, user, password);
      log.info(“连接成功”);
      return con;
      }

    /**

    • 关闭

    • @param con

    • @param pstm

    • @param rs
      */
      public static void close(Connection con,PreparedStatement pstm,ResultSet rs){

      try {
      if(rs!=null){
      rs.close();
      }
      if(pstm!=null){
      pstm.close();
      }
      if(con!=null){
      con.close();
      }
      } catch (SQLException e) {
      e.printStackTrace();
      }

    }
    /**

    • 关闭

    • @param con

    • @param pstm
      */
      public static void close(Connection con,PreparedStatement pstm){

      try {
      if(pstm!=null){
      pstm.close();
      }
      if(con!=null){
      con.close();
      }
      } catch (SQLException e) {
      e.printStackTrace();
      }

    }

    public static void main(String[] args) {
    try {
    getCon();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }

//
/**
*
*/
package com.yidu.xml;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
import java.util.List;
import java.util.logging.Logger;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

import com.yidu.dao.SingerDao;
import com.yidu.model.Singer;

/**

  • 描述:

  • @author zhouyuxian

  • @date 2019年8月29日 下午5:30:14

  • @version 1.0
    */
    public class WriteSingerXml {

    static Logger log = Logger.getLogger(“WriteSingerXml.class”);

    @Test
    public void WriteXml(){

     SingerDao singerDao = new SingerDao();
     List<Singer> list = singerDao.selectAll();
    
     Document doc = DocumentHelper.createDocument();
     Element singerlist = doc.addElement("singerlist");
     
     for(Singer singer:list){
     	Element singers = singerlist.addElement("singers");
     	Element singerID = singers.addElement("id");
     	singerID.setText(singer.getSgId()+"");
     	singerID.addAttribute("area", "中国");
     	
     	Element singerName = singers.addElement("name");
     	singerName.setText(singer.getSgName());
     	
     	Element singerDate = singers.addElement("birthday");
     	singerDate.setText(singer.getSgDate()+"");
     }
     OutputFormat of = OutputFormat.createPrettyPrint();
     
     Writer writer = null;
     XMLWriter xwriter = null;
     try {
     	writer = new FileWriter("d:\\T279学习\\数据库\\完成作业\\singer.xml");
     	xwriter = new XMLWriter(writer,of);
     	xwriter.write(doc);
     } catch (IOException e) {
     	e.printStackTrace();
     } finally {
     	try {
     		xwriter.close();
     		writer.close();
     	} catch (IOException e) {
     		e.printStackTrace();
     	}
     }
    

    }

    @Test
    public void ReadXml(){
    SAXReader sax = new SAXReader();

     InputStream is = null;
     try {
     	is = new FileInputStream("d:\\T279学习\\数据库\\完成作业\\singer.xml");
     	Document doc = sax.read(is);
     	Element singerlist = doc.getRootElement();
     	List<Element> list = singerlist.elements("singers");
     	
     	for(int i=0;i<list.size();i++){
     		Element ele = list.get(i);
     		Element id = ele.element("id");
     		Element name = ele.element("name");
     		Element date = ele.element("birthday");
     		log.info(id.getText()+" "+id.attributeValue("area")+" "+name.getText()+" "+date.getText());
     	}
     } catch (DocumentException e) {
     	e.printStackTrace();
     } catch (FileNotFoundException e) {
     	e.printStackTrace();
     } finally {
     	try {
     		is.close();
     	} catch (IOException e) {
     		e.printStackTrace();
     	}
     }
    

    }
    }
    /**

*/
package com.yidu.xml;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
import java.util.List;
import java.util.logging.Logger;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

import com.yidu.dao.SingerDao;
import com.yidu.model.Singer;

/**

  • 描述:

  • @author zhouyuxian

  • @date 2019年8月29日 下午5:30:14

  • @version 1.0
    */
    public class WriteSingerXml {

    static Logger log = Logger.getLogger(“WriteSingerXml.class”);

    @Test
    public void WriteXml(){

     SingerDao singerDao = new SingerDao();
     List<Singer> list = singerDao.selectAll();
    
     Document doc = DocumentHelper.createDocument();
     Element singerlist = doc.addElement("singerlist");
     
     for(Singer singer:list){
     	Element singers = singerlist.addElement("singers");
     	Element singerID = singers.addElement("id");
     	singerID.setText(singer.getSgId()+"");
     	singerID.addAttribute("area", "中国");
     	
     	Element singerName = singers.addElement("name");
     	singerName.setText(singer.getSgName());
     	
     	Element singerDate = singers.addElement("birthday");
     	singerDate.setText(singer.getSgDate()+"");
     }
     OutputFormat of = OutputFormat.createPrettyPrint();
     
     Writer writer = null;
     XMLWriter xwriter = null;
     try {
     	writer = new FileWriter("d:\\T279学习\\数据库\\完成作业\\singer.xml");
     	xwriter = new XMLWriter(writer,of);
     	xwriter.write(doc);
     } catch (IOException e) {
     	e.printStackTrace();
     } finally {
     	try {
     		xwriter.close();
     		writer.close();
     	} catch (IOException e) {
     		e.printStackTrace();
     	}
     }
    

    }

    @Test
    public void ReadXml(){
    SAXReader sax = new SAXReader();

     InputStream is = null;
     try {
     	is = new FileInputStream("d:\\T279学习\\数据库\\完成作业\\singer.xml");
     	Document doc = sax.read(is);
     	Element singerlist = doc.getRootElement();
     	List<Element> list = singerlist.elements("singers");
     	
     	for(int i=0;i<list.size();i++){
     		Element ele = list.get(i);
     		Element id = ele.element("id");
     		Element name = ele.element("name");
     		Element date = ele.element("birthday");
     		log.info(id.getText()+" "+id.attributeValue("area")+" "+name.getText()+" "+date.getText());
     	}
     } catch (DocumentException e) {
     	e.printStackTrace();
     } catch (FileNotFoundException e) {
     	e.printStackTrace();
     } finally {
     	try {
     		is.close();
     	} catch (IOException e) {
     		e.printStackTrace();
     	}
     }
    

    }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值