流程图
综述
从零开始搭建JDBC环境。通过创建Java项目,在项目中,通过java程序执行SQL,并处理返回的结果。本文通过执行 select 1 from dual 语句来测试,并输出相结果集。首先通过简单java项目的方式。之后创建Maven项目,通过在Spring中配置C3P0数据源的方式。
简单项目方式
- 新建Java项目,名称随便起,例如JDBCTest。
- 导入数据库驱动类jar包。以Oracle数据库为例(前提是已经安装了Oracle数据库),Oralce驱动类jar包为ojdbc6.jar。位置在${Oracle_Home}/product/11.2.0/dbhome_1/jdbc/lib,其中${Oracle_home}为数据库的安装路径。
- 编写测试程序,代码如下
1 /** 2 * java与数据库交互的简单示例,运行select 1 from dual; 3 * @throws SQLException 4 */ 5 public static void RunSQLTest() throws SQLException 6 { 7 // 驱动方式获取Connection对象 8 Connection conn = getConnectionByDriver(); 9 // 创建Statement对象10 Statement statement = conn.createStatement();11 // sql语句12 String sql = "select 1 from dual";13 // 获取结果集对象14 ResultSet rs = statement.executeQuery(sql);15 while(rs.next())16 {17 System.out.println("执行"+sql+"的运行结果为:"+rs.getInt(1));18 }19 close(rs,statement,conn);20 }21 22 /**23 * 通过Driver驱动方式,创建Connection对象24 * @return25 * @throws SQLException 26 */27 public static Connection getConnectionByDriver() throws SQLException28 {29 // Driver方式30 OracleDriver driver = new OracleDriver();31 // jdbcUrl地址:格式为jdbc:subProtocol:subName32 String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";33 // 建立连接属性34 Properties prop = new Properties();35 // 指定用户名和密码36 prop.setProperty("user", "system");37 prop.setProperty("password", "password");38 // 建立连接39 Connection conn = driver.connect(jdbcUrl, prop);40 return conn;41 }42 /**43 * DriverManager的方式获取Connection44 * @return45 * @throws ClassNotFoundException 无法加载驱动类异常46 * @throws SQLException 47 */48 public static Connection getConnectionByDriverManager() throws ClassNotFoundException, SQLException49 {50 // 驱动类名称51 String driverClassName = "oracle.jdbc.OracleDriver";52 // jdbc地址53 String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";54 // 加载驱动,这一过程伴随着驱动注册55 Class.forName(driverClassName);56 // 建立连接57 Connection conn = DriverManager.getConnection(jdbcUrl, "system", "password");58 return conn;59 }60 /**61 * 关闭Connection,statement,Resultset等对象62 * @param rs63 * @param statement64 * @param conn65 * @throws SQLException66 */67 private static void close(ResultSet rs, Statement statement, Connection conn)68 throws SQLException69 {70 rs.close();71 statement.close();72 conn.close();73 }
异常总结:
lThe Network Adapter could not establish the connection:监听程序没有打开。
l TNS:listener does not currently know of SID given in connect descriptor:jdbcUrl存在错误。
Spring配数据源方式
第一步:创建Maven项目,随便命名,例如MasterJDBC
第二步:导入数据库驱动jar包,参考简单项目方式第二步。
第三步:配置pom文件,配置Spring依赖,C3P0依赖
2 5UTF-8 34.3.7.RELEASE 46 7 11org.springframework 8spring-context 9${springVersion} 1012 16org.springframework 13spring-core 14${springVersion} 1517 21org.springframework 18spring-beans 19${springVersion} 2022 26org.springframework 23spring-jdbc 24${springVersion} 2527 31c3p0 28c3p0 290.9.1.2 30
第四步: 在Spring文件中配置C3P0数据源
1 23 54 6 7 8 9 10
jdbc.properties文件的内容如下
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:masteroracle
jdbc.username=system
jdbc.password=password
第五步:编写测试程序
1 * 验证spring配置的C3P0数据源 2 * @throws SQLException 3 */ 4 public static void runSpringSQLTest() throws SQLException 5 { 6 // spring的ApplicationContext对象 7 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml"); 8 // C3P0数据源对象 9 ComboPooledDataSource dataSource = context.getBean("dataSource", ComboPooledDataSource.class);10 // Connection连接对象11 Connection conn = dataSource.getConnection();12 // 创建Statement对象13 Statement statement = conn.createStatement();14 // SQL语句15 String sql = "select 1 from dual";16 // 结果集ResultSet17 ResultSet rs = statement.executeQuery(sql);18 while (rs.next())19 {20 System.out.println("执行" + sql + "语句的结果为:" + rs.getInt(1));21 }
至此环境搭建完成。之后博客所有的内容都以此为基础。