概述:JDBC就是java定义的通用的数据库API。通过不同数据库驱动可以方便连接不同的数据库如mysql,oracle,sql server等。
JDBC的使用
1.导入第三方库
需要导入相应的开发包,如使用MySql则导入mysql-connector-java-5.1.39.zip
2.获取Connnection
有几种方式不同连接到数据库
可以采用将相应信息如数据库url ,数据库名,密码等信息写入property配置文件。
配置文件在项目开发中十分常见通用,可以更好的解耦,如当你更换url,数据库,或者使用其他厂商数据库时,只需要改配置文件即可。
注意清理数据库相关资源也是不可或缺的。
代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| Connection connection = null; Statement statement = null; ResultSet resultSet = null;
try {
// step1: 驱动管理器 ,注册驱动 DriverManager.registerDriver(new Driver());
//step2: get connection Connection MySQLConnection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/homeworkdb", "root", "root");
//step3: create statement java.sql.Statement statement = MySQLConnection.createStatement(); */
Properties dbconfigProperties = new Properties(); dbconfigProperties.load(new FileInputStream(new File("DBConf.prop")));
Class.forName(dbconfigProperties.getProperty("dbdriver")).newInstance();
connection = DriverManager.getConnection(dbconfigProperties.getProperty("dburl"), dbconfigProperties); statement = connection.createStatement();
resultSet = statement.executeQuery("select * from tutors;");
} catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } }
if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } }
if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } }
}
|
JDBC - CRUD操作
CRUD-增删改查是数据库也是软件开发的常见任务。
关键还是 编写 SQL语句的功力。
而作为开发工程师(非DBA,架构师等)最重要的数据库能力就是各种select语句的编写(join关联多表等)。
JDBC操作数据库用到的几个关键对象:
- Connection
- Statement
- PrepareStatement (预编译可以提高效率等,同时可以结合批处理addbatch())
- ResultSet
具体的使用方法查看文档即可。
当需要更好的封装JDBC进行单纯地数据库操作(而非ORM等高级对象映射),可以自己简单封装一下,不过效率肯定不能恭维(练习一下造轮子功力&封装能力即可)。
真正通用的方案是选择Apache开源库:
apache jdbc dbutils 官网给出了具体的使用示范。
轻量小乔,方便快捷。可以将resaultset转化为JavaBean,list ,map 等各种数据类型。简化了不少工作。