微信登录

python jdbc oracle

JDBC(Java Database Connectivity)

JDBC直接访问数据库
JDO(java data Object)技术
第三方O/R工具,JDO、Hibernate、MyBatis更好封装JDBC

java.sql
javax.sql

Java提供一组规范接口 JDBC
数据库公司提供JDBC驱动

编写顺序步骤

导入java.sql
导入数据库厂商的驱动(Oracle、MySQL)
创建Connect对象
创建Statement对象(sql)
执行sql语句
使用ResultSet对象
关闭ResultSet对象
关闭Statement对象(sql)
关闭Connect对象

5种方式连接数据库

  1. package com.atguigu1.connection;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.sql.Connection;
  5. import java.sql.Driver;
  6. import java.sql.DriverManager;
  7. import java.sql.SQLException;
  8. import java.util.Properties;
  9. import org.junit.Test;
  10. public class ConnectionTest {
  11. // 方式一:
  12. @Test
  13. public void testConnection1() throws SQLException {
  14. // 获取Driver实现类对象
  15. Driver driver = new com.mysql.jdbc.Driver();
  16. // url:http://localhost:8080/gmall/keyboard.jpg
  17. // jdbc:mysql:协议
  18. // localhost:ip地址
  19. // 3306:默认mysql的端口号
  20. // test:test数据库
  21. String url = "jdbc:mysql://localhost:3306/test";
  22. // 将用户名和密码封装在Properties中
  23. Properties info = new Properties();
  24. info.setProperty("user", "root");
  25. info.setProperty("password", "abc123");
  26. Connection conn = driver.connect(url, info);
  27. System.out.println(conn);
  28. }
  29. // 方式二:对方式一的迭代:在如下的程序中不出现第三方的api,使得程序具有更好的可移植性
  30. @Test
  31. public void testConnection2() throws Exception {
  32. // 1.获取Driver实现类对象:使用反射
  33. Class clazz = Class.forName("com.mysql.jdbc.Driver");
  34. Driver driver = (Driver) clazz.newInstance();
  35. // 2.提供要连接的数据库
  36. String url = "jdbc:mysql://localhost:3306/test";
  37. // 3.提供连接需要的用户名和密码
  38. Properties info = new Properties();
  39. info.setProperty("user", "root");
  40. info.setProperty("password", "abc123");
  41. // 4.获取连接
  42. Connection conn = driver.connect(url, info);
  43. System.out.println(conn);
  44. }
  45. // 方式三:使用DriverManager替换Driver
  46. @Test
  47. public void testConnection3() throws Exception {
  48. // 1.获取Driver实现类的对象
  49. Class clazz = Class.forName("com.mysql.jdbc.Driver");
  50. Driver driver = (Driver) clazz.newInstance();
  51. // 2.提供另外三个连接的基本信息:
  52. String url = "jdbc:mysql://localhost:3306/test";
  53. String user = "root";
  54. String password = "abc123";
  55. // 注册驱动
  56. DriverManager.registerDriver(driver);
  57. // 获取连接
  58. Connection conn = DriverManager.getConnection(url, user, password);
  59. System.out.println(conn);
  60. }
  61. // 方式四:可以只是加载驱动,不用显示的注册驱动过了。
  62. @Test
  63. public void testConnection4() throws Exception {
  64. // 1.提供三个连接的基本信息:
  65. String url = "jdbc:mysql://localhost:3306/test";
  66. String user = "root";
  67. String password = "abc123";
  68. // 2.加载Driver
  69. Class.forName("com.mysql.jdbc.Driver");
  70. //相较于方式三,可以省略如下的操作:
  71. // Driver driver = (Driver) clazz.newInstance();
  72. // // 注册驱动
  73. // DriverManager.registerDriver(driver);
  74. //为什么可以省略上述操作呢?
  75. /*
  76. * 在mysql的Driver实现类中,声明了如下的操作:
  77. * static {
  78. try {
  79. java.sql.DriverManager.registerDriver(new Driver());
  80. } catch (SQLException E) {
  81. throw new RuntimeException("Can't register driver!");
  82. }
  83. }
  84. */
  85. // 3.获取连接
  86. Connection conn = DriverManager.getConnection(url, user, password);
  87. System.out.println(conn);
  88. }
  89. //方式五(final版):将数据库连接需要的4个基本信息声明在配置文件中,通过读取配置文件的方式,获取连接
  90. /*
  91. * 此种方式的好处?
  92. * 1.实现了数据与代码的分离。实现了解耦
  93. * 2.如果需要修改配置文件信息,可以避免程序重新打包。
  94. */
  95. @Test
  96. public void getConnection5() throws Exception{
  97. //1.读取配置文件中的4个基本信息
  98. InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
  99. Properties pros = new Properties();
  100. pros.load(is);
  101. String user = pros.getProperty("user");
  102. String password = pros.getProperty("password");
  103. String url = pros.getProperty("url");
  104. String driverClass = pros.getProperty("driverClass");
  105. //2.加载驱动
  106. Class.forName(driverClass);
  107. //3.获取连接
  108. Connection conn = DriverManager.getConnection(url, user, password);
  109. System.out.println(conn);
  110. }
  111. }

方式五 配置文件 jdbc.properties

  1. src/jdbc.properties
  1. user=root
  2. password=xxxxx
  3. url=jdbc:mysql://localhost:3306/text?rewriteBatchedStatements=true
  4. driverClass=com.mysql.jdbc.Driver

成功

  1. com.mysql.jdbc.JDBC4Connection@490ab905