连接数据库的步骤:
1.加载JDBC驱动
2.提供连接参数
3.建立数据库连接
4.创建一个statement
5.执行SQL语句
6.处理结果
7.关闭JDBC对象
新建一个JDBCUtil类
package com.jdbc.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class JDBCUtil{ private final String USERNAME = "root"; //用户名 private final String PASSWORD = "a123"; //密码 private final String DRIVER = "com.mysql.jdbc.Driver"; //需要加载的驱动 private final String URL = "jdbc:mysql://localhost:3306/test"; //访问数据库的url private Connection connection; //数据库连接 private PreparedStatement preparedStatement;//定义sql语句的执行对象 private ResultSet resultSet; //查询返回的结果集合}
在构造函数中注册驱动:
public JDBCUtil() { try { Class.forName(DRIVER); //注册驱动 System.out.println("注册成功"); } catch (Exception e) { e.printStackTrace(); } }
获取连接:
public Connection getConnection() { try { //获取连接 connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (Exception e) { // TODO: handle exception } return connection; }
执行更新语句:
//执行更新语句 public boolean updateByPreparedStatement(String sql, List
查询单条结果:
//查询单条结果 public Map findSimpleResult(String sql, List
查询多条结果:
public List
释放连接:
//释放连接 public void releaseConn() { if (resultSet != null) { try { resultSet.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } if (preparedStatement != null) { try { preparedStatement.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
测试代码如下:
public static void main(String[] args) { JDBCUtil jdbcUtil = new JDBCUtil(); jdbcUtil.getConnection(); String sql = "insert into person(name, age) values(?, ?)"; List
后面改动Java的反射特性改写查找函数.