javaweb中mysql数据库连接方法

来源:互联网 发布:j罗 皇马 数据 编辑:程序博客网 时间:2024/04/30 11:51

一、直接连接,不封装到工具类中,主要步骤:

先导包:mysql-connector-java-5.0.8-bin.jar(点击跳转到下载界面),放在WebRoot/WEB-INF/lib/下

  1.加载驱动//com.mysql.jdbc.Driver

  2.获取连接 Connection对象

  3.获取用于向数据库发送SQL的Statement对象
 
  4.执行sql,获取数据,解析数据
 
  5.关闭连接,释放资源

                /* 协议:子协议://主机:端口/数据库名 */String url = "jdbc:mysql://localhost:3306/jdbctest";// mysql数据库的用户名与密码,安装时自己设置,一般默认为rootString user = "root";String password = "root";Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {// 1.加载驱动//com.mysql.jdbc.Driver/* * DriverManager.registerDriver(new * Driver());用这种方法会加载两次驱动,也就是说会创建两个drive对象 */Class.forName("com.mysql.jdbc.Driver");// 2.获取连接connection = DriverManager.getConnection(url, user, password);// 3.获取用于向数据库发送SQL的Statement对象statement = connection.createStatement();// 4.执行sql,获取数据resultSet = statement.executeQuery("SELECT * FROM users;");// 解析数据while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");String psd = resultSet.getString("password");String email = resultSet.getString("email");String birthday = resultSet.getString("birthday");System.out.println(id + " " + name + " " + psd + " " + email+ " " + birthday);}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {                          //5.关闭连接,释放资源if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}resultSet = null;}if (statement != null) {try {statement.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}statement = null;}if (connection != null) {try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}connection = null;}}

二、将数据库连接封装成一个工具类

这样做的好处是,在实际开发中,就能做到,改一处即可修改全局。

1.建一个名为db.properties的配置文件,放于src/

url=jdbc:mysql://localhost:3306/jdbctestusername=rootpassword=rootdriver=com.mysql.jdbc.Driver

2.工具类:

import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;public class JdbcUtil {//私有静态变量,用以读取配置文件private static Properties config=new Properties();static{try {//配置资源文件config.load(JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));//加载驱动Class.forName(config.getProperty("driver"));} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}public static  Connection getConnection(){Connection connection=null;try {connection=DriverManager.getConnection(config.getProperty("url"),config.getProperty("username"),config.getProperty("password"));} catch (SQLException e) {e.printStackTrace();}return connection;}//用以关闭连接,释放资源public static void releaseConn(Connection connection, Statement statement,ResultSet resultSet) {if(resultSet!=null){try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}resultSet=null;}if(statement!=null){try {statement.close();} catch (SQLException e) {e.printStackTrace();}statement=null;}if(connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}connection=null;}}}
3.使用实例:

                Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {// 调用工具类中的静态方法来获取连接connection = JdbcUtil.getConnection();statement = connection.createStatement();resultSet = statement.executeQuery("select * from users");while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");String psd = resultSet.getString("password");String email = resultSet.getString("email");String birthday = resultSet.getString("birthday");System.out.println(id + " " + name + " " + psd + " " + email+ " " + birthday);}} catch (Exception e) {e.printStackTrace();} finally {// 调用工具类中的静态方法来关闭连接,释放资源JdbcUtil.releaseConn(connection, statement, resultSet);}}



2 0