基本概念 ------------------------------------------------------------ 1、静态块:static{} //执行优先于构造函数,只执行一次 2、加载类:Class.forName(PackagePath); //加载包路径下的类 3、连接类:Connection //类,在java.sql.driver类下 4、连接url:"jdbc:oracle:thin@localhost:1521:ORCL","scott","tiger" 5、驱动包:ojdbc5.jar(oracle11g) 6、执行类:Statement类,在java.sql.Statement包下 7、结果集:ResultSet 8、集合泛型:限制集合中的存放类型 9、预处理:PreparedStatement类 10、批处理:Statement st = con.createNewStatement();st.addBatch(sql);at.executeBatch(sql); 使用方式 ---------------------------------------------------------------------------------------------- 1、导入数据库驱动包 -------------------------------------------------------------------------------------- ojdbc12.jar 2、加载oracle驱动:使用Class.forName()方法 -------------------------------------------------------------------------------------- static{ try{ Class.forName("oracle.driver.OracleDriver"); }catch(Exception e){ e.printStack(); } } 3、获取数据库连接:使用Connection类中的方法 -------------------------------------------------------------------------------------- Connection con = DriverManager.getConnection(); 4、执行sql语句: -------------------------------------------------------------------------------------- Statement stat = con.createStatement(); int ret = stat.executeUpdate(sql); //执行增删改语句 ResultSet rs = stat.executeQuery(sql); //执行查询语句 while(rs.next()){ rs.getInt(1); //拿第一列,数据类型为int rs.getString(2); //拿第二列,数据类型为Stirng rs.getInt("pno"); //根据列名拿数据 } ------------------------------------------------------------------------------------- PreparedStatement ps = con.preparedStatement("insert into usrInfo values(?,?,?,?,?)"); ps.setInt(1,1); //替换第一个问号 ps.setString(2,1); //替换第二个问号 ps.executedUpdate(); ------------------------------------------------------------------------------------- String sql1=""; //批处理方式处理数据 String sql2=""; ps.addbatch(sql1); ps.addbatch(sql2); int[] result = ps.excuteBatch();//当返回值大于零,则执行成功 -------------------------------------------------------------------------------------- con.setAutoCommit(false); //设置成手动事务提交 con.commit(); //提交 con.rollback(); //事务回滚 分层设计 ----------------------------------------------------------- 1、获取数据库连接及其连接的关闭等操作可以封装在一个Dao类当中 2、每个数据库表都可以在程序中封装为一个实体类 3、每个实体类都封装在与实体类同名的Dao类当中 注意事项 ----------------------------------------------------------- 1、Connection类和Statement类需要关闭 2、ResultSet类也需要关闭 3、Statment类容易实现SQL注入,安全性不佳,所以使用PreparedStatement比较安全