现在我们已经进入到了大数据的时代,对数据的处理也越来也是每个程序员必学的知识。而且,一个软件,不管是手机软件还是电脑软件,都需要数据的存储和处理。所以,懂得数据方面的知识是必须的。那我们就从最基础的开始学习。今天我们学习下如何用JDBC来操作数据库。我们以JDBC操作MySQL为例来学习。
首先利用JDBC操作数据库MySQL,其中包括六大步骤:
1、建立驱动
2、建立连接
3、创建语句
4、执行语句
5、处理结果
6、释放连接
这是JDBC操作数据库的一个比较完整但是很不完善的过程。说他完整是因为JDBC操作数据库就是需要这六大步骤,说不完善,是因为这六大步骤中还有很多问题需要我们在实际的编程中去处理。现在我们分别详细来说说这六个步骤的。
1、建立驱动:看文知意,这是第一部,就是建立起数据库和JDBC之间的驱动。其中建立驱动的方法比较多,这里我们就介绍三种用的比较多的。
a、Class.forName("com.mysql.jdbc.Driver");
b、DriverManager.registerDriver(new com.mysql.jdbc.Driver());
c、System.setProperty(“jdbc.drivers”,”com.mysql.jdbc.Driver:“jdbc.drivers”,”com.mysql.jdbc.Driver””);建立多个驱动时,多个驱动直接用冒号隔开就可以了
2、建立连接:
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/jdbc”,”root”,”password”);这里有是哪个参数,第一个就是意向与之建立连接的数据库,第二个就是用户名,第三个就是数据库的密码。
3、创建语句:
Statement st=conn.createStatement();建立好连接后便可以创建语句了,记得的是创建语句必须在建立好连接的基础上执行。
4、执行语句:
ResultSet rs=st.executeQuery("select * from user");创建好语句之后便可以执行创建好的语句了。执行语句的结果就是返回ResultSet 对象。把查询的结果存放到ResultSet中,返回。
5、处理结果:
这一步是对执行语句得到的ResultSet结果进行功能需要的数据处理。例如,打印输出,解析处理返回给客户端等···
6、断开连接,释放资源:
rs.close();
st.close();
conn.close();数据库连接所用的资源是非常宝贵的,如果连接长时间连接而不释放,很容易使服务器崩溃掉。所以每一个连接调用完要最快的、醉及时的断掉,以保证连接资源的充足,使得其他的连接不受影响。
下面附上完整的实例代码:
package com.jdbctest;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Base {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// TODO Auto-generated method stub
test();
}
static void test() throws SQLException, ClassNotFoundException{
//注册驱动
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");
//建立连接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/myapplication", "root", "");
//创建语句
Statement st=conn.createStatement();//语句的构造是通过链接构造的
//执行语句
ResultSet rs=st.executeQuery("select * from user_leader");
//处理结果
while(rs.next()){
System.out.println(rs.getObject("user_name")+"\t"+rs.getObject("counter")+"\t"+rs.getObject("password")+"\t"+rs.getObject("sex") );
}
//释放资源
rs.close();
st.close();
conn.close();
}
}