myeclipse中连接mysql数据库⽰例代码
1. 环境配置
在安装后的软件包中,mysql_server\Connector J XXXX中可以到⼀个jar包,这个jar包是java程序连接mysql数据库必须的。若没有这个包,程序代码将提⽰:sql.jdbc.Driver的错误。
新建⼀个java项⽬,并在项⽬中新建⼀个存放jar 包的⽂件夹(如 lib),将mysql-connector-java-X.X.X-bin.jar 复制到⽂件夹中,选中jar包右击--->Build Path--->Add To Build Path,即可。若新建的是⼀个web项⽬,⽽放在WEB-INF下的lib⽂件夹中即可。
2. JDBC介绍
南京大屠杀时间JDBC是Sun公司制定的⼀个可以⽤Java语⾔连接数据库的技术。
2.1 JDBC基础知识
JDBC(Java Data Base 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可⽀持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很⼤的⿇烦
2.2 JDBC连接数据库的流程及其原理
1) 在开发环境中加载指定数据库的驱动程序。例如,接下来的实验中,使⽤的数据库是MySQL,所以需要去下载MySQL⽀持JDBC的驱动程序;⽽开发环境是MyEclipse,将下载得到的驱动程序加载进开发环境中(具体⽰例的时候会讲解如何加载)。
2) 在Java程序中加载驱动程序。在Java程序中,可以通过 “Class.forName(“指定数据库的驱动程序”)”
⽅式来加载添加到开发环境中的驱动程序,例如加载MySQL的数据驱动程序的代码为: Class.forName(“sql.jdbc.Driver”)
3) 创建数据连接对象:通过DriverManager类创建数据库连接对象Connection。DriverManager类作⽤于Java程序和JDBC驱动程序之间,⽤于检查所加载的驱动程序是否可以建⽴连接,然后通过它的getConnection⽅法,根据数据库的URL、⽤户名和密码,创建⼀个JDBC Connection 对象。如:Connection connection = Connection(“连接数据库的URL", "⽤户名", "密码”)。其中,URL=协议名+IP地址(域名)+端⼝+数据库名称;⽤户名和密码是指登录数据库时所使⽤的⽤户名和密码。具体⽰例创建MySQL的数据库连接代码如下:
复制代码代码如下:
Connection connectMySQL = Connection(“jdbc:mysql://localhost:3306/myuser","root" ,"root" );骆驼祥子读后感600
4) 创建Statement对象:Statement 类的主要是⽤于执⾏静态 SQL 语句并返回它所⽣成结果的对象。通过Connection 对象的
createStatement()⽅法可以创建⼀个Statement对象。例如:Statement statament = ateStatement(); 具体⽰例创建Statement对象代码如下:
复制代码代码如下:
Statement statamentMySQL =ateStatement();
另外,⼀般情况下都可以使⽤PreparedStatement来代码Statement,因数PreparedStatement可以防⽌SQL注⼊攻击,防⽌数据库缓冲池溢出,代码的可读性,可维护性。具体⽰例创建PreparedStatement代码如下:
复制代码代码如下:
String sql = "Select title, year_made from movies where year_made >= ? and year_made <= ?";
昆山电工PreparedStatement ps =connectMySQL.prepareStatement(sql);
5) 调⽤Statement对象的相关⽅法执⾏相对应的 SQL 语句:通过execuUpdate()⽅法⽤来数据的更新,包括插⼊和删除等操作,例如向staff表中插⼊⼀条数据的代码:
复制代码代码如下:
贷款利息'M', 'china','Personnel','3','3000' ) ") ;
若使⽤PreparedStatement,则:
prest.setInt(1,1980); //表⽰第1个参数为1980
prest.setInt(2,2004);
ResultSet rs = uteQuery();
通过调⽤Statement对象的executeQuery()⽅法进⾏数据的查询,⽽查询结果会得到 ResultSet对象,ResultSet表⽰执⾏查询数据库后返回的数据的集合,ResultSet对象具有可以指向当前数据⾏的指针。通过该对象的next()⽅法,使得指针指向下⼀⾏,然后将数据以列号或者字段名取出。如果当next()⽅法返回null,则表⽰下⼀⾏中没有数据存在。使⽤⽰例代码如下:
复制代码代码如下:
ResultSet resultSet = uteQuery( "select * from staff" );
6) 关闭数据库连接:使⽤完数据库或者不需要访问数据库时,通过Connection的close() ⽅法及时关闭数据连接。
3. 测试代码
配置好环境后,就可以写代码测试是否能连通啦!
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestMysqlConn {
public static void main(String[] args) {
Connection con;
Statement stmt;
ResultSet rs;
try {
Class.forName("sql.jdbc.Driver").newInstance();
//test为数据库名,_test为表名。_test表中有三个字段:id name description
con = Connection("jdbc:mysql://127.0.0.1:3306/test","root","root");
stmt = ateStatement();
rs = uteQuery("select * from _test");
()){
int num = rs.getInt("id");
String name = rs.getString("name");
String des = rs.getString("description");
System.out.println(num + " " + name + " " + des);
}
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("连接失败");
}
}个性的自我介绍
}珠海中考成绩查询
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论