使用JDBC连接MySql数据库,需要先在项目中添加Jar包:“mysql-connector-java-5.1.42-bin.jar”
import java.sql.*; public class JDBCStudy { public static void main(String[] args) { //数据库连接 Connection conn = null; //预编译的statement,通过它来操纵数据库,可以提高数据库的性能 PreparedStatement preparedStatement = null; //结果集对象 ResultSet rs = null; // 驱动程序名 String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名world String url = "jdbc:mysql://localhost:3306/sendmail"; // MySQL配置时的用户名 String user = "root"; // MySQL配置时的密码 String password = "sqlxx8"; String name; try { // 加载数据库驱动程序 Class.forName (driver); // 通过驱动管理连接数据库 conn = DriverManager.getConnection (url, user, password); if (!conn.isClosed ()) System.out.println ("Succeeded connecting to the Database!"); // 要执行的SQL语句,定义SQL语句,?表示占位符。 String sql = "select * from t_user WHERE username = ?"; // statement用来执行SQL语句 preparedStatement = conn.prepareStatement (sql); //获取预处理的statement preparedStatement.setString (1, "zhangsan"); // 结果集,向数据库发出SQL执行查询,查询出结果集 rs = preparedStatement.executeQuery (); while (rs.next ()) { // 选择Name这列数据 name = rs.getString ("username"); // 输出结果 System.out.println (name); } } catch (ClassNotFoundException e) { System.out.println ("Sorry,can`t find the Driver!"); e.printStackTrace (); } catch (SQLException e) { e.printStackTrace (); } catch (Exception e) { e.printStackTrace (); } finally { //释放连接 try { rs.close (); } catch (SQLException e) { e.printStackTrace (); } try { conn.close (); } catch (SQLException e) { e.printStackTrace (); } } } }使用JDBC连接数据库还存在一些问题:
数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁的连接开启和关闭,造成数据库资源浪费,影响数据库性能。将Sql语句硬编码到java代码中,如果Sql语句修改,需要重新编译Java代码,不利于系统维护。向preparedStatement中设置参数,同样是硬编码,不利于系统维护。从resultSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。 -