1.自定义异常类
package com.ownhome.exception;
/**
* 自定义异常类
* @author admin
*
*/
public class MyException extends Exception {
protected Throwable throwable;
/*构造方法*/
public MyException(String msg){
super(msg);
}
/*构造方法*/
public MyException(String msg,Throwable throwable){
super(msg);
this.throwable=throwable;
}
// /*得到异常*/
// public Throwable getEx(){
// return this.throwable;
// }
/*重写父类方法*/
@Override
public void printStackTrace() {
super.printStackTrace();/*调用父类的方法*/
if(throwable!=null){
throwable.printStackTrace();/*输出异常*/
}
}
}
2.db属性文件
driverClass=sun.jdbc.odbc.JdbcOdbcDriver
url=jdbc:odbc:driver={Sql Server};database=ownHome;server=.
uid=sa
pwd=abc
3. MyProperties类[单例模式]
package com.ownhome.common;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import com.ownhome.exception.MyException;
/**
* 用单模式实现从Properties文件里读取连接数据库的参数
* @author admin
*
*/
public class MyProperties extends Properties{
/*静态属性*/
private static MyProperties myPro;
/*构造方法*/
private MyProperties() throws MyException{
InputStream is=this.getClass().getResourceAsStream("db.properties");
try {
this.load(is);
} catch (IOException e) {
throw new MyException("读取属性文件错误 !",e);
}
}
/*公有的静态方法,得到MyProperties对象*/
public static MyProperties getPro(){
if(myPro!=null){
return myPro;
}
init();
return myPro;
}
/*实现同步机制,初始化内部属性*/
private synchronized static void init(){
if(myPro==null){
try{
myPro=new MyProperties();
}catch(MyException e){
e.printStackTrace();
}
}
}
}
4.ConDB连接工厂类[工厂模式]
package com.ownhome.common;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import com.ownhome.exception.MyException;
/**
* 连接数据库类
* @author admin
*
*/
public class ConDB {
// /*静态方法,属性文件得到连接对象 */
// public static Connection getCon() throws MyException{
//
// MyProperties myPro=MyProperties.getPro();
// try{
// Class.forName(myPro.getProperty("driverClass"));
// return DriverManager.getConnection(myPro.getProperty("url"));
// }catch(ClassNotFoundException e){
// throw new MyException("注册驱动错误!",e);
// }catch(SQLException e){
// throw new MyException("得到Con连接对象错误",e);
// }
// }
/*JNDI方式*/
public static Connection getCon() throws MyException{
try {
Context ic=new InitialContext();
DataSource source=(DataSource)ic.lookup("java:comp/env/jdbc/ownhome");
return source.getConnection();
} catch (NamingException e) {
throw new MyException("JNDI查找错误@!",e);
} catch (SQLException e) {
throw new MyException("得到Connection对象错误!",e);
}
}
}
5. Dao类工具类
package com.ownhome.common;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import com.ownhome.exception.MyException;
/**
* Dao类,对数据库进行操作
* @author admin
*
*/
public class Dao {
private Connection con;
private String sql;
private List values;
public void setCon(Connection con) {
this.con = con;
}
public void setSql(String sql) {
this.sql = sql;
}
/**
* 设置sql字符串中?的值
* @param values
*/
public void setValues(List values) {
this.values = values;
}
/*为sql语句的所有的?设置值*/
private void setValues(PreparedStatement ps) throws MyException {
if (values != null) {
try {
for (int i = 1; i <= values.size(); i++) {
ps.setObject(i, values.get(i - 1));
}
} catch (SQLException e) {
throw new MyException("设置sql中参数的值?时出错", e);
}
}
}
/*决断必需的属性是否为空*/
private boolean isNull(){
if(con==null||sql==null||sql.equals("")){
return true;
}
return false;
}
/**
* 查询
* @return
*/
public Result executeQuery() throws MyException{
ResultSet rs;
Result result = null;
if(isNull()){
throw new MyException("未初始化Con或Sql属性!");
}
try{
PreparedStatement ps=con.prepareStatement(sql);
this.setValues(ps);
rs=ps.executeQuery();
result=ResultSupport.toResult(rs);
con.close();
}catch(SQLException e){
throw new MyException("用PreparedStatement执行查询时出错",e);
}catch(MyException e){
e.printStackTrace();
}
return result;
}
/**
* 修改,删除,增加
* @return
*/
public int executeUpdate() throws MyException{
int count=0;
if(isNull()){
throw new MyException("未初始化Con或Sql属性");
}
try{
PreparedStatement ps=con.prepareStatement(sql);
this.setValues(ps);
count = ps.executeUpdate();
con.close();
}catch(SQLException e){
throw new MyException("用PreparedStatement执行更新时出错!",e);
}catch(MyException e){
e.printStackTrace();
}
return count;
}
}
分享到:
相关推荐
MyProperties.java ReadAndPrintXMLFile.java book.xml 博文链接:https://efish.iteye.com/blog/230123
创建类createClass - 在 JavaScript 中使用类的简单方法。例子在测试中查看更多示例。简单的 var SomeClass = createClass({ myProperties: 123, myMethod: function() { return this.myProperties; }});var obj = ...
Annotation Driven Properties For Java (ADP4J) 是一个在 Java 对象中使用注解方式来注入配置属性的类库。 示例代码: public class Bean { @SystemProperty("threshold") private int threshold; @...
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
麦肯锡-xxKPI方案gl.ppt
一、简介 基于Transformer模型构建的聊天机器人,可实现日常聊天。 二、系统说明 2.1 功能介绍 使用者输入文本后,系统可根据文本做出相应的回答。 2.2 数据介绍 * 百度中文问答 WebQA数据集 * 青云数据集 * 豆瓣数据集 * chatterbot数据集 由于数据集过大,因此不会上传,如有需要可以在issue中提出。 2.3. 模型介绍(v1.0版本) 基于Transformer模型,使用Python中的keras-transformer包。 训练的参数文件没有上传,如有需要可在issue中提出。 三、注意事项 * keras-transformer包需要自行安装:`pip install keras-transformer`。 * 如果需要实际运行,参数文件放在`ModelTrainedParameters`文件下;`ListData`文件下包含了已经处理好的字典等数据,不需要修改,直接运行Main.py即可。 * 如果需要自行训练,将数据集文件放在`DataSet`文件下。 * `HyperParameters.py`文件中包含了系统所需
-大学生心理健康数据集
拾放机构
APP基于DJI Mobile SDK,实现了获取和释放遥控器的控制权限、模拟遥控器的飞行控制操作、视频回传、数据透传以及获取无人机的飞行参数等功能。.zip
SITRANS LG240 操作说明书
基于matlab实现的matlab中的通信工具箱中simulink搭建直接序列扩频系统并进行仿真.rar
无人机最强算法源码,易于部署和学习交流使用
无人机最强源码,无人机算法,易于部署和学习交流使用
无人机最强算法源码,易于部署和学习交流使用
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
ISO 19453-4-2018.pdf
无人机最强算法源码,易于部署和学习交流使用