博客
关于我
JDBC连接MySQL 方法 实例及资料收集
阅读量:434 次
发布时间:2019-03-06

本文共 4259 字,大约阅读时间需要 14 分钟。

JDBC连接MySQL 方法 实例及资料收集

 

准备工作

  首先,安装MySQL,配置用户名和密码,创建数据库。

  可参见之前的文章:

  

  

 

准备驱动包

  要用JDBC连接MySQL,需要一个驱动包:

  可以去这里下载(其实完整安装MySQL后可以在安装路径中找到这个包):

  

  解压后将其中的mysql-connector-java-XXX-bin.jar文件加入到Web Project的lib中:

 

JDBC代码编写

  首先,需要加载驱动:

// 加载驱动Class.forName("com.mysql.jdbc.Driver");

 

  然后,建立连接:

String dbUrl = "jdbc:mysql://localhost:3306/mydatabase1";String dbUser = "your_username";String dbPwd = "your_password";// 打开数据库连接con = DriverManager.getConnection(dbUrl, dbUser, dbPwd);

  

  注意其中的端口号和数据库名(mydatabase1)可能需要修改。

  JDBC连接不同数据库:

  

  之后就可以执行SQL语句了。

  最后要记得关闭资源。

 

实践程序

  完整Helper类代码(感谢ZJL同学无私奉献悉心指导):

package com.meng.utils;import java.sql.*;public class JDBCHelper{    private Connection con = null;    private PreparedStatement stmt = null;    private ResultSet rs = null;    public JDBCHelper()    {        try        {            // 加载驱动            Class.forName("com.mysql.jdbc.Driver");            String dbUrl = "jdbc:mysql://localhost:3306/mydatabase1";            String dbUser = "mengdd";            String dbPwd = "881103";            // 打开数据库连接            con = DriverManager.getConnection(dbUrl, dbUser, dbPwd);        }        catch (ClassNotFoundException e)        {            System.out.println("Error: unable to load driver class!");            System.out                    .println("please check if you hava the mysql-connector jar file in your lib dir!");            e.printStackTrace();        }        catch (SQLException e)        {            e.printStackTrace();        }    }    public ResultSet executeResultSet(String sql)    {        return executeResultSet(sql, null);    }    public ResultSet executeResultSet(String sql, Object[] params)    {        try        {            // 创建一个JDBC声明            stmt = con.prepareStatement(sql);            if (null != params && params.length != 0)            {                for (int i = 0; i < params.length; i++)                {                    stmt.setObject(i + 1, params[i]);                }            }            rs = stmt.executeQuery();            return rs;        }        catch (Exception ex)        {            throw new RuntimeException(ex.getMessage(), ex);        }    }    public int executeUpdate(String sql)    {        return executeUpdate(sql, null);    }    public int executeUpdate(String sql, Object[] params)    {        try        {            // 创建一个JDBC声明            stmt = con.prepareStatement(sql);            if (null != params && params.length != 0)            {                for (int i = 0; i < params.length; i++)                {                    stmt.setObject(i + 1, params[i]);                }            }            return stmt.executeUpdate();        }        catch (Exception ex)        {            throw new RuntimeException(ex.getMessage(), ex);        }    }    public void close()    {        try        {            // 应该明确地关闭所有的数据库资源            if (null != rs)                rs.close();            if (null != stmt)                stmt.close();            if (null != con)                con.close();        }        catch (SQLException e)        {            throw new RuntimeException(e);        }    }}

 

  测试代码:

package com.meng.test;import java.sql.ResultSet;import java.sql.SQLException;import com.meng.utils.JDBCHelper;public class Test{    public static void main(String[] args)    {        JDBCHelper dbHelper = new JDBCHelper();        ResultSet resultSet = dbHelper.executeResultSet("SELECT * FROM pet;");        try        {            while (resultSet.next())            {                System.out.println("-------------");                System.out.println("name: " + resultSet.getString("name"));                System.out.println("birth: " + resultSet.getString("birth"));            }        }        catch (SQLException e)        {            e.printStackTrace();        }        finally        {            dbHelper.close();        }    }}

 

  结果:

-------------name: Tutubirth: 2013-03-01-------------name: Whistlerbirth: 1997-12-09-------------name: WangWangbirth: 2008-09-30-------------name: MiaoMiaobirth: 2012-01-01

 

 

参考资料

  官方文档:

  Java SE Technologies – Database

  

  JDBC Overview

  

  JDBC API

  

  Tutorial JDBC basic

  

  Getting Started:

  

 

  The JDBC classes are contained in the   and 

  JDBC教程:

  

 

转载地址:http://ecqyz.baihongyu.com/

你可能感兴趣的文章
【三思笔记】 全面学习Oracle分区表及分区索引
查看>>
wcf webHttpBinding Post 大数据量提交 ios c#客户端
查看>>
[LeetCode题解]141. 环形链表 | 快慢指针
查看>>
MySQL错误日志(Error Log)
查看>>
MySQL二进制文件(binlog)
查看>>
Redis性能篇(二)CPU核和NUMA架构的影响
查看>>
MMORPG大型游戏设计与开发(客户端架构 part3 of vegine)
查看>>
C基础 带你手写 redis ae 事件驱动模型
查看>>
C基础 工程中常用的排序
查看>>
6.Android-五大布局
查看>>
第3阶段——内核启动分析之start_kernel初始化函数(5)
查看>>
12.Linux之输入子系统分析(详解)
查看>>
19.QT-事件发送函数sendEvent()、postEvent()
查看>>
源码解析之 Mybatis 对 Integer 参数做了什么手脚?
查看>>
oracle使用DBMS_RANDOM包生成随机数据
查看>>
[转]收集Oracle UNDO诊断信息脚本
查看>>
Qt快速入门之三:Qt项目建立、编译、运行和源码详解
查看>>
【QML 快速入门】属性(Properties)
查看>>
音视频基础知识---像素格式YUV(转)
查看>>
音视频-测试工具推荐
查看>>