首页 技术 正文
技术 2022年11月6日
0 收藏 851 点赞 873 浏览 2476 个字

1.管理数据库连接的Class

代码如下:

/*

* 使用配置文件来配置JDBC连接数据库

* 该类用来管理数据库连接

*/

package jdbcTest;import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
import java.io.InputStream;/*
* 使用配置文件来配置JDBC连接数据库
* 该类用来管理数据库连接
*/public class DBUtil { //静态属性,用于DriverManager.getConnection(url,user,psw);中的三个参数
private static String url;
private static String user;
private static String psw; //静态块
static{
try{
//读取配置文件
Properties prop=new Properties(); /*
* 此种写法是以后更加推荐的一种相对路径的处理方法。
* 要读取的文件和Class处于同一目录下
*/ InputStream is=JDBCDemo3.class.getClassLoader().getResourceAsStream("config2.properties"); /*
* 这种写法:class.getResource/getResourceAsStream也可以找到资源
* InputStream is=JDBCDemo3.class.getResourceAsStream("config.properties");
*/ prop.load(is); is.close();//输入流用完后,就可以关掉了 String driver=prop.getProperty("driver");
url=prop.getProperty("url");
user=prop.getProperty("user");
psw=prop.getProperty("psw"); //注册驱动
Class.forName(driver); System.out.println(driver+","+url+","+user+","+psw); }catch(Exception e){
e.printStackTrace();
}
}      //获取连接
public static Connection getConnection() throws Exception{
/*
* 通过DriverManager创建一个数据库的连接并返回
*/
try{
return DriverManager.getConnection(url,user,psw); }catch(Exception e){
e.printStackTrace();
//通知创建者,创建连接时出错
throw e; //注意,如果采用return null;如果外界没有对null进行则会引发空指针异常
}
} //关闭指定的连接
public static void closeConnection(Connection conn){
try{
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}

2.配置文件config.properties

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
user=SYSTEM
psw=Suzhou123/*
* java.util.Properties
* Properties类用于读取properties文件
* 使用该类,可以类似Map的形式读取配置文件内容
* 文件格式类似:
* key=value,即等号左边key,等号右边为value
*/

3.读取数据库操作

package jdbcTest;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;/*
* 使用配置文件来配置JDBC连接数据库
* 该类用来管理数据库连接
*/public class JDBCDemo3 {public static void main(String[] args) {try{Connection conn=DBUtil.getConnection();
System.out.println("数据库已连接成功");/*
* 通过Connection创建Statement
* 用来执行sql语句
*/
Statement stmt=conn.createStatement();

//要执行的sql语句
String sql="SELECT * FROM STUDENT";

/*
* 使用executeQuery来执行DQL语句,并且查询后会得到一个查询结果集
*/
ResultSet rs=stmt.executeQuery(sql);while(rs.next()){String Std_name=rs.getString("NAME");
int Std_age=rs.getInt("AGE");
String Std_sex=rs.getString("SEX");
int Std_no=rs.getInt("SNO");System.out.println(Std_name+", "+Std_age+", "+Std_sex+", "+Std_no);}/*
* 数据库资源有限,用完一个资源后就关闭,会节约数据库资源
*/
rs.close();/*
* 当不再通过Statement执行其他sql时,就应当及时关闭Statement,
* 以释放JDBC与数据库的资源占用
*/
stmt.close();//使用后关闭连接
DBUtil.closeConnection(conn);}catch(Exception e){
e.printStackTrace();
}
}}

以上,就是一个数据库连接的完整操作了。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,487
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289