用框架用習慣了,以前最初級的連接數據庫方式都生疏了,接下來總結一下最初級的Java連接數據庫以及操作
先總結以下Java連接數據庫的步驟(orale),然后在舉例子操作Dao層
1.加載驅動:
Class.forName(“oracle.jdbc.driver.OracleDriver”);
2.獲取連接填寫數據庫名密碼等:
Connection c=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”, “scott”, “scott”);
3.創建sql語句
String sql = “insert into bankst(id,username,userpwd,price) values(?,?,?,?) “;
4.創建statement對象或者創建preparedStatement對象
Statement st=conn.createStatement();
PreparedStatement ps = conn.prepareStatement(sql);
5.執行sql語句
st.execute(sql);
ps.executeUpdate();
6.處理結果集
使用JavaBean類保存結果
ResultSet rs = ps.executeQuery();
while (rs.next()) {
cusValue cv = new cusValue(rs.getString(“cusid”), rs.getString(“cusname”),
rs.getDate(“indate”),rs.getDate(“outdate”), rs.getString(“roomnumber”),rs.getDouble(“price”)
);
7.關閉連接
c.close
在程序中數據庫層:編寫連接和關閉的操作,main主函數是為了測試數據庫是否正確連接
package jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class jdbc { public static void main(String[] args) { System.out.println(jdbc.getConn()); } public static Connection getConn(){ Connection c = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); c = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl", "scott", "scott"); } catch (Exception e) { e.printStackTrace(); } return c; } public static void closeConn(Connection c){ if(c!=null){ try { c.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
Dao層操作:
package Dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import Value.loginValue;import jdbc.jdbc;/** * 1.PreparedStatement ps = conn.prepareStatement(sql);這個語句是實現預編譯的,對于批量處理可以大大提高效率.也叫JDBC存儲過程2.當然也可以使用 Statement 對象。在對數據庫只執行一次性存取的時侯,用 Statement 對象進行處理。 PreparedStatement對象的開銷比Statement大,對于一次性操作并不會帶來額外的好處。3.statement每次執行sql語句,相關數據庫都要執行sql語句的編譯,preparedstatement是預編譯得4.可以通過ps.set(1,數值)進行賦值,注意是從1開始的,而不像hibernate的p=Session.createSQLQuery(sql);然后再p.setInteger(0, bv.getId());是從0開始的 * @author lenovo * */public class userDao { /** * 注冊 即增加操作 * @param lv * @return */ public boolean zhuce(loginValue lv){ Connection conn=null; try{ conn=jdbc.getConn(); String sql = "insert into htuser values(?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, lv.getUsername()); ps.setString(2, lv.getUserpwd()); ps.executeUpdate(); return true; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ jdbc.closeConn(conn); } return false; } /** * 登錄即查找操作,只不過加了判斷 * @param username * @param userpwd * @return */ public boolean login(String username,String userpwd){ Connection conn=null; try{ conn=jdbc.getConn(); String sql="select *from htuser where username=? and userpwd=? "; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2,userpwd); ResultSet rs = ps.executeQuery(); if(rs.next()) return true; }catch(Exception e){ e.printStackTrace(); }finally{ jdbc.closeConn(conn); } return false; } /**、 * 查找全部 * @return */ public List<loginvalue> selectAll(){ List<loginvalue> lv = new ArrayList<loginvalue>(); Connection conn=null; try{ conn=jdbc.getConn(); String sql="select *from htuser"; PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); while (rs.next()) { loginValue l = new loginValue(rs.getString("username"),rs.getString("userpwd")); lv.add(l); } }catch(Exception e){ e.printStackTrace(); }finally{ jdbc.closeConn(conn); } return lv; } /** * 按名字刪除 * @param username * @return */ public boolean deleteUser(int username){ Connection conn=null; try{ conn=jdbc.getConn(); String sql="delete from htuser where username=?"; PreparedStatement ps=conn.prepareStatement(sql); ps.setInt(1, username); boolean b=ps.execute(); if(!b){ return true; } }catch(Exception e){ e.printStackTrace(); }finally{ jdbc.closeConn(conn); } return false; } /** * 修改操作 * @param lv * @return */ public boolean alterUser(loginValue lv){ Connection conn=null; try{ conn=jdbc.getConn(); String sql="update htuser set userpwd=? where username=?"; PreparedStatement ps=conn.prepareStatement(sql); ps.setString(1, lv.getUsername()); ps.setString(2, lv.getUserpwd()); boolean b=ps.execute(); if(!b){ return true; } }catch(Exception e){ e.printStackTrace(); }finally{ jdbc.closeConn(conn); } return false; }}
就是這些了,忘了就看看這個,應該可以想起來,最后大家新年快樂,嘎嘎
看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170129/96466.html
文章列表