JDBC+XML+DOM4J

JDBC+XML+DOM4J

利用xml文件封装数据库配置信息
xml文件放在src目录下
/testjdbc1/src/DBUtil.xml 

<?xml version="1.0" encoding="GBK" ?>
<sxtConfig>
<!-- 本次 连接  mysql 数据库-->
    <database-type>mysql</database-type>
    <database type="oracle">
        <className>oracle.jdbc.driver.OracleDriver</className>
        <url>jdbc:oracle:thin:@localhost:1521:orcl</url>
        <user>scott</user>
        <pwd>tiger</pwd>
    </database>
    <database type="mysql">
        <className>com.mysql.jdbc.Driver</className>
        <url>jdbc:mysql://localhost:3306/test</url>
        <user>root</user>
        <pwd>clc</pwd>
    </database>
</sxtConfig>

java文件解析xml文件,封装方法 
/testjdbc1/src/dbutil/JDBCUtil.java  

package dbutil;
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.sql.Statement;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class JDBCUtil {
    public static String className;
    public static String url ;
    public static String user;
    public static String pwd ;
    /**
     * DOM4j解析xml
     */
    static {
        try {
            // 开始解析配置文件
            SAXReader saxReader = new SAXReader();
            // 以流的方式读取配置文件
            InputStream inputStream = JDBUtil.class.getClassLoader().getResourceAsStream("DBUtil.xml");
            // 开始配置文件
            Document document = saxReader.read(inputStream);
            // 获取根节点
            Element rootElement = document.getRootElement();
            // 获取要选择的数据库类型
            String databaseType = rootElement.elementText("database-type");
            // 判断数据库类型是否为空
            if (databaseType != null) {
                // 遍历出数据库的配置信息
                List<Element> elements = rootElement.elements("database");
                for (Element element : elements) {
                    // 判断数据库是否一致
                    if (databaseType.equals(element.attributeValue("type"))) {
                        // 获取当前元素的所有子元素
                        className = element.elementText("className");
                        url = element.elementText("url");
                        user = element.elementText("user");
                        pwd = element.elementText("pwd");
                    }
                }
                // 使用静态代码块加载驱动
                Class.forName(className);
            } else {
                System.out.println("您的配置文件数据库类型【database-type】有误,请重新配置");
            }
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    /**
     * 创建JDBC连接 connection的连接和事务的提交方式
     */
    public static Connection createConnection() {
        return createConnection(true);
    }
    // 事务的提交
    private static Connection createConnection(boolean autoCommit) {
        // 声明连接
        Connection connection = null;
        try {
            // 获取连接
            connection = DriverManager.getConnection(url, user, pwd);
            // 事务的提交方式
            connection.setAutoCommit(autoCommit);
            System.out.println("数据库连接成功");
        } catch (SQLException e) {
            System.out.println("您的数据库详细配置有误url【" + url + "】user【" + user + "】pwd【" + pwd + "】");
            e.printStackTrace();
        }
        return connection;
    }
    /**
     * 获取发送器 statement
     */
    public static Statement createStatemen(Connection connection) {
        Statement statement = null;
        try {
            statement = connection.createStatement();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return statement;
    }
    /**
     * 获取预处理发送器
     */
    public static PreparedStatement createPreparedStatement(Connection connection, CharSequence sql) {
        PreparedStatement preparedStatement = null;
        try {
            preparedStatement = connection.prepareStatement(sql.toString());
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return preparedStatement;
    }
    /**
     * 关闭连接connection
     */
    private static void closeConnection(Connection connection) {
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    /**
     * 关闭发送器statement
     */
    private static void closeStatement(Statement statement) {
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    /**
     * 关闭连接resultSet
     */
    private static void closeResultSet(ResultSet resultSet) {
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    /**
     * 关闭所有连接 connection statement resultSet
     */
    public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) {
        closeResultSet(resultSet);
        closeStatement(statement);
        closeConnection(connection);
    }
}

 

测试连接

package testoracle;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import dbutil.JDBUtil;
public class TestDBUtil {
public static void main(String[] args) {
    //声明连接
    Connection connection=null;
    Statement statement=null;
    ResultSet resultSet=null;
    //sql
    String sql="SELECT * FROM EMP";
    try {
    //获取连接
    connection=JDBUtil.createConnection();
    //获取发送器
    statement=JDBUtil.createStatement(connection);
    //发送sql语句
        resultSet=statement.executeQuery(sql);
        while (resultSet.next()) {
            System.out.print(resultSet.getString(1)+"\t");
            System.out.print(resultSet.getString(2)+"\t");
            System.out.print(resultSet.getString(3)+"\t");
            System.out.print(resultSet.getString(4)+"\t");
            System.out.println(resultSet.getString(5)+"\t");
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        //关闭连接
        JDBUtil.closeAll(statement, connection, resultSet);
    }
    
}
}

 

数据库中插入日期类型的数据的方式:
preparedStatement.setTimestamp(2, new java.sql.Timestamp(user.getUpdateTime().getTime())); 

 

posted @ 2017-05-31 10:53 路迢迢 阅读( ...) 评论( ...) 编辑 收藏
智慧政务:开启智慧城市新篇章 在当今数字化时代,智慧政务作为智慧城市建设的核心组成部分,正逐步成为提升政府治理能力和公共服务水平的关键力量。 面对传统政务模式中的信息孤岛、管理困难、安全威胁等诸多问题,智慧政务以其独特的优势和解决方案,为政府现代化转型开辟了新路径。 一、传统政务的困境 传统政务模式下,各部门间信息不互通,形成严重的信息孤岛现象,导致管理效率低下。 政府网站缺乏有效管理,信息更新缓慢,无法及时响应民众需求。 同时,安全威胁如黑客攻击和非法入侵频发,严重威胁政务信息安全。 此外,公务人员每日忙于单一、重复的审批任务,企业办事仍需奔波于多个部门之间,个人办证流程复杂且效率低下,这些问题迫切需要得到解决。 二、智慧政务的发展方向与优势 智慧政务通过资源开放、内部协调、决策精准化等手段,推动政府向更加透明、互动、高效的方向发展。 其发展阶段涵盖了从基本在线服务到流程和组织转型的全方位变革。 智慧政务应用深度广泛,包括统一的业务处理云平台、数据交换平台等,实现了政务流程的全面优化。 智慧政务的优势显著:首先,它大幅提高了行政效能,通过优化审批流程,缩短了审批周期,提升了服务质量。 其次,智慧政务促进了信息公开,增强了工作透明度,完善了监督考核机制。 此外,智慧政务还积极响应节能减排号召,实现无纸化办公,减少纸张及打印耗材的使用,降低了出行能耗。 三、智慧政务解决方案:云平台的崛起 云计算作为智慧政务的基础设施,以其资源共享、创新模式、降低成本、随需服务等特性,为智慧政务建设提供了强有力的技术支撑。 通过云平台,政府各部门能够更好地共享信息化基础资源,解决传统政务中基础设施使用率低、资源需求分散等问题。 同时,云计算带来的建设和服务模式创新,使政府信息化工作重点从资产管理转向服务管理,提高了政府运行效率。 四、智慧政务的应用模式与愿景 智慧政务的应用模式实现了从物理实体存在到网络虚拟方式的转变,政府组织结构也从金字塔型向网络型扁平化结构过渡。 这种转变使得政府能够跨越地理限制,实现7×24小时不间断服务。 智慧政务的愿景是构建全程电子化办公环境,待办事件及时推送,政务新闻通过APP及时发布,实现各种审批流程的一站式办理,企业所需政务信息及时推送。 总之,智慧政务作为智慧城市建设的钥匙,正以其独特的优势和解决方案,引领政府向更加高效、透明、互动的方向发展。 随着技术的不断进步和应用模式的不断创新,智慧政务的未来将更加光明,为构建智慧城市、提升民众生活质量作出更大贡献。
内容概要:本文围绕复杂威胁环境下的多无人机协同路径规划问题,提出了一种基于多段杜宾斯(Dubins)路径的协同策略,并提供了完整的Matlab代码实现。该研究重点解决在存在障碍物、禁飞区或其他威胁的环境中,多架无人机如何协同规划出满足动力学约束、避障要求且总体复杂威胁环境下的多无人机协同路径规划研究——基于多段杜宾斯(Dubins)路径的协同策略(Matlab代码实现)性能最优的安全路径。方法结合了Dubins曲线对无人机最小转弯半径等运动学限制的有效建模能力,通过多段路径拼接提升路径灵活性和适应性,并设计协同机制以避免无人机间的冲突,实现高效的任务执行。; 适合人群:具备一定编程基础,熟悉Matlab语言,对无人机路径规划、智能优化算法或自动化控制领域感兴趣的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于科研学习,理解多无人机协同路径规划的核心挑战与解决方案;②作为仿真平台,复现并验证基于Dubins路径的规划算法;③为实际无人机编队飞行、侦察、救援等应用场景提供算法设计与实现参考。; 阅读建议:建议读者结合文中提供的Matlab代码,逐步理解算法的实现逻辑,重点关注威胁环境建模、Dubins路径生成、多机协同避碰等关键环节,并可通过修改参数或场景进行扩展实验,深化对路径规划策略的理解与应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值