JDBC访问数据库的基本程序
2019獨角獸企業重金招聘Python工程師標準>>>
以下是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表已建立,會產生異?!猄QLException: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();
}
}
}
}
}
轉載于:https://my.oschina.net/jiutianniao/blog/400140
總結
以上是生活随笔為你收集整理的JDBC访问数据库的基本程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 那些事情
- 下一篇: 电子商务系统的设计与实现(十二):技术选