我们首次接触数据库的时候在学生信息管理系统中,之后在我们的学习过程中,对于数据库我们也了解越来越深,体会到了程序设计中离不开数据库的支持,每个程序的开发都是使用数据保存数据。
JDBC是一种可用于执行SQL语句的java应用程序设计接口,是连接数据库和java程序的桥梁,通过JDBCAPI可以方便地实现对各种主流数据库的操作。使用JDBC技术访问数据库可以达到查找满足条件的记录,或者数据库添加、修改、删除数据。
JDBC制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现。但是JDBC并不能直接访问数据库,需要依赖于数据库厂商提供的JDBC去驱动程序。
1、JDBC与ODBC十分相似,便于软件开发人员理解
2、JDBC使软件开发人员从复杂的驱动程序编写工作中解脱出来,可以完全专注于业务逻辑的开发
3、JDBC支持多种关系型数据库,大大增加了软件的可移植性
4、JDBC API是面向对象的,软件开发人员可以将常用的方法进行二次封装,从而提高代码的复用性
1、DriverManager类:用来管理数据库中的所有驱动程序,是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用驱动程序,并在数据库的驱动程序之间建立连接,DriverManager类也处理诸如驱动程序登录时间限制及登录和跟踪信息的显示等事物。DriverManager类中的方法都是静态方法,所以在程序中无须对它进行实例化,直接通过类名就可以调用。
2、Connection接口:Connection接口代表与特定的数据库的连接。要对数据表中的数据进行操作,首先要获取数据库连接,Connection实例就像在应用程序与数据之间开通了一条渠道。
3、Statement接口:Statement接口用于创建向数据库中传递SQL语句的对象,该接口提供了一些方法可以实现对数据库的常用操作。
4、PreparedStatement接口:PreparedStatement接口继承Statement,用于执行动态的SQL语句,通过PreparedStatement实例执行的SQL语句,将被预编译并保存到PrepareStatement实例中,从而可以反复地执行该SQL语句。
5、ResultSet接口:ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。
访问数据库,首先要加载数据库驱动,数据库驱动只需在第一次访问数据库是加载一次。然后在每次访问数据库是创建一个Connection实例,获取数据库连接,这样就可以执行操作数据库的SQL语句。最后在完成数据库操作时,释放与数据库的连接。
下载的数据库驱动文件添加到项目中后,首先需要加载数据库驱动程序,才能进行数据库操作。java加载数据库驱动的方法是调用class类的静态方法forName().
Class.forName(String driverManager)//DriverManager是所需类的完全限定名
forName()方法参数指定要加载的数据库驱动,加载成功,会将加载的驱动类注册给DriverManager,如果加载失败,则会抛出ClassNotFoundException异常。
加载完数据库驱动即可建立数据库的连接,要连接数据库可以使用DriverManager类的静态方法getConnection()来实现,并分别将数据库的URL、数据库用户名和密码作为该方法的参数,即可建立到指定数据库的连接。
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载数据库驱动 //声明数据库db_database17的URL String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_database17"; String user="sa";//数据库用户名 String password="";//数据库密码 //建立数据库连接,获得连接对象conn Connection conn=DriverManager.getConnection(url,user,password);
1、增、删、改数据
在java程序中,一旦建立了数据库连接,就可以使用Connection接口createStatement()方法来获取Statement对象,通过executeUpdate()方法来执行SQL语句,就可以向数据库进行添加、删除、修改操作,返回影响数据库记录的条数。
//生成一条SQL语句 String sql="insert into tb_Users(UserName,Password,Sex,Age) values('杨月娥','1','女','22')"; Statement stmt=conn.createStatement();//创建一个Statement对象 stmt.executeUpdate(sql);//执行SQL语句 conn.close();//关闭数据库连接对象
2、查询数据
查询数据可通过Statement接口的executeQuery()方法执行SQL语句,executeQuery()方法用于执行SELECT查询语句,将放回一个ResultSet型的结果集。通过遍历查询结果集的内容,才可获取SQL语句执行的查询结果。
Statement stmt=conn.createStatement();//创建一个Statement对象 String sql="select * from tb_Users"; ResultSet rs=stmt.executeQuery(sql);//执行查询,把查询结果赋值给结果集对象 int id,age;//声明ID和年龄两个变量 String username,pwd,sex;//声明用户名、密码和性别3个变量 System.out.println("id\t用户名\t 密码\t性别\t 年龄");//t相当于8个空格 while(rs.next()){//遍历结果集 id=rs.getlnt("id");//获得ID值 username=rs.getString(2);//获得用户名 pwd=rs.getString("password");//获得密码 sex=rs.getString(4);//获得性别 age=rs.getlnt("age");//获得年龄 System.out.println(id+"\t"+username+"\t"+pwd+"\t"+sex+"\t"+age); }
总结下来,发现JDBC并不是特别陌生,和C#、vb.net对数据库的操作都很相似,增删改都是调用同一个方法,查询单独调用一个方法,而且执行语句也大体相同。java也没有想象中那么难,多学多用多比较一下就好了。