bitscn.com
数据库技术-jdbc连接mysql摘 要:jdbc(java database connectivity,java数据库连接)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc为数据库开发人员提供了一个标准的api,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯java api 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。
1、跨平台运行:这是继承了java语言的“一次编译,到处运行”的特点;
2、不受数据库供应商的限制:巧妙在于jdbc设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过sql调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,jdbc驱动程序可以利用jdbc api创建java程序和数据源之间的桥梁。应用程序只需要编写一次,便可以移到各种驱动程序上运行。sun提供了一个驱动管理器,数据库供应商——如mysql、oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。所以jdbc不受数据库供应商的限制。
jdbc api可以作为连接java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是jdbc的优、缺点。优点如下:
操作便捷:jdbc使得开发人员不需要再使用复杂的驱动器调用命令和函数; 可移植性强:jdbc支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可; 通用性好:jdbc-odbc桥接驱动器将jdbc函数换成odbc; 面向对象:可以将常用的jdbc数据库连接封装成一个类,在使用的时候直接调用即可。
缺点如下:
访问数据记录的速度受到一定程度的影响; 更改数据源困难:jdbc可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很大的麻烦
关键字:jdbc 数据库 mysql
数据库技术-jdbc连接mysql
一、jdbc连接数据库的流程及其原理
1、在开发环境中加载指定数据库的驱动程序。
mysql支持jdbc的驱动程序的是:mysql-connector-java-5.1.18-bin.jar)
2、在java程序中加载驱动程序。在java程序中,
class.forname(“指定数据库的驱动程序”)
class.forname(“com.mysql.jdbc.driver”)
3、创建数据连接对象
connection connection = drivermanager.getconnection(“连接数据库的url, 用户名,密码”)。url=协议名+ip地址(域名)+端口+数据库名称;用户名和密码是指登录数据库时所使用的用户名和密码。
connection connect =
drivermanager.geiconnection(“jdbc:mysql://localhost:3306/databasename,root,123 )
4、创建statement对象
statement 类的主要是用于执行静态 sql 语句并返回它所生成结果的对象。
statement statament =connection.createstatement();
statement statamentmysql =connectmysql.createstatement();
5、调用statement对象的相关方法执行相对应的 sql 语句
statement.excuteupdate( insertinto table (name, age, sex,address, depart, worklen,wage) + values ('tom1', 321, 'm', 'china','personnel','3','3000' ) ) ;
通过调用statement对象的executequery()方法进行数据的查询,而查询结果会得到resulset对象,resulset表示执行查询数据库后返回的数据的集合,resulset对象具有可以指向当前数据行的指针。通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。如果当next()方法返回null,则表示下一行中没有数据存在。使用示例代码如下:
resultset resultsel =statement.executequery( select * from table );
6、关闭数据库连接:
connection的close() 方法及时关闭数据连接。
finally {
try {
if (rs !=null) {
rs.close();
}
if (stmt !=null) {
stmt.close();
}
if (conn!=null) {
conn.close();
}
} catch (exception e2) {
system.out.println(e2.tostring());
}
}
二、演示
首先,mysql数据库的准备
1、 我们需要知道mysql的url user password
§ 注:查看方式:mysql> show variables
§
§ 或者通过其他mysql辅助软件一目了然的看到本机mysql的配置,我这里使用的是mysql workbench
§
§
§ 查看到我的
§ ipurl:localhost3308
§ user:root
§ password :123
§ 关于url 的localhost为数据库所在地址ip,本机mysql同样也在局域网中192.168.1.115 地址(也就是本机ip)
§ 查看方法:cmd->ipconfig
§
2、 打开mysql建立一个数据库,进行jdbc连接的准备
§ 说明下我们的jdbc connection需要连接到某地址的某数据库
§ 格式参考connection connect =
drivermanager.geiconnection(“jdbc:mysql://localhost:3306/databasename","root" ,"123")
接下来建立数据库吧,
使用mysql建立:
我建了个名叫zoo的数据库接下来可以进行java jdbc连接了。
1. 首先是倒入mysql的 jdbc驱动jar,
a) 工程下建立lib文件夹,放入mysql-connector-java的jar
b)
c) add jars加入jar
d)
代码编写
package myjdbc;import java.sql.connection;
import java.sql.drivermanager;
import java.sql.resultset;
import java.sql.resultsetmetadata;
import java.sql.sqlexception;
import java.sql.statement;
public class connn {
public static void main(string[] args) throws sqlexception {
string user = "root";
string password = "123";
string url = "jdbc:mysql://localhost:3308/zoo";
string url2 = "jdbc:mysql://192.168.1.115:3308/zoo";
string url3 = "jdbc:mysql://localhost:3308/zoo?user=root&password=123&useunicode=true&characterencoding=8859_1";
string driver = "com.mysql.jdbc.driver";
string tablename = "animal";
string sqlstr = "insert into animal (id,name,year) value("+5+","+"aiii"+","+33+");";
connection conn = null;
statement stmt = null;
resultset rs = null;
try {
class.forname(driver);
conn = drivermanager.getconnection(url3, "root", "123");
stmt = conn.createstatement();
system.out.println("数据库连接成功!");
}
catch (classnotfoundexception e) {
system.out.println("数据库驱动不存在!");
system.out.println(e.tostring());
}
catch (sqlexception e) {
system.out.println("sql错误");
system.out.println(e.tostring());
}
finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
catch (exception e2) {
system.out.println(e2.tostring());
}
}
}
}
连接成功!
三、总结
jdbc 连接数据库不复杂,连接的模式已定义的很清晰,按照
class.forname(“com.mysql.jdbc.driver”) ->
drivermanager.getconnection ->
createstatement ->
rs进行操作
的方式就可以顺利进行。
注意容易出错的地方: drivermanager.getconnection 后面的写法比较多
1. string url = jdbc:mysql://localhost:3308/zoo;
2. string url2 = jdbc:mysql://192.168.1.115:3308/zoo;
3. string url3 = jdbc:mysql://localhost:3308/zoo?user=root&password=123&useunicode=true&characterencoding=8859_1;
这几种都可以,主要是端口不要错,一般没有问题!
提供点帮助文件吧:
mysql-essential-5.6.0 下载地址 http://download.csdn.net/detail/zhangty0223/6811589
提供一个学习资料:
mysql从零开始学part1: http://download.csdn.net/detail/zhangty0223/6811667
mysql从零开始学part2: http://download.csdn.net/detail/zhangty0223/6811695
java jdbc mysql 驱动:http://download.csdn.net/detail/zhangty0223/6819387
整个工程源码:http://download.csdn.net/detail/zhangty0223/6819457
谢谢!
2014.1.7
以上就是数据库技术-jdbc连接mysql_mysql的内容。