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 过程名(?,?,?)}
=================================(未完)=============================