文档章节

JDBC访问数据库的基本程序

FansUnion
 FansUnion
发布于 2015/10/22 10:30
字数 623
阅读 2
收藏 0

以下是jdbc访问数据库的基本程序,今后有时间再完善下。


//属性配置文件
db.properties

driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/itoasvn?userUnicode=false&characterEncoding=GBK
user = root
password =198962

/**
* 数据库连接的提供类

*/
public class ConnectionProvider {

public static Connection getConnection() throws Exception {
      String driver = PropertyReader.get("driver");
     String url = PropertyReader.get("url");
     String user = PropertyReader.get("user");
     String password = PropertyReader.get("password");
    Class.forName(driver);
     return DriverManager.getConnection(url, user, password);
    }

}


import java.io.InputStream;
import java.util.Properties;

public class PropertyReader {
private static Properties ps;

static {
ps = new Properties();
try {
// 假定db.conf文件与PropertyReader.class文件位于同一个目录下
InputStream in = PropertyReader.class
.getResourceAsStream("db.properties");
ps.load(in);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public static String get(String key) {
return (String) ps.get(key);
}

}

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

//完整的数据库测试程序
public class ConnectionTest {
// 用于显示查询结果
private static void displayResult(ResultSet rs) throws SQLException {
System.out.println("person表的信息为:");
System.out.println("ID" + "\t" + "NAME");
while (rs.next()) {
System.out.print(rs.getInt("id") + " ");
System.out.println(rs.getString("name"));
}
System.out.println();
}

public static void main(String[] args) {
// 声明变量并初始化
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
PreparedStatement ps = null;

try {
con = ConnectionProvider.getConnection();
} catch (ClassNotFoundException e) {// 缺少驱动程序
System.err.println("ClassNotFoundException:" + e.getMessage());
} catch (SQLException ex) {//
System.err.println("SQLException:" + ex.getMessage());
System.out.println("出现异常");
} catch (Exception e) {
e.printStackTrace();
}

try {
// 创建statement类对象
stmt = con.createStatement();

// 1 创建person表,若person表已建立,会产生异常——SQLException:ORA-00955: 名称已由现有对象使用
stmt
.executeUpdate("create table person(id int primary key,name char(20))");

// 2利用statement增加表中的记录,向person表中插入2条记录
stmt.executeUpdate("insert into person values(1,'火影fans')");
stmt.executeUpdate("insert into person values(2,'黑崎一护')");

System.out.println("第1次添加记录后表的信息为:");

// 3.利用Statement查询数据库,查询数据库表,取得返回的数据集
rs = stmt.executeQuery("select * from person");
// 显示结果集
displayResult(rs);

// 4利用PreparedStatement执行数据库查询和更新
ps = con
.prepareStatement("insert into person(id,name) values(?,?)");
ps.setInt(1, 3);
ps.setString(2, "宇智波@鼬");
ps.executeUpdate();
System.out.println("第2次添加记录后表的信息为:");
rs = stmt.executeQuery("select * from person");
// 显示结果集
displayResult(rs);

// 修改person表中Id为3的姓名
ps = con.prepareStatement("update person set name= ? where id = ?");
ps.setInt(2, 3);
ps.setString(1, "冥王-雷利");
ps.executeUpdate();
ps = con.prepareStatement("select * from person");
rs = ps.executeQuery();
System.out.println("修改id为3的姓名后,表的信息为:");
displayResult(rs);

// 删除数据库表person
ps = con.prepareStatement("drop table person");
ps.executeUpdate();
System.out.println("person表已成功被删除");

} catch (SQLException ex) {
System.err.println("SQLException:" + ex.getMessage());
System.exit(1);
} finally {// 及时关闭相关连接,回收系统资源
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

共有 人打赏支持
FansUnion
粉丝 57
博文 858
码字总数 825464
作品 0
丰台
高级程序员
私信 提问

暂无文章

DRDS SQL 审计与分析——全面洞察 SQL 之利器

摘要: 背景 数据库存储着系统的核心数据,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。而在云端,数据库所面临的威胁被进一步的放大。因此,对云数据库的操作行为尤其是全...

阿里云官方博客
30分钟前
2
0
大数据就业前景分析的太到位了,想学习大数据的可以看看

大数据广泛应用于电网运行、经营管理及优质服务等各大领域,并正在改变着各行各业,也引领了大数据人才的变革。大数据专业就业前景怎么样?这对于在就业迷途中的我们是一个很重要的信息。 随...

董黎明
37分钟前
2
0
如何利用Photoshop进行快速切图

在UI设计中我们常常使用Ai来进行矢量图的绘制,然后导入Ps中进行设计、排版和导出。 在以前的版本中,切图一直是个很麻烦的事情,要么依托于脚本,要么手动一张张导出,很不方便,这种窘况在...

mo311
44分钟前
3
0
配置防盗链、访问控制Directory、访问控制FilesMatch

11月19日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 通过限制referer来实现防盗链的功能 配置文件增加如下内容 <Directory /data/wwwroot/www.123.com> SetE...

zgxlinux
53分钟前
3
0
docker搭建redis环境

docker 搭建redis单机,主从,哨兵,集群环境: https://github.com/grace-233/docker-config-file/tree/master/redis...

grace_233
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部