当码农爱上淑女----JDBC使用细节
JDBC(Java ????Database???? Connectivity)
驱动及连接字符串:
MySQL数据库????????????MySQL????Connector/J????Driver
????????????驱动程序包名:mysql-connector-java-x.x.xx-bin.jar
????????????驱动程序类名: com.mysql.jdbc.Driver
????????????JDBC URL: jdbc:mysql://<host>:<port>/<database_name>
????????????默认端口3306,如果服务器使用默认端口则port可以省略
????????????MySQL Connector/J Driver 允许在URL中添加额外的连接属性
????????????eg:????jdbc:mysql://<host>:<port>/<database_name>? property1=value1&property2=value2
Oracle数据库????????????OracleOracle Thin JDBC Driver
????????????驱动程序包名:ojdbc14.jar
????????????驱动程序类名: oracle.jdbc.driver.OracleDriver
????????????JDBC URL: jdbc:oracle:thin:@//<host>:<port>/ServiceName 或 jdbc:oracle:thin:@<host>:<port>:<SID>????????????????????????????
????????????eg:????String url = "jdbc:oracle:thin:@localhost:1521:orcle"
?
数据库的一些知识:
DML(Data????Manipulation????Language,数据操作语言):主要由insert、update、delete三个关键字完成。DDL(Data????Definition????Language,数据定义语言):主要由create、alert、drop、truncate四个关键字完成。DCL(Data????Controll????Language,数据控制语言):主要由grant和revoke两个关键字完成。事务控制语句:主要由commit、rollback 、savepoint三个关键字完成。JDBC编程的三个步骤:
????????①:加载驱动
????????????????Class.forName("com.mysq.jdbc.Driver");
????????②:获取数据库连接
????????????????DriverManager.getConnection(String url,String user,String password);
????????③:通过Connection对象创建Statement对象(这里所说的Statement对象指Statement和其子类);
????????④:使用Statement执行SQL语句。
????????????????Statement主要有三个方法指向SQL语句
????????????????execute:可以指向任何SQL语句,但比较麻烦
????????????????executeUpdate:主要指向DML和DDL语句。执行DML返回受SQL影响的行数,执行DDL返回0;
????????????????executeQuery:只能执行查询语句(这个从名字中就可以看出来),指向结果将返回一个ResultSet对象。
????????⑤:操作结果集?
????????⑥:关闭数据库连接对象
????????????????(注意点:这里的关闭顺序应该和创建的顺序相反,如:创建时先创建Connection,然后Statement,ResultSet,所以关闭时应该先关闭ResultSet,然后关闭Statement,Connection);
?
?
??你该了解的内容:
PreparedStatement是Statement的子类,那么它和Statement有那些不一样,或者说有什么有点或缺点?
????->PreparedStatement预编译SQL语句,性能更好。
????->PreparedStatement无需“拼接”SQL语句,编程更简单。
????->PreparedStatement可以防止SQL注入,安全性更好。
????注意:使用PreparedStatement执行带占位符的SQL语句时,SQL语句中的占位符参数只能代表普通值,不要使用占位符参数代替表名,列名,等数据库对象。
?
JDBC里存储过程如果调用?
????使用CallableStatement,可以使用prepareCall方法来创建CallableStatement对象,创建该对象需要传入调用存储过程的SQL语句,调用存储过程的SQL语句格式:{call????过程名(?,?,?)}
?
?
=================================(未完)=============================