JAVA的JDBC连接与sql操作
一、前言
本文主要介绍怎样连接数据库。即JDBC的操作。以MySQL为例子。
前提是首先要将驱动jar包放入对应路径中。
二、过程说明
1.加载jdbc驱动程序
<span style="font-size:12px;">Class.forName("com.mysql.jdbc.Driver");</span>
这里的驱动根据不同类型的数据库来改变。
比如mysql数据库,就是com.mysql.jdbc.Driver
Oracle数据库,oracle.jdbc.driver.OracleDriver
ms_sql server数据库,com.microsoft.jdbc.sqlserver.SQLServerDriver
等等。
2、建立连接
<span style="font-size:12px;">Connection connect = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");</span>
其中三个参数分别是:加载数据库的地址url,加载数据库的用户名user,加载数据库的用户相应的登陆密码password;
3.创建Statement对象
<span style="font-size:12px;">Statement stmt = connect.createStatement();</span>大部分数据库驱动程序允许在同一个连接中打开多个并行的Statement对象,创建好Statement对象之后,就可以使用它来进行数据库的操作了。Statement类中的常用方法,可以去帮助文档中查找。
4.执行sql语句及结果集的处理
<span style="font-size:12px;">ResultSet rs = stmt.executeQuery("select * from stu_table"); while(rs.next()){ System.out.println(rs.getString("name")); }</span>
5.一些其他如insert插入操作
<span style="font-size:12px;">int num = 100; PreparedStatement pst = connect.prepareStatement("insert into stu_table values(?,?,?,?)"); int i; for( i = 0; i < num ; i++){ pst.setString(1,i+"3"); pst.setString(2,"Lilly" + (i+1)); pst.setString(3, "female"); pst.setString(4, "001"); pst.execute(); } System.out.println("success inserting notes!");</span>
6.关闭连接
rs.close();
stmt.close();
connect.close();
在关闭连接前先将相应的ResultSet对象及statement对象也关闭。
三、程序完整实现
<span style="font-size:12px;">package test; import java.sql.*; public class testJDBC { public static void main(String[] args) { try{ //first:load jdbc driver Class.forName("com.mysql.jdbc.Driver"); System.out.println("Success loading Mysql Driver!"); } catch(Exception e){ System.out.println("Error loading mysql driver!"); e.printStackTrace(); } try{ //second:connect sql server Connection connect = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456"); System.out.println("success connecting mysql server!"); //third:selct from the table of database using a sql query Statement stmt = connect.createStatement(); ResultSet rs = stmt.executeQuery("select * from stu_table"); while(rs.next()){ System.out.println(rs.getString("name")); } //four:do some other operation such as insert notes int num = 100; PreparedStatement pst = connect.prepareStatement("insert into stu_table values(?,?,?,?)"); int i; // for( i = 0; i < num ; i++){ // pst.setString(1,i+"3"); // // pst.setString(2,"Lilly" + (i+1)); // pst.setString(3, "female"); // pst.setString(4, "001"); // pst.execute(); // } System.out.println("success inserting notes!");</strong></span></span>
<span style="font-size:12px;"><span style="font-size:18px;"><strong><span style="white-space:pre"> </span>rs.close(); <span style="white-space:pre"> </span>stmt.close(); <span style="white-space:pre"> </span>connect.close(); } catch(SQLException e){ System.out.println("Error connecting mysql server!"); e.printStackTrace(); } } } </span>