原创作品,出自 “晓风残月xj” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj)。
由于各种原因,可能存在诸多不足,欢迎斧正!
最近在自学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类中。
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接 //连接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 Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句 ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、处理结果 while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
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表。
由于时间有限,在写博文的过程中参考过一些文献,在此表示感谢;同时鉴于水平原因,你难免有不足之处,欢迎斧正!