1、JDBC连接各个数据库时,存在很多相同的代码部分,把这些部分单独写在一个类里面,根据传入的driver、url、user、password这些参数连接到特定的数据库,工具类代码如下:
- <span style="font-size:16px;">package mine.util.database;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.sql.Statement;
- /**
- * 该工具类用于数据库连接,返回一个Statement对象,用户可以根据此对象执行sql语句获取结果
- */
- public class DataBaseConnection {
- public static final String ACCESS_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
- public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
- public static final String ORACLE_DRIVER = "oracle.jdbc.driver.OracleDriver";
- public static final String SQLSERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
- private Statement st = null;
- private Connection connection = null;
- public Statement getStatement(String driver, String url, String user,
- String password) {
- try {
- // 1、加载驱动程序
- Class.forName(driver);
- // 2、通过url建立连接,连接到数据库
- connection = DriverManager.getConnection(url, user, password);
- // 3、创建语句,connection可以看出缆道,Statement可以看出缆车
- st = connection.createStatement();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return st;
- }
- public void close() {
- try {
- if (st != null)
- st.close();
- if (connection != null)
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- </span>
2、下面用JDBC-ODBC桥的方式连接Access数据库来测试一下这个工具类
首先,配置odbc源,如下所示:
数据源student.mdb中ST表信息如下
接下来就是写代码了,代码如下:
- <span style="font-size:16px;">package demo.database;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import mine.util.database.DataBaseConnection;
- /*
- * 用工具类DataBaseConnection,连接Access数据库示例
- */
- public class AccessDemo {
- public void connect() {
- DataBaseConnection dbConn = new DataBaseConnection();
- //返回Statement对象
- Statement st = dbConn.getStatement(DataBaseConnection.ACCESS_DRIVER,
- "jdbc:odbc:Access", "", "");
- ResultSet rs = null;
- try {
- // 执行sql语句
- rs = st.executeQuery("select * from ST ");
- // 获取结果集中的信息
- while (rs.next()) {// 注意rs当前指向null,须先next()移动到指向第一条记录
- System.out.println(rs.getString("Sno") + " "
- + rs.getString("Sname") + " " + rs.getString("Ssex")
- + " " + rs.getInt("Sage") + " "
- + rs.getString("Sdept"));
- }
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- dbConn.close();
- }
- public static void main(String[] args) {
- new AccessDemo().connect();
- }
- }
- </span>
运行结果:
测试完毕
3、常用数据库url
4、数据库数据类型与对应的java数据类型