`

当码农爱上淑女----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    过程名(?,?,?

 

 

=================================(未完)=============================

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics