//首先创建数据库,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置数据源(odbc);
//然后再eclipse中创建类(ConnDb,Test,TestBean)ConnDb功能为连接数据库,查询,插入,删除,修改数据的类,Test为含有main方法的测试类,TestBean为数据表中的字段属性及set,get方法
//以下是ConnDb代码:
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class ConnDb {
public Connection startConn(Connection
conn){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn =
DriverManager.getConnection("jdbc:odbc:aaa",
"aaa",
"aaa");
} catch (Exception e) {
System.out.println("连接数据库时出现错误");
}
return conn;
}
public ArrayList executeQuery(String sql){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ArrayList list = new
ArrayList();
try {
conn =
startConn(conn);
stmt =
conn.createStatement();
rs =
stmt.executeQuery(sql);//sql为sql语句例如"select * from
表名",从main方法中传进来,这里用的是ArrayList 类将查询结果存储起来
while(rs.next()){
TestBean
tb = new TestBean();
tb.setTid(rs.getString("tid"));
tb.setTname(rs.getString("tname"));
tb.setTinfo(rs.getString("tinfo"));
list.add(tb);
}
} catch (SQLException e)
{
// TODO
Auto-generated catch block
e.printStackTrace();
}finally{
closeConn(rs,stmt,conn);
}
return list;
}
public void executeUpdate(String sql){
Connection conn = null;
Statement stmt = null;
try {
conn =
startConn(conn);
stmt =
conn.createStatement();
stmt.executeUpdate(sql);
} catch (SQLException e)
{
System.out.println("修改,插入或者删除数据库数据时发生错误!");
}finally{
closeConn(stmt,conn);
}
}
public void closeConn(ResultSet rs,Statement
stmt,Connection conn){
try {
if(rs !=
null){
rs.close();
}
if(stmt !=
null){
stmt.close();
}
if(conn !=
null){
conn.close();
}
} catch (SQLException e)
{
// TODO
Auto-generated catch block
System.out.println("关闭数据库的时候发生错误!");
}
}
public void closeConn(Statement stmt,Connection
conn){
try {
if(stmt !=
null){
stmt.close();
}
if(conn !=
null){
conn.close();
}
} catch (SQLException e)
{
// TODO
Auto-generated catch block
System.out.println("关闭数据库的时候发生错误!");
}
}
}
——————————————————————————————
//下面用CachedRowSetImpl 类,用这个类须要用到jdk1.5版本
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.sun.rowset.CachedRowSetImpl;
public class NewConnDb {
public Connection startConn(Connection
conn){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn =
DriverManager.getConnection("jdbc:odbc:aaa",
"aaa",
"aaa");
} catch (Exception e) {
System.out.println("连接数据库时出现错误");
}
return conn;
}
public CachedRowSetImpl executeQuery(String
sql){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
CachedRowSetImpl rowset =
null;//完全等同于ResultSet
try {
rowset = new
CachedRowSetImpl();
conn =
startConn(conn);
stmt =
conn.createStatement();
rs =
stmt.executeQuery(sql);
rowset.populate(rs);//将ResultSet的查询结果传递到rowset中
} catch (SQLException e)
{
// TODO
Auto-generated catch block
e.printStackTrace();
}finally{
closeConn(rs,stmt,conn);//ResultSet被关闭,但是rowset中依然保存数据
}
return rowset;
}
public void executeUpdate(String sql){
Connection conn = null;
Statement stmt = null;
try {
conn =
startConn(conn);
stmt =
conn.createStatement();
stmt.executeUpdate(sql);
} catch (SQLException e)
{
System.out.println("修改,插入或者删除数据库数据时发生错误!");
}finally{
closeConn(stmt,conn);
}
}
public void closeConn(ResultSet rs,Statement
stmt,Connection conn){
try {
if(rs !=
null){
rs.close();
}
if(stmt !=
null){
stmt.close();
}
if(conn !=
null){
conn.close();
}
} catch (SQLException e)
{
// TODO
Auto-generated catch block
System.out.println("关闭数据库的时候发生错误!");
}
}
public void closeConn(Statement stmt,Connection
conn){
try {
if(stmt !=
null){
stmt.close();
}
if(conn !=
null){
conn.close();
}
} catch (SQLException e)
{
// TODO
Auto-generated catch block
System.out.println("关闭数据库的时候发生错误!");
}
}
}
————————————————————————————
//下面写TestBean类有三个字段(属性,tid,tname,tinfo)
package db;
public class TestBean {
private String tid;
private String tname;
private String tinfo;
public String getTid() {
return tid;
}
public void setTid(String tid) {
this.tid = tid;
}
public String getTinfo() {
return tinfo;
}
public void setTinfo(String tinfo) {
this.tinfo = tinfo;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
}
————————————————————————
//然后写测试类Test
//先用ArrayList类的方法将查询的结果遍历出来
package db;
导入ArrayList类,自动导入(ctrl+shift+o)
public static void main(String [] args){
ConnDb
conn=new ConnDb(); //先实例化ConnDb的一个对象conn
ArrayList
list=new ArrayList();//实例化ArrayList类的一个对象list
conn.executeQuery("select *
from user");//调用executeQuery方法
for(Iterator
it=list.iterator;it.hasNext();){
User
u=(User)it.next(); //强制转换;
System.out.println(rs.getString("tid"));
System.out.println(rs.getString("tname"));
System.out.println(rs.getString("tinfo"));
}
}
——————————————————————————
//下面用CachedRowSetImpl 方法
package db;
import com.sun.rowset.CachedRowSetImpl;
public class Test {
public static void main(String[] args)throws
Exception{
NewConnDb conn = new
NewConnDb();
CachedRowSetImpl rowset =
conn.executeQuery("select tname from test");
while(rowset.next()){
System.out.println(rowset.getString("tname"));
}
rowset.close();
}
}