正规网站备案代理,wordpress主页主题,wordpress 少儿,百度品牌广告多少钱JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术。 一、JDBC基础知识 JDBC#xff08;Java Data Base Connectivity,java数据库连接#xff09;是一种用于执行SQL语句的Java API#xff0c;能够为多种关系数据库提供统一訪问#xff0c;它由一组用Java语言… JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术。 一、JDBC基础知识 JDBCJava 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可支持多种数据库各种数据库之间的操作必有不同这就给更改数据源带来了非常大的麻烦 二、JDBC连接数据库的流程及其原理 1、在开发环境中载入指定数据库的驱动程序。比如接下来的实验中使用的数据库是MySQL所以须要去下载MySQL支持JDBC的驱动程序(最新的是mysql-connector-java-5.1.18-bin.jar)而开发环境是MyEclipse将下载得到的驱动程序载入进开发环境中(详细演示样例的时候会解说怎样载入)。 2、在Java程序中载入驱动程序。在Java程序中能够通过 “Class.forName(“指定数据库的驱动程序”)” 方式来载入加入到开发环境中的驱动程序比如载入MySQL的数据驱动程序的代码为 Class.forName(“com.mysql.jdbc.Driver”) 3、创建数据连接对象通过DriverManager类创建数据库连接对象Connection。DriverManager类作用于Java程序和JDBC驱动程序之间用于检查所载入的驱动程序能否够建立连接然后通过它的getConnection方法依据数据库的URL、username和password创建一个JDBC Connection 对象。如Connection connection DriverManager.geiConnection(“连接数据库的URL, username, password”)。当中URL协议名IP地址(域名)port数据库名称username和password是指登录数据库时所使用的username和password。详细演示样例创建MySQL的数据库连接代码例如以下 Connection connectMySQL DriverManager.geiConnection(“jdbc:mysql://localhost:3306/myuser,root ,root ); 4、创建Statement对象Statement 类的主要是用于运行静态 SQL 语句并返回它所生成结果的对象。通过Connection 对象的 createStatement()方法能够创建一个Statement对象。比如Statement statament connection.createStatement(); 详细演示样例创建Statement对象代码例如以下 Statement statamentMySQL connectMySQL.createStatement(); 5、调用Statement对象的相关方法运行相相应的 SQL 语句通过execuUpdate()方法用来数据的更新包含插入和删除等操作比如向staff表中插入一条数据的代码 statement.excuteUpdate( INSERT INTO staff(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 staff ); 6、关闭数据库连接使用完数据库或者不须要訪问数据库时通过Connection的close() 方法及时关闭数据连接。 三、JDBC应用演示样例实验 实验内容使用phpMyAdmin在MySQL中创建数据库myuser并加入实验所需的数据新建staff表加入一些记录编写Java程序利用JDBC连接在MySQL中创建好的数据库myuser对staff表格进行插入、更新、删除和查询等操作。 实验环境及开发工具Win7操作系统jdk1.6.0_26XAMPP1.7.7(MySQL 5.1 phpMyAdmin)MyEclipse 8.5 实验环境的搭建可參考我的博客 Java环境搭配http://blog.csdn.net/cxwen78/article/details/6400798windows系统XAMPP安装配置使用http://blog.csdn.net/cxwen78/article/details/6847927 实验过程及步骤 1、下载MySQL支持JDBC的驱动程序假设已经有了可跳过这一步。前往MySQL官网(http://www.mysql.com/products/connector/ )下载驱动程序,MySQL针对不同的平台提供了不同的连接器我们须要的是DBC Driver for MySQL (Connector/J)例如以下图所看到的点击 Download 跟着站点的引导进行下载。打开下载得到的压缩包mysql-connector-java-5.1.18.zip将当中的Java包mysql-connector-java-5.1.18-bin.jar拷贝到MySQL文件夹下(仅是为了方便才放到这里)以备载入驱动程序时使用。 2、创建数据库使用phpMyAdmin登录MySQL创建数据库myuser并在当中插入一个名为staff的表格。并加入一些数据操作步骤如图登录进去MySQL数据库后 1创建数据库名称为myuser编码为utf8_general_ci支持中文 2新建表格名称为staff表格有8个字段 38个字段的设置包含名称、类型、值的长度、初始值、编码等等(点击查看大图) 4加入成功后查看的staff表格情况 5往表格中插入一些实验所需数据须要插入两条一个是员工lucy的还有lili的 3、在MyEclips中创建项目并在项目中加入MySQL驱动程序创建的项目类型能够是Java项目或者是Java Web项目都能够。这里创建的是Web项目项目名称能够随便取我命名为“JavaWebChp07”。创建成功后将步骤1里下载得到的MySQL驱动程序包mysql-connector-java-5.1.18-bin.jar加入到project的Build path中加入过程如图所看到的 4、编写JDBC连接MySQL数据库的实例详细代码JDBC_Test.java 详细代码 pre namecode classjavapackage chp07;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class JDBC_Test {// 创建静态全局变量static Connection conn;static Statement st;public static void main(String[] args) {insert(); //插入加入记录update(); //更新记录数据delete(); //删除记录query(); //查询记录并显示}/* 插入数据记录并输出插入的数据记录数*/public static void insert() {conn getConnection(); // 首先要获取连接即连接到数据库try {String sql INSERT INTO staff(name, age, sex,address, depart, worklen,wage) VALUES (Tom1, 32, M, china,Personnel,3,3000); // 插入数据的sql语句st (Statement) conn.createStatement(); // 创建用于运行静态sql语句的Statement对象int count st.executeUpdate(sql); // 运行插入操作的sql语句并返回插入数据的个数System.out.println(向staff表中插入 count 条数据); //输出插入操作的处理结果conn.close(); //关闭数据库连接} catch (SQLException e) {System.out.println(插入数据失败 e.getMessage());}}/* 更新符合要求的记录并返回更新的记录数目*/public static void update() {conn getConnection(); //相同先要获取连接即连接到数据库try {String sql update staff set wage2200 where name lucy;// 更新数据的sql语句st (Statement) conn.createStatement(); //创建用于运行静态sql语句的Statement对象st属局部变量int count st.executeUpdate(sql);// 运行更新操作的sql语句返回更新数据的个数System.out.println(staff表中更新 count 条数据); //输出更新操作的处理结果conn.close(); //关闭数据库连接} catch (SQLException e) {System.out.println(更新数据失败);}}/* 查询数据库输出符合要求的记录的情况*/public static void query() {conn getConnection(); //相同先要获取连接即连接到数据库try {String sql select * from staff; // 查询数据的sql语句st (Statement) conn.createStatement(); //创建用于运行静态sql语句的Statement对象st属局部变量ResultSet rs st.executeQuery(sql); //运行sql查询语句返回查询数据的结果集System.out.println(最后的查询结果为);while (rs.next()) { // 推断是否还有下一个数据// 依据字段名获取对应的值String name rs.getString(name);int age rs.getInt(age);String sex rs.getString(sex);String address rs.getString(address);String depart rs.getString(depart);String worklen rs.getString(worklen);String wage rs.getString(wage);//输出查到的记录的各个字段的值System.out.println(name age sex address depart worklen wage);}conn.close(); //关闭数据库连接} catch (SQLException e) {System.out.println(查询数据失败);}}/* 删除符合要求的记录输出情况*/public static void delete() {conn getConnection(); //相同先要获取连接即连接到数据库try {String sql delete from staff where name lili;// 删除数据的sql语句st (Statement) conn.createStatement(); //创建用于运行静态sql语句的Statement对象st属局部变量int count st.executeUpdate(sql);// 运行sql删除语句返回删除数据的数量System.out.println(staff表中删除 count 条数据\n); //输出删除操作的处理结果conn.close(); //关闭数据库连接} catch (SQLException e) {System.out.println(删除数据失败);}}/* 获取数据库连接的函数*/public static Connection getConnection() {Connection con null; //创建用于连接数据库的Connection对象try {Class.forName(com.mysql.jdbc.Driver);// 载入Mysql数据驱动con DriverManager.getConnection(jdbc:mysql://localhost:3306/myuser, root, root);// 创建数据连接} catch (Exception e) {System.out.println(数据库连接失败 e.getMessage());}return con; //返回所建立的数据库连接}
}项目部署到server然后执行结果 http://www.5678520.com/kaiwangdian/130.html http://www.5678520.com/kaiwangdian/129.html http://www.5678520.com/kaiwangdian/128.html http://www.5678520.com/kaiwangdian/127.html http://www.5678520.com/kaiwangdian/126.html http://www.lianzhiwei.com/News/389/20122116.html http://www.lianzhiwei.com/News/389/20122115.html http://www.lianzhiwei.com/News/389/20122114.html http://www.lianzhiwei.com/News/389/20122113.html http://www.lianzhiwei.com/News/389/20122112.html 转载于:https://www.cnblogs.com/hrhguanli/p/4000364.html