麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Java > 正文

Java JDBC連接數(shù)據(jù)庫常見操作總結(jié)

2024-07-14 08:43:55
字體:
供稿:網(wǎng)友

本文實(shí)例總結(jié)了Java JDBC連接數(shù)據(jù)庫常見操作。分享給大家供大家參考,具體如下:

db.properties配置文件(MySql數(shù)據(jù)庫)

# db.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8jdbc.username=rootjdbc.password=123456# paramter for BasicDataSourceinitSize=2maxActive=2

db.properties配置文件(Oracle數(shù)據(jù)庫)

# db.propertiesjdbc.driver=oracle.jdbc.OracleDriverjdbc.url=jdbc:oracle:thin:localhost:1521:orcljdbc.username=rootjdbc.password=123456# paramter for BasicDataSourceinitSize=2maxActive=2

JDBC直接連接數(shù)據(jù)庫

package JDBC;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;/** * JDBC連接數(shù)據(jù)庫管理工具類 */public class JDBC {  static String driver;  static String url;  static String username;  static String password;  static {    try {      Properties cfg = new Properties();      InputStream in = JDBC.class.getClassLoader().getResourceAsStream("db.properties");      cfg.load(in);  //將文件內(nèi)容加載到Properties對(duì)象中(以散列表形式存在)      driver = cfg.getProperty("jdbc.driver");      url = cfg.getProperty("jdbc.url");      username = cfg.getProperty("jdbc.username");      password = cfg.getProperty("jdbc.password");      in.close();    } catch (IOException e) {      e.printStackTrace();      throw new RuntimeException(e);    }  }  /**   * 創(chuàng)建數(shù)據(jù)庫連接   */  public static Connection getConnection() {    try {      Class.forName(driver); //注冊(cè)驅(qū)動(dòng)      Connection conn = DriverManager.getConnection(url, username, password);      return conn;    } catch (Exception e) {      e.printStackTrace();      throw new RuntimeException(e);    }  }  /*   * 關(guān)閉數(shù)據(jù)庫的連接   */  public static void close(Connection conn) {    if (conn != null) {      try {        conn.close();      } catch (SQLException e) {        e.printStackTrace();      }    }  }}

通過連接池連接數(shù)據(jù)庫

package JDBC;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import org.apache.commons.dbcp.BasicDataSource;/** * 連接池版本的數(shù)據(jù)庫連接管理工具類 */public class DBUtils {  private static String driver;  private static String url;  private static String username;  private static String password;  private static int initSize;  private static int maxActive;  private static BasicDataSource dbs;  static {    dbs = new BasicDataSource();    Properties cfg = new Properties();    try {      InputStream in = DBUtils.class.getClassLoader().getResourceAsStream("db.properties");      cfg.load(in);      // 初始化參數(shù)      driver = cfg.getProperty("jdbc.driver");      url = cfg.getProperty("jdbc.url");      username = cfg.getProperty("jdbc.username");      password = cfg.getProperty("jdbc.password");      initSize = Integer.parseInt(cfg.getProperty("initSize"));      maxActive = Integer.parseInt(cfg.getProperty("maxActive"));      in.close();      // 初始化連接池      dbs.setDriverClassName(driver);      dbs.setUrl(url);      dbs.setUsername(username);      dbs.setPassword(password);      dbs.setInitialSize(initSize);      dbs.setMaxActive(maxActive);    } catch (IOException e) {      e.printStackTrace();      throw new RuntimeException(e);    }  }  /**   * 創(chuàng)建數(shù)據(jù)庫連接,從連接池中獲取連接,如果連接池滿了,則等待.   */  public static Connection getConnection() {    try {      Connection conn = dbs.getConnection();      return conn;    } catch (SQLException e) {      e.printStackTrace();      throw new RuntimeException(e);    }  }  /*   * 關(guān)閉數(shù)據(jù)庫的連接,歸還到連接池   */  public static void close(Connection conn) {    if (conn != null) {      try {        conn.close();      } catch (SQLException e) {        e.printStackTrace();      }    }  }  //回滾,僅在禁用自動(dòng)提交時(shí)使用  public static void rollback(Connection conn) {    if (conn != null) {      try {        conn.rollback();      } catch (SQLException e) {        e.printStackTrace();      }    }  }}

連接數(shù)據(jù)庫后的使用

Connection conn=null;try{  conn=DbUtils.getConnection();  Statement st=conn.createStatement();  String sql="select id, name from people";  ResultSet rs=st.executeQuery(sql);  while(rs.next()){    int id=rs.getInt("id");    String name=rs.getString("name");    System.out.println(id+","+name);  }  //結(jié)果集元數(shù)據(jù)  ResultSetMetaData meta = rs.getMetaData();  int n = meta.getColumnCount(); //多少列  for(int i=1; i<=n; i++){    String name= meta.getColumnName(i); //獲取列名    System.out.println(name);  }  rs.close();//釋放查詢結(jié)果  st.close();//釋放語句對(duì)象}catch(Exception e){  e.printStackTrace();}finally {  DbUtils.close(conn);}

預(yù)編譯SQL執(zhí)行 及 取消自動(dòng)提交

try {  conn = DBUtils.getConnection();  conn.setAutoCommit(false);  //取消自動(dòng)提交, 后續(xù)手動(dòng)提交  String sql="update people set name=? where id=? ";  PreparedStatement ps= conn.prepareStatement(sql);  //按照順序發(fā)送參數(shù)  ps.setString(1, "Lao Wang");  ps.setInt(2, 100);  //執(zhí)行"執(zhí)行計(jì)劃"  int n=ps.executeUpdate();  conn.commit();  //手動(dòng)提交} catch (Exception e) {  e.printStackTrace();  DBUtils.rollback(conn); //異常回滾}finally{  DBUtils.close(conn);}

Statement的addBatch(sql)executeBatch()方法可以批量執(zhí)行sql。

Statement st=conn.createStatement();st.addBatch(sql1); //sql1 添加到Statement的緩存中st.addBatch(sql2);st.addBatch(sql3);int[] ary=st.executeBatch();  //執(zhí)行一批SQL

PreparedStatement也支持批量參數(shù)的處理

PreparedStatement ps = conn.prepareStatement(sql);ps.setInt(1, 1);ps.setString(2, "wang");ps.addBatch();   //將參數(shù)添加到ps緩存區(qū)ps.setInt(1, 2);ps.setString(2, "li");ps.addBatch();   //將參數(shù)添加到ps緩存區(qū)int[] ary = ps.executeBatch(); // 批量執(zhí)行

PreparedStatement ps = conn.prepareStatement(sql);

還可以傳入第二個(gè)參數(shù)用以獲取自增主鍵或者序號(hào)自增的列

Java,JDBC,連接數(shù)據(jù)庫

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美videofree性欧美另类 | 最新久久免费视频 | a级高清免费毛片av在线 | 亚洲骚妻 | 久久精品一区视频 | 美女视频黄a视频免费全过程 | 久久2019中文字幕 | 国产精品久久久久久模特 | 日本精品网 | 羞羞网站在线看 | 色妞视频男女视频 | 久久人人爽人人爽人人片av高清 | 草草影院地址 | 九九热视频在线 | 羞羞视频免费网站含羞草 | 精品国产一区二区三区在线观看 | 欧美三级毛片 | 国产午夜精品一区二区三区四区 | 九九热精品在线视频 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 欧美一级黄色免费看 | 羞羞视频.www在线观看 | 国产伦久视频免费观看视频 | 国产色91| 亚洲午夜免费电影 | 亚洲网站在线观看视频 | 国产在线精品区 | 草莓福利视频在线观看 | 国产成人高清成人av片在线看 | 在线99热 | 日本黄色a视频 | 久久综合精品视频 | 免费黄色在线电影 | 国产亚洲自拍一区 | av免费在线观 | 1314成人网 | 免费国产自久久久久三四区久久 | 精品久久久久久久久久久下田 | 成人午夜在线播放 | 久国久产久精永久网页 | 女教师~淫辱の动漫在线 |