JAVA_Web
相关例子参照我的另一篇博客Java_Web(连接数据库演示例子)
数据库连接基本操作
加载连接数据库的Driver类
- 用到的是java.lang.Class类的静态方法forName(String className),要加载连接数据库的Driver类,将要加载Driver类的完整包名作为参数传入。
- 例如加载mysql的Driver类:Class.forName(“com.mysql.jdbc.Driver”);
- 该方法会返回一个DriverManager类的对象
DriverManager
- 该类是JDBC的一个管理层。
- getConnection(String url,String user,String password):是一个静态方法,用来获取数据库的连接。参数url是数据库的地址,端口,和数据库名所组成的。参数user:是数据库的用户名。参数password:是数据库的密码。返回值的类型:java.sql.Connection,这个对象在下面介绍。(这里需要注意,比如使用mysql数据库,当版本比较新的时候还需要设置时区,也可以将时区设置写入初始化文件my.ini重启数据库)
- SetLoginTimeout(int seconds):静态方法,设置每次等待连接的最长时间
- setLogWriter(java.io.PrintWriter out):静态方法,设置日志的输出对象。
- println(String message):静态方法,用来输出指定消息到当前的JDBC日志流。
Connection
- 这是数据库连接接口
- createStatement():创建并返回一个Statement实例,通常在执行无参数的sql语句时创建该实例
- PreparedStatement():相当于个强化版的createStatement,通常是在执行带参的sql语句的时候创建该对象。
- commit():将上一次提交或回滚以来的所有改动更新到数据库(有点像git的云端提交?)。并且释放Connection当前所拥有的数据锁。
- close():断开连接,这个连接不会自动中断,即使关闭程序也不会,多次不关闭连接就关掉程序,容易导致数据库的接口占满从而无法使用。
Statement
- executeQuery(String sql):执行静态的SELECT语句
- executeUpdate(String sql):执行指定的静态INSERT,UPDATE或DELETE语句,并返回一个int值,表示同步更新记录的条数。
- addBatch(String sql):将指定的SQL命令添加到Batch中,String型参数通常为静态的INSERT或UPDATE语句。
- executeBatch():执行Batch中所包含的语句
- close():释放Statement实例所占用的资源。
SQL语句
- 在jsp中所执行的sql语句与直接操作数据库时用的是一样的语法格式,所不同的只有之前的连接等操作,以及需要特殊的实例对象调用方法来执行。