JDBC(Java Database Connectivity)
Java数据库连接,提供了一种与平台无关的用于执行SQL语句的标准javaAPI,可以方便实现多种关系型数据库的统一操作
常用的类与接口为DriverManager、Connection、Statement、ResultSet、PreparedStatement , SavePoint
DriverManager
管理JDBC驱动的服务类,通过它获取Connection数据库链接,常用方法如下:
public static synchronized Connection getConnection(String url, String user, String password) throws Exception;
JDBC2.0中引DataSource,推荐使用DataSource获取连接.
PreparedStatement
预编译的statement对象,PreparedStatement是Statement的子接口,它允许数据库预编译SQL,通常指带参数的SQL语句.
无需重新传入SQL语句,避免数据库每次都编译SQL语句。
PreparedStatement可以为编译的SQL语句传入参数值,void setXxx(int index, value)
ResultSet
保存执行Sql后的返回结果集.
java连接Mysql示例
引入Mysql驱动
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency>
------
package jdbc; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class JdbcTest { public static void queryForList() { Connection connection = null; ResultSet resultSet = null; PreparedStatement statement = null; List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>(); String url = "jdbc:mysql://192.168.3.5:3306/javaweb"; String user = "root"; String pwd = "z"; String sql = "select * from user_t where id != ? "; try { // 加载JDBC驱动 Class clazz = Class.forName("com.mysql.jdbc.Driver"); System.out.println(clazz); // 获取数据库连接 connection = DriverManager.getConnection(url, user, pwd); // 获取Statement,每一个Statement表示一次数据库请求 statement = connection.prepareStatement(sql); // 设置参数 statement.setString(1, "-1"); // 执行查询 resultSet = statement.executeQuery(); // 获取查询结果 ResultSetMetaData metadata = resultSet.getMetaData(); while (resultSet.next()) { Map<String, Object> map = new HashMap<String, Object>(); for (int i = 0,count = metadata.getColumnCount(); i < count; i++) { String columnName = metadata.getColumnName(i + 1); map.put(columnName, resultSet.getString(columnName)); } resultList.add(map); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (resultSet != null) { resultSet.close(); } if (statement != null) { statement.close(); } if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } //打印结果 for (Map m : resultList) { System.out.println(m); } } public static void main(String[] args) { queryForList(); } }
------
end