最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JDBC数据库编程

来源:动视网 责编:小采 时间:2020-11-09 14:14:48
文档

JDBC数据库编程

JDBC数据库编程:最近在自学MySQL数据库,同时将来职场上的开发语言为Java,所以就尝试在eclipse环境下写个小的事务处理的数据库程序。在这里谈谈Java MySQL数据库应用程序的开发。首先应该在本地机器上安装MySQL数据库,具体安装过程见新手上路中提供的链接;然后最好安装辅
推荐度:
导读JDBC数据库编程:最近在自学MySQL数据库,同时将来职场上的开发语言为Java,所以就尝试在eclipse环境下写个小的事务处理的数据库程序。在这里谈谈Java MySQL数据库应用程序的开发。首先应该在本地机器上安装MySQL数据库,具体安装过程见新手上路中提供的链接;然后最好安装辅


最近在自学MySQL数据库,同时将来职场上的开发语言为Java,所以就尝试在eclipse环境下写个小的事务处理的数据库程序。在这里谈谈Java MySQL数据库应用程序的开发。首先应该在本地机器上安装MySQL数据库,具体安装过程见新手上路中提供的链接;然后最好安装辅

最近在自学MySQL数据库,同时将来职场上的开发语言为Java,所以就尝试在eclipse环境下写个小的事务处理的数据库程序。在这里谈谈Java MySQL数据库应用程序的开发。首先应该在本地机器上安装MySQL数据库,具体安装过程见新手上路中提供的链接;然后最好安装辅助的可视化工具:HeidiSQL,具体过程见HeidiSQL文中提供的链接。然互就是MySQL JDBC驱动的安装了,在这里提供一个链接:MySQL JDBC驱动 。

按照上述的步骤,剩下的就是应用程序的编写,JDBC编程中相关流程是通用的,应该着重看看,在此我谈谈我的理解。

JDBC: Java database connection。JDBC是一组编程接口,数据库系统的底层开发者实现接口,Java开发者调用JDBC提供的接口进行与数据库的创建、链接、更新等操作。JDBC提供两种API,分别是面向开发人员的API和面向底层的JDBC驱动程序API,底层主要通过直接的JDBC驱动和JDBC-ODBC桥驱动实现与数据库的连接。
1)、加载数据库驱动程序;

Class.forName(driver)//此处driver指驱动的路径

2)、建立数据库连接;

Connection con = DriverManager.getConnection(url, user, password);//以特定的用户访问指定的数据库

3)、操作数据库,执行SQL语句;

4)、断开数据库连接。

下面转一段介绍, 完整java开发中JDBC连接数据库代码和步骤,在此表示感谢:

1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。
例如:

 try{ 
 //加载MySql的驱动类 
 Class.forName("com.mysql.jdbc.Driver") ; 
 }catch(ClassNotFoundException e){ 
 System.out.println("找不到驱动程序类 ,加载驱动失败!"); 
 e.printStackTrace() ; 
 } 
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
连接URL定义了连接数据库时的协议、子协议、数据源标识。书写形式:协议:子协议:数据源标识;协议:在JDBC中总是以jdbc开始;子协议:是桥连接的驱动程序或是数据库管理系统名称;数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
 jdbc:mysql: 
 //localhost:3306/test?useUnicode=true&characterEncoding=gbk ; 
 useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 
 gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 
3、创建数据库的连接
要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。使用DriverManager的getConnectin(String url,String username,String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root 
 String url = "jdbc:mysql://localhost:3306/test" ; 
 String username = "root" ; 
 String password = "root" ; 
 try{ 
 Connection con = 
 DriverManager.getConnection(url , username , password ) ; 
 }catch(SQLException se){ 
 System.out.println("数据库连接失败!"); 
 se.printStackTrace() ; 
 } 
4、创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
1)、执行静态SQL语句。通常通过Statement实例实现。
2)、执行动态SQL语句。通常通过PreparedStatement实例实现。
3)、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
 Statement stmt = con.createStatement() ; 
 PreparedStatement pstmt = con.prepareStatement(sql) ; 
 CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ; 
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
1)、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
2)、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3)、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
具体实现的代码:
 ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; 
 int rows = stmt.executeUpdate("INSERT INTO ...") ; 
 boolean flag = stmt.execute(String sql) ; 
6、处理结果
两种情况:
1)、执行更新返回的是本次操作影响到的记录数。
2)、执行查询返回的结果是一个ResultSet对象。
ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。使用结果集(ResultSet)对象的访问方法获取数据:
 while(rs.next()){ 
 String name = rs.getString("name") ; 
 String pass = rs.getString(1) ; // 此方法比较高效 
 } 
 (列是从左到右编号的,并且从列1开始) 
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
1)、关闭记录集
2)、关闭声明
3)、关闭连接对象-数据库
 if(rs != null){ // 关闭记录集 
 try{ 
 rs.close() ; 
 }catch(SQLException e){ 
 e.printStackTrace() ; 
 } 
 } 
 if(stmt != null){ // 关闭声明 
 try{ 
 stmt.close() ; 
 }catch(SQLException e){ 
 e.printStackTrace() ; 
 } 
 } 
 if(conn != null){ // 关闭连接对象 
 try{ 
 conn.close() ; 
 }catch(SQLException e){ 
 e.printStackTrace() ; 
 } 
 } 


上面那段文字介绍的挺好的,还有我自己也是初学,就直接转载了,在此表示感谢!下面贴上我的一段入门级代码,要毕业了,马上要工作了,想多接触一点工作上可能用得到的JDBC数据库开发,有没有时间写个很大的项目,所以就只是描述一下大致流程,见笑了!

import java.sql.*;

public class JDBCDemo {

	public static void main(String[] args) {
	String user = "root";
	String password = "199203211410xfcy";
	String url = "jdbc:mysql://localhost:3306/studentdb";//建立数据库服务器的地址
	String tableName = "student_information";
	String driver = "com.mysql.jdbc.Driver";
	String sqlSentence;
	Connection con = null;//连接对象
	Statement stmt = null;//操作对象
	ResultSet rs = null;//查询结果
	
	try {
	Class.forName(driver);//加载数据库驱动程序Driver类
	con = DriverManager.getConnection(url, user, password);//数据库连接,以特定的用户访问指定的数据库
	stmt = con.createStatement();

	sqlSentence = "insert into " + tableName + " values (9,'honey',21)";
	stmt.executeUpdate(sqlSentence);

	sqlSentence = "select * from " + tableName;
	rs = stmt.executeQuery(sqlSentence);

	ResultSetMetaData rsmd = rs.getMetaData();
	int j = 0;
	j = rsmd.getColumnCount();
	for (int k = 0; k < j; k++) {
	System.out.print(rsmd.getColumnName(k + 1));
	System.out.print("\t");
	}
	System.out.println();
	while (rs.next()) {
	for (int i = 0; i < j; i++) {
	System.out.print(rs.getString(i + 1));
	System.out.print("\t");
	}
	System.out.println();
	}
	} catch (ClassNotFoundException e1) {
	System.out.println("数据库驱动不存在!");
	System.out.println(e1.toString());
	} catch (SQLException e2) {
	System.out.println("数据库存在异常!");
	System.out.println(e2.toString());
	} finally {
	try {
	if (rs != null)
	rs.close();
	if (stmt != null)
	stmt.close();
	if (con != null)
	con.close();
	} catch (SQLException e) {
	System.out.println(e.toString());
	}
	}
	}
}
前提是要有一个studentdb的数据库,和一张属性一致的student_information表。

由于时间有限,在写博文的过程中参考过一些文献,在此表示感谢;同时鉴于水平原因,你难免有不足之处,欢迎斧正!

文档

JDBC数据库编程

JDBC数据库编程:最近在自学MySQL数据库,同时将来职场上的开发语言为Java,所以就尝试在eclipse环境下写个小的事务处理的数据库程序。在这里谈谈Java MySQL数据库应用程序的开发。首先应该在本地机器上安装MySQL数据库,具体安装过程见新手上路中提供的链接;然后最好安装辅
推荐度:
标签: 数据库 java 同时
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top