数据库连接JDBC
oracle:
driver : oracle.jdbc.driver.OracleDriver
url : jdbc:oracle:thin:@localhost:1521:orcl
mysql:
driver : com.mysql.jdbc.Driver
url : jdbc:mysql://localhost:3306/mychool
1 package com.dao; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 public class BaseDao { 10 public static void main(String[] args) throws ClassNotFoundException, SQLException { 11 //加载驱动 12 Class.forName("com.mysql.jdbc.Driver"); 13 //获取连接 14 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myschool", "root", "123"); 15 //操作状态 16 Statement stm = conn.createStatement(); 17 //执行SQL 18 ResultSet rs = stm.executeQuery("select * from student"); 19 //处理结果 20 while (rs.next()){ 21 int id = rs.getInt("id"); 22 String name = rs.getString("name"); 23 String city = rs.getString("city"); 24 int age = rs.getInt("age"); 25 System.out.println(id+"\t"+name+"\t"+city+"\t"+age); 26 } 27 //释放资源 28 rs.close(); 29 stm.close(); 30 conn.close(); 31 } 32 }
BaseDao
1 package com.dao; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.sql.Statement; 9 import java.util.ResourceBundle; 10 /** 11 * 操作数据库的基类 12 * */ 13 public class BaseDao { 14 private static final String DRIVER; 15 private static final String URL; 16 private static final String USER; 17 private static final String PASSWORD; 18 static { 19 ResourceBundle bundle = ResourceBundle.getBundle("db"); 20 DRIVER = bundle.getString("driver"); 21 URL = bundle.getString("url"); 22 USER = bundle.getString("username"); 23 PASSWORD = bundle.getString("password"); 24 } 25 private static Connection conn; 26 private static Statement stm; 27 private static PreparedStatement pstm; 28 private static ResultSet rs; 29 /** 30 * 获取数据库连接 31 * */ 32 public boolean getConnection(){ 33 try { 34 //加载驱动 35 Class.forName(DRIVER); 36 //获取连接 37 conn = DriverManager.getConnection(URL, USER, PASSWORD); 38 } catch (ClassNotFoundException e) { 39 e.printStackTrace(); 40 return false; 41 } catch (SQLException e) { 42 e.printStackTrace(); 43 return false; 44 } 45 return true; 46 } 47 /** 48 * 增删改 49 * */ 50 public int executeUpdate(String sql, Object[] params){ 51 int updateRows = 0; 52 try { 53 pstm = conn.prepareStatement(sql); 54 //填充占位符 55 for(int i=0; i<params.length; i++){ 56 pstm.setObject(i+1, params[i]); 57 } 58 updateRows = pstm.executeUpdate(); 59 } catch (SQLException e) { 60 e.printStackTrace(); 61 updateRows = -1; 62 } 63 return updateRows; 64 } 65 /** 66 * 查询 67 * */ 68 public ResultSet executeQuery(String sql, Object[] params){ 69 try { 70 pstm = conn.prepareStatement(sql); 71 //填充占位符 72 for(int i=0; i<params.length; i++){ 73 pstm.setObject(i+1, params[i]); 74 } 75 rs = pstm.executeQuery(); 76 } catch (SQLException e) { 77 e.printStackTrace(); 78 } 79 return rs; 80 } 81 /** 82 * 释放资源 83 * */ 84 public void close(){ 85 if (rs!=null){ 86 try { 87 rs.close(); 88 } catch (SQLException e) { 89 e.printStackTrace(); 90 } 91 rs = null; 92 } 93 if (stm!=null){ 94 try { 95 stm.close(); 96 } catch (SQLException e) { 97 e.printStackTrace(); 98 } 99 stm = null; 100 } 101 if (pstm!=null){ 102 try { 103 pstm.close(); 104 } catch (SQLException e) { 105 e.printStackTrace(); 106 } 107 psrm=null; 108 } 109 if (conn!=null){ 110 try { 111 conn.close(); 112 } catch (SQLException e) { 113 e.printStackTrace(); 114 } 115 conn = null; 116 } 117 } 118 119 120 } 121 122 123 注意:调用方法时,先判断是否拿到connection 124 public void getNewsList() { 125 String sql = "select * from news_detail"; 126 Object[] params = {}; 127 ----> if (this.getConnection()){ 128 ResultSet rs = this.executeQuery(sql, params); 129 //处理执行结果 130 try { 131 while (rs.next()){ 132 int id = rs.getInt("id"); 133 String title = rs.getString("title"); 134 System.out.println(id+"\t"+title); 135 } 136 } catch (SQLException e) { 137 // TODO Auto-generated catch block 138 e.printStackTrace(); 139 } finally { 140 ----> this.close(); 141 } 142 } 143 144 }
JDBC 使用Oracle 序列保存数据
方法一:
String sql = "insert into t_user(id,username,password) values(seq_t_user.nextval,?,?)";
Object[] params = {"王五", "123456"};
===> seq_t_user.nextval 为id列自增序列
方法二:
使用 pstm.setObject();方法

浙公网安备 33010602011771号