谢了一个JDBC的小例子供大家分享,可以直接与mysql连接使用的。其实所有的数据库操作都是一样的,差不多都是一个套路,下面就肤浅地剖析下吧!
JDBC vs ADO.NET:
1.加载SQL DRIVER,获得连接CONNECTION。
jdbc:
Class.forName("");
Connection conn=DriverManager.getConnection(url,username,pwd);
ado.net
SqlConnection conn = new SqlConnection("url,username,pwd")
2.执行SQL语句。
jdbc:
Statement对象,或PreparedStatement.
ado.net
sqlClient包中的相关类,如sqlDataAdapter、sqlCommand;
3.结果的保存。
jdbc:
ResultSet(理解为游标)
ado.net
DataSet(理解为本地脱离服务器的数据表集合)
下面则是以上两种形式的源代码,都经过测试,可以稍稍修改一下使用:
JDBC MYSQL:
/*
*Create on Jan 4, 2009
*Copyright 2009 Quasar20063501.All Rights reserved
*
*weizhaozhe
*/
package wzz.dataOperations;
import java.sql.*;
/**
* @author Quasar20063501
* @since Jan 4, 2009
* 这个类用来作为访问MYSQL中数据库的通用模板,可以再完成相关配置后直接使用!
*/
public class DataAccess {
private String connURL="jdbc:mysql://localhost:3306/meetingssharing_db";
private Connection conn=null;
private Statement smt=null;
private ResultSet rs=null;
/**
* 连接到数据库
*/
public void connectToDatabase(){
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException cnfe){
System.err.println("The Driver for mysql is not found!/n");
System.out.println("Please import the Driver of mysql!!!/n/n ");
cnfe.printStackTrace();
}
try{
conn=DriverManager.getConnection(connURL,"root","1988323");
}catch(SQLException sqle){
System.err.println("There is something wrong happened when conncecting to the database!/n");
System.out.println("Please check the the database!/n/n");
sqle.printStackTrace();
}
}
/**
* 通过statement对象执行查询操作
* @param sql
* @return
*/
public ResultSet excuteQuery(String sql){
try{
smt=conn.createStatement();
rs=smt.executeQuery(sql);
}catch(SQLException sqle){
System.err.println("There is something wrong happened when getting the statement!/n");
sqle.printStackTrace();
}
/**
* 调试过程中发现的小问题:
* if(rs==null){
* System.out.println("null!");
* }else{
* System.out.println("not null!");
* }
* 这段代码是不起作用的,并不能测试出ResultSet中是否有数据
* 因为rs是一个游标性质的对象的引用,决不能用NULL来判断,正
* 确写法应该是rs.next().用null判断时一定要谨慎思考啊!
*/
return rs;
}
/**
* 通过statement对象执行更新操作
* @param sql
* @return
*/
public int excuteNonQuery(String sql){
int count=0;
try{
smt=conn.createStatement();
count=smt.executeUpdate(sql);
}catch(SQLException sqle){
System.err.println("There is something wrong happened when getting the statement!/n");
sqle.printStackTrace();
}
return count;
}
/**
* 关闭数据库操作的相关资源
*/
public void releaseSources(){
try{
if(conn!=null){
conn.close();
}
if(smt!=null){
smt.close();
}
if(rs!=null){
rs.close();
}
}catch(SQLException sqle){
System.err.println("The system can't close the related sources!/n/n");
sqle.printStackTrace();
}
}
}
ADO.NET SQLSERVER:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// CONN 的摘要说明
/// </summary>
public class CONN
{
/// <summary>
/// 连接数据库的字符串
/// </summary>
string connStr = "";
#region 获得DataSet两个方法
public DataSet getDataSet(string sql)
{
DataSet ds = new DataSet();
connStr = ConfigurationManager.ConnectionStrings["stuDBConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
SqlDataAdapter adpt = new SqlDataAdapter(sql, conn);
adpt.Fill(ds);
conn.Close();
}
return ds;
}
public DataSet getDataSet(string sql,string tableName)
{
DataSet ds = new DataSet();
connStr = ConfigurationManager.ConnectionStrings["stuDBConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
SqlDataAdapter adpt = new SqlDataAdapter(sql, conn);
adpt.Fill(ds,tableName);
conn.Close();
}
return ds;
}
#endregion
#region 执行非查询的语句
public int executeDML(string sql)
{
int rows=0;
connStr = ConfigurationManager.ConnectionStrings["stuDBConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
SqlCommand cmd=new SqlCommand(sql,conn);
rows=cmd.ExecuteNonQuery();
conn.Close();
}
return rows;
}
#endregion
#region 执行查询语句
public SqlDataReader getDataReader(string sql)
{
SqlDataReader dr;
connStr = ConfigurationManager.ConnectionStrings["stuDBConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
SqlCommand cmd=new SqlCommand(sql,conn);
dr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
conn.Close();
}
return dr;
}
#endregion
}