JDBC连接数据库工具类及连接Access数据库示例

1、JDBC连接各个数据库时,存在很多相同的代码部分,把这些部分单独写在一个类里面,根据传入的driver、url、user、password这些参数连接到特定的数据库,工具类代码如下:

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();
		}
	}
}


 

2、下面用JDBC-ODBC桥的方式连接Access数据库来测试一下这个工具类

 

    首先,配置odbc源,如下所示:

 

 

 

数据源student.mdb中ST表信息如下

 

接下来就是写代码了,代码如下:

 

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();
	}
}


 

运行结果:

测试完毕

 

3、常用数据库url

 

4、数据库数据类型与对应的java数据类型

 

 

 

 

你可能感兴趣的:(Java)