首先要理解JDBC是什么?——JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。通俗讲,有了JDBC API,就不必为访问不同的数据库写不同的程序(例如:Sybase数据库,Informix数据库,Oracle数据库等等),程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。
JDBC访问数据库过程:注册驱动——>建立连接——>创建数据库操作对象用于SQL的语句——>执行语句——>处理执行结果——>释放资源
下面大概了解过程:
1:注册驱动
首先需要下载MYSQL数据库的驱动程序(网址:http://dev.mysql.com/downloads/connector,不会下载的可以百度,分分钟就会了),下载文件为压缩文件mysql_connector-java-5.1.6.zip,解压文件得到MySQL数据库的驱动程序文件mysql_connector-java-5.1.6-bin。
接下来是将驱动程序mysql_connector-java-5.1.6-bin复制到Web应用程序的WEB-INF\lib目录下,Web应用程序就可以通过JDBC接口访问数据库了。加载注册指定的数据库驱动程序,对于Mysql数据库,其驱动程序加载格式: class.forName("com.mysql.jdbc.Driver");
2:JDBC连接数据库创建连接对象
首先形成‘’连接符号字(url)‘’,然后利用“连接符号字”实现连接并创建连接对象
数据库连接的URL(要建立与数据库的连接,要先创建指定数据库的URL)
string url 1="jdbc:mysql:";
string ur2="?user=root&password=密码";
string ur3="&useUnicode=true&characterEncoding=UTF-8";
string url=url1+url2+url3;
利用连接符号字实现连接,获取连接对象(DriverMangner类提供了getConnection方法,用来连接与数据库的连接,有下面三种方法):
A static Connection getConnection(String url)
B static Connection getConnection(String url,properties info);
C static Connection getConnection(String url,String user,String password):
利用JDBC连接Mysql数据库,获取连接对象的通用格式
例子
假设使用的Mysql数据库为"students",数据库操作的用户名为"root",密码为"123456",编码采用"utf-8"
String driverName="com.mysql.jdbc.driver";
String userName="root"
String userpwd="123456"
String dbName="students"
String ur1="jdbc:mysql;//localhost:3306/"=dbName;
String ur2="?user="="userNanme"="&password="=userpwd;
String url3="&useunicode=true&characterEncoding=UTF-8";
string url=url1+url2+url3
class.forName(driverName);
Connection conn=DriverManager.getConnection(url);
3,创建数据库的操作对象:创建两个对象分别是Statement和PrepareStatement对象
Statement创建 :Statement stmt=conn.createStatement(); //conn为连接数据库对象
PrepareStatemen创建: PreparedStatement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象。
String sql=“~”; //sql语句形成的字符串
preparedStatement pstmt=conn.preparedStatement(sql); //conn为连接数据库对象
4:,执行SQL
Statement对象执行SQL语句:
ResultSet executeQuery(string sql):执行select语句,返回一个结果集
int executeUpdate(string sql):执行update,insert,delete,返回一个整数,表示执行SQL语句影响的数据行数
PreparedStatement对象执行SQL语句:
ResultSet executeQuery():执行select语句,返回一个结果集
int executeUpdate():执行update,insert,delete,返回一个整数,表示执行SQL语句影响的数据行数
5,获得查询结果并进行处理:
记录定位操作:在 ResultSet结果记录集中隐含着一个数据行指针
读取指定字段的数据操作:用getXxx()方法读取各字段的数据
修改指定字段的数据操作:格式 uodateXxx(字段名或字段号,新数值)
6,释放资源:
在完成对数据库记录的一次操作后,要及时关闭对象并且释放资源