JDBC连接数据库

本文介绍了一个使用Java JDBC进行数据库连接的示例程序,包括配置数据库连接参数、建立连接、执行查询并处理结果集的过程。同时展示了如何通过properties文件灵活配置数据库连接信息。
1.package com.jdbc.conn.db;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;


public class DbConnInfo {

// 定义数据库驱动,地址,用户名,密码等连接变量
private static String [color=red]driver[/color];
private static String [color=red]url[/color];
private static String [color=red]user[/color];
private static String [color=red]pwd[/color];

// 获得数据库连接
public static Connection getConnection(){

return DbConnLoad.getConnection(driver, url, user, pwd);
}
//关闭连接
public static void close(Connection conn){
DbConnLoad.close(conn);
}

// 关闭语句
public static void close(Statement stmt){
DbConnLoad.close(stmt);
}
// 关闭结果集
public static void close(ResultSet rs){
DbConnLoad.close(rs);
}

// 用静态模块给连接变量赋值
[color=red]static{[/color]

// 方法1,properties对象直接调用方法,取默认值
Properties prop = new Properties();
// 方法2,Properties对象通过流加载外部文件--------------------------
// 方法2.1 InputStream is = DbConnInfo.class.getResourceAsStream("[color=red]InfoConnection.properties[/color]"); //该properties文件在工程的classpath下
// 方法2.2
File f = new File("InfoConnection.properties");

try {
FileInputStream is = new FileInputStream(f);
prop.load(is);
driver = prop.getProperty("info.driver", "默认驱动");
url = prop.getProperty("info.url", "默认地址");
user = prop.getProperty("info.user", "默认用户名");
pwd = prop.getProperty("info.pwd", "默认密码");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
2.0
package com.jdbc.conn.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DbConnLoad {

/**
* 获取数据库链接
* @param driver 驱动类名
* @param url 数据库链接URL
* @param user 用户名
* @param pwd 密码
* @return 如果成功 返回数据库链接,否则返回null.
*/
public static Connection getConnection(String driver, String url, String user, String pwd){

Connection conn = null;
try {
Class.forName(driver);
DriverManager.setLoginTimeout(40); //40秒连不上数据库则放弃
conn = DriverManager.getConnection(url, user, pwd);
conn.setAutoCommit(false);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
conn = null;
}
return conn;

}
/**
* 关闭数据库连接
*/
public static void close(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

/**
* 关闭语句
* @param st
*/
public static void close(Statement st){
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
* 关闭结果集
* @param rs
*/
public static void close(ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3.0
package com.jdbc.conn.db;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DbConnTest {

public static void main(String args[])
{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM DIM_USER";
conn = DbConnInfo.getConnection();
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(2));
}
// 在这加上显得更安全,当然不关也可以,因为finally里面也关了
// System.out.println(conn.isClosed());
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
finally{
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
// 也可以直接调用方法关,和直接关 效果上是一样的
DbConnInfo.close(conn);
try {
System.out.println(conn.isClosed());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习和研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度和稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能和输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习和修改: 通过阅读模型中的注释和查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有一定的MATLAB编程基础。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值