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

准备工作

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

  可参见之前的文章:

  http://www.cnblogs.com/mengdd/p/3154638.html

  http://www.cnblogs.com/mengdd/p/3154922.html

准备驱动包

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

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

  http://www.mysql.com/products/connector/

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

JDBC代码编写

  首先,需要加载驱动:

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

  然后,建立连接:

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

  

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

  JDBC连接不同数据库:

  

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

  最后要记得关闭资源。

实践程序

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

  1. package com.meng.utils;
  2.  
  3. import java.sql.*;
  4.  
  5. public class JDBCHelper
  6. {
  7. private Connection con = null;
  8. private PreparedStatement stmt = null;
  9. private ResultSet rs = null;
  10.  
  11. public JDBCHelper()
  12. {
  13.  
  14. try
  15. {
  16. // 加载驱动
  17. Class.forName("com.mysql.jdbc.Driver");
  18. String dbUrl = "jdbc:mysql://localhost:3306/mydatabase1";
  19. String dbUser = "mengdd";
  20. String dbPwd = "881103";
  21. // 打开数据库连接
  22. con = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
  23.  
  24. }
  25. catch (ClassNotFoundException e)
  26. {
  27. System.out.println("Error: unable to load driver class!");
  28. System.out
  29. .println("please check if you hava the mysql-connector jar file in your lib dir!");
  30. e.printStackTrace();
  31. }
  32. catch (SQLException e)
  33. {
  34. e.printStackTrace();
  35. }
  36.  
  37. }
  38.  
  39. public ResultSet executeResultSet(String sql)
  40. {
  41. return executeResultSet(sql, null);
  42. }
  43.  
  44. public ResultSet executeResultSet(String sql, Object[] params)
  45. {
  46. try
  47. {
  48. // 创建一个JDBC声明
  49. stmt = con.prepareStatement(sql);
  50. if (null != params && params.length != 0)
  51. {
  52. for (int i = 0; i < params.length; i++)
  53. {
  54. stmt.setObject(i + 1, params[i]);
  55. }
  56. }
  57. rs = stmt.executeQuery();
  58. return rs;
  59. }
  60. catch (Exception ex)
  61. {
  62. throw new RuntimeException(ex.getMessage(), ex);
  63. }
  64. }
  65.  
  66. public int executeUpdate(String sql)
  67. {
  68. return executeUpdate(sql, null);
  69. }
  70.  
  71. public int executeUpdate(String sql, Object[] params)
  72. {
  73. try
  74. {
  75. // 创建一个JDBC声明
  76. stmt = con.prepareStatement(sql);
  77. if (null != params && params.length != 0)
  78. {
  79. for (int i = 0; i < params.length; i++)
  80. {
  81. stmt.setObject(i + 1, params[i]);
  82. }
  83. }
  84. return stmt.executeUpdate();
  85. }
  86. catch (Exception ex)
  87. {
  88. throw new RuntimeException(ex.getMessage(), ex);
  89. }
  90. }
  91.  
  92. public void close()
  93. {
  94. try
  95. {
  96. // 应该明确地关闭所有的数据库资源
  97. if (null != rs)
  98. rs.close();
  99. if (null != stmt)
  100. stmt.close();
  101. if (null != con)
  102. con.close();
  103.  
  104. }
  105. catch (SQLException e)
  106. {
  107. throw new RuntimeException(e);
  108. }
  109.  
  110. }
  111. }

  测试代码:

  1. package com.meng.test;
  2.  
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5.  
  6. import com.meng.utils.JDBCHelper;
  7.  
  8. public class Test
  9. {
  10. public static void main(String[] args)
  11. {
  12. JDBCHelper dbHelper = new JDBCHelper();
  13.  
  14. ResultSet resultSet = dbHelper.executeResultSet("SELECT * FROM pet;");
  15.  
  16. try
  17. {
  18. while (resultSet.next())
  19. {
  20. System.out.println("-------------");
  21. System.out.println("name: " + resultSet.getString("name"));
  22. System.out.println("birth: " + resultSet.getString("birth"));
  23.  
  24. }
  25. }
  26. catch (SQLException e)
  27. {
  28. e.printStackTrace();
  29. }
  30. finally
  31. {
  32. dbHelper.close();
  33. }
  34.  
  35. }
  36.  
  37. }

  结果:

  1. -------------
  2. name: Tutu
  3. birth: 2013-03-01
  4. -------------
  5. name: Whistler
  6. birth: 1997-12-09
  7. -------------
  8. name: WangWang
  9. birth: 2008-09-30
  10. -------------
  11. name: MiaoMiao
  12. birth: 2012-01-01

参考资料

  官方文档:

  Java SE Technologies – Database

  http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136101.html

  JDBC Overview

  http://www.oracle.com/technetwork/java/overview-141217.html

  JDBC API

  http://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/

  Tutorial JDBC basic

  http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

  Getting Started:

  http://docs.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/GettingStartedTOC.fm.html

  The JDBC classes are contained in the Java package java.sql and javax.sql

  JDBC教程:

  http://www.yiibai.com/jdbc/jdbc-db-connections.html

JDBC连接MySQL 方法 实例及资料收集的更多相关文章

  1. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  2. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  3. JDBC连接MySQL数据库及示例

      JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一 ...

  4. 修改sqlarchemy源码使其支持jdbc连接mysql

    注意:本文不会将所有完整源码贴出,只是将具体的思路以及部分源码贴出,需要感兴趣的读者自己实验然后实现吆. 缘起 公司最近的项目需要将之前的部分业务的数据库连接方式改为jdbc,但由于之前的项目都使用s ...

  5. Java编程学习之JDBC连接MySQL

    JDBC连接MySQL 一.对JDBC连接数据库的步骤1.加载数据库驱动//加载驱动Class.forName(driverClass)-------------------------------- ...

  6. ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库

    1.MySQL存储过程   1.1.什么是存储过程 带有逻辑的sql语句:带有流程控制语句(if  while)等等 的sql语句   1.2.存储过程的特点 1)执行效率非常快,存储过程是数据库的服 ...

  7. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

  8. java jdbc 连接mysql 数据库

    JDBC连接MySQL 加载及注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); Class.forName("com. ...

  9. java用JDBC连接MySQL数据库的详细知识点

    想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downlo ...

随机推荐

  1. solr:快速开始

    本文已挪至  http://www.zhoujingen.cn/blog/8535.html 明年工作主要和搜索有关,在自己学习过程中分享让更多人受益是我一贯的做法,所以我会把对Solr的学习在这里与 ...

  2. 理解SQL Server是如何执行查询的 (2/3)

    查询执行的内存授予(Query Execution Memory Grant) 有些操作符需要较多的内存才能完成操作.例如,SORT.HASH.HAS聚合等.执行计划通过操作符需要处理数据量的预估值( ...

  3. SQL约束

    SQL约束: 非空约束:就是不能为null: 主键约束(PK):唯一,不重复,并且不为空: 唯一约束:唯一,允许为空,但只能出现一次: 默认约束:如果不给值,默认值: 检查约束:范围以及格式限制: 外 ...

  4. C语言编译过程

    GCC编译C源码有四个步骤: 预处理-----> 编译 ----> 汇编 ----> 链接 一. 编译和链接的流程 C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在 ...

  5. Dapper学习 - Dapper.Rainbow(三) - Read

    前面已经介绍了新增/修改/删除了, 接下来介绍一下Rainbow的Read方法. 一.Read -- Rainbow原生 1. 先看测试代码 var conStr = ConfigurationMan ...

  6. jQuery的Ajax请求数据时type无法使用GET

    写一个ASP.NET MVC例子,它是使用jQuery的$.Ajax来呼叫控制器的数据. 创建一个视图: 运行结果: 一切正常,但是本例子我们只是获取数据,并没有做任何数据POST上传至控制器,我们尝 ...

  7. 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...

  8. 使用Unity3d做异形窗口

    项目马上上线,因为之前的登录器是使用VS2010的MFC做的,在很多电脑上会提示缺失mfcXXXX.dll,中间找寻这种解决方案,最后确定将vcredist2010_x86和我的程序打包到安装包里面, ...

  9. Jquery请求Ajax的json数据

      获得单个json对象 $.getJSON("test.js", { name: "John", time: "2pm" }, funct ...

  10. JMS中的消息通信模型

    1. MQ简介: 消息队列(Message Queue,简称MQ),是应用程序与应用程序之间的一种通信方法.应用程序通过发送和检索出入列队的针对应用程序的数据 - 消息来通信,而无需专用连接来链接它们 ...