jdbc 连接mysql 数据库
来源:互联网 发布:矩阵的点乘 编辑:程序博客网 时间:2024/05/06 18:20
jdbc 连接mysql 数据库
使用jdbc连接数据库是比较简单的,下面介绍一下基本步骤。
1.注册数据库驱动
市面上有很多的数据库产品如:
- mysql
- oracle
- sql server
- db2
如何与数据库对接是依赖于特定的数据库产品的,java并没有关于此的特定实现。实际上java只是制定了数据库连接的接口(也就是jdbc),具体的实现是由数据库厂商提供的。因此若要操作某一数据库,程序中要依赖于第三方提供的驱动包。本文中使用的是mysql数据库,在安装目录下可以找到驱动包。
导入jar包之后下一步要做的是注册数据库驱动,代码如下所示:
code1(注册驱动1)
try { // The newInstance() call is a work around for some // broken Java implementations Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (Exception ex) { // handle the error }
上面代码的意义实际上是将mysql的驱动注册给jdbc,上面的代码可能有点难以理解,创建那么一个对象有什么用呢?查看com.mysql.jdbc.Driver的源码可以发现,Driver内部有一个静态代码块,上面的代码将导致代块的代码得到执行。其实质就是将mysql的驱动注册给java的驱动管理者。
code2(com.mysql.jdbc.Driver内部静态静态代码块)
static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can\'t register driver!"); } }
所以采用反射的方式实质是与下面的代码是等效的
code3(注册驱动2)
try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); } catch (SQLException var1) { throw new RuntimeException("Can\'t register driver!"); }
2.连接数据库
注册完数据库之后,下一步要做的就是连接库。连接数据库的话需要三个参数 数据库地址,用户名,以及密码。
下面是我的代码
String url="jdbc:mysql://localhost/test?user=tiger&password=123456"; Connection conn = DriverManager.getConnection(url);
上面的url惟一指定一个数据库,
- localhost 服务器地址,使用默认端口3306
- test 这是我的数据库名
- user 后接用户名
- password 后接密码
- jdbc:mysql mysql连接协议固定格式,不同的类别数据库格式不一样
3数据库操作
//假定已经连接到数据库了Statement stmt = null;ResultSet rs = null;try { stmt = conn.createStatement(); //执行查询,会得到一个结果集 rs = stmt.executeQuery("SELECT foo FROM bar"); // 上面的代码可以用如下方式替换 // 普通的数据库操作 if (stmt.execute("SELECT foo FROM bar")) { rs = stmt.getResultSet(); } //得到查询结果后可以在这里做一些操作}catch (SQLException ex){ // handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode());}finally { // 执行完操作后,如果不在需要,记得释放资源 // it is a good idea to release // resources in a finally{} block // in reverse-order of their creation // if they are no-longer needed if (rs != null) { try { rs.close(); } catch (SQLException sqlEx) { } // ignore rs = null; } if (stmt != null) { try { stmt.close(); } catch (SQLException sqlEx) { } // ignore stmt = null; }}
注:上面中的参数都是直接写到代码里的,这样子的话数据库之间切换会比较麻烦,实际上应该写到配置文件里。
0 0
- JDBC连接MySQL数据库
- JDBC连接MySQL数据库
- JDBC连接MYSQL数据库
- JDBC连接mysql数据库
- jdbc连接Mysql数据库
- jdbc 连接mysql数据库
- JDBC连接MYSQL数据库
- JDBC连接MySql数据库
- jdbc 连接Mysql数据库
- JDBC连接MySQL数据库
- JDBC连接MYSQL数据库
- JDBC连接数据库(MySQL)
- JDBC连接mySQL数据库
- jdbc连接Mysql数据库
- jdbc连接mysql数据库
- jdbc 连接mySql 数据库
- JDBC连接MySQL数据库
- jdbc连接mysql数据库
- hihocoder太阁面经算法竞赛8-Dice Possibility
- NYOJ 113 字符串替换 string类的应用
- ant打包apk
- 通过SSH在Ubuntu下安装TeamViewer软件
- 第7章 复用类
- jdbc 连接mysql 数据库
- Vue.js学习 Item12 – 内部响应式原理探究
- Hibernate关联映射(2)2015-07-11
- Matlab坐标轴操作汇总
- 检查类修饰符和类型(Examining Class Modifiers and Types)
- 【Leetcode】198. House Robber - - 【动态规划】
- iOS学习笔记
- 谈谈Js事件的那些事儿
- discuz 帖子列表页调用封面图片