下载并配置好JDBC驱动后,我们可以来使用。
一、连接数据库
使用JDBC连接数据库存取数据时,要执行三个步骤:
- 加载及注册适当的JDBC驱动程序
加载使用
Class.forName();
加载完成后,驱动程序会建立一个Driver对象,并且会让DriverManager.rigisterDriver()自动注册这个对象。
在JDBC中用URL来标识数据库,
jdbc:<子协议>:<子名称>
使用MySQL时,语法如下
jdbc:mysql://hostname:port/databasename?param=value1
子协议:mysql
子名称://hostname:port/databasename?param=value1,其中param可以有多个。
实例如:
jdbc:mysql://localhost:3306/sample?user=root&password=root;
- 建立到指定的数据库的连接对象
有两种方法:
1.
String url = "jdbc:mysql://localhost:3306/sample?user=root&password=root";
Connection con = DriverManager.getConnection(url);
2.
String url = "jdbc:mysql://localhost:3306/sample";
String user ="root";
String password="root";
Connection con = DriverManager.getConnection(url,user,password);
- 提交数据库查询和取得查询对象
在取得数据库的连接对象后,就可以由它来创建一个陈述对象,其主要用来 传送 SQL语句到数据库服务器和执行Sql语句。
如下:
Statement stmt= con.createStatement();
Statement对象有有三种执行语句的方法:
executeQuery():执行查询。
executeUpdate():执行更新。
execute():不知道正要执行的是什么时。
执行后数据库会返回一个ResultSet集合对象到JDBC中。原理如下:
Connection ------>PreparedStatement-------->ResultSet
|------>Statement----------------->ResultSet
|-------->CallableStatement------>ResultSet
二、使用代码连接数据库
我们先建立一个testmysql的数据库,里面有一个student表。
//建立 create databse testmysql; //查看 show databases; //建立表 user testmysql; create table student( id int(3), name char(20), sex boolean); //加入数据 insert into student (‘1‘, ‘lishengjing‘,‘1‘); //查看数据 select * from student ;
然后我们在本项目中加载 jdbc,右键项目,选择build path 里面的user library中的MySQL.
最后是编码。如下
package chuiyuan; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCExample { public static void main(String args[]){ try { Class.forName("com.mysql.jdbc.Driver") ; String url = "jdbc:mysql://localhost:3306/testmysql?user=root&password=chuiyuan" ; Connection connection = DriverManager.getConnection(url) ; Statement stmt = connection.createStatement() ; ResultSet rs = stmt.executeQuery("select * from student"); while (rs.next()) { System.out.println("student number:"+rs.getInt(1)); System.out.println("student name:"+rs.getString(2)); System.out.println("stutent sex:"+ rs.getBoolean(3)+"\n"); } rs.close(); stmt.close(); connection.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); }catch (SQLException e) { e.printStackTrace(); } } }