JDBC使用示例

来源:互联网 发布:silverlight mac 乱码 编辑:程序博客网 时间:2024/06/06 05:25
一、与数据库建立连接
要想和数据库建立连接,首先要导入必要的package:

CODE:
<%@ page import="java.sql.*"%>
通过jdbc-odbc桥连接SQL Server数据库:

CODE:
//加载jdbc-odbc驱动程序
class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//通过数据源连接:
String url ="jdbc:odbc:YourDSN";
String login = "sa";
String password ="";
Connection conn = DriverManager.getConnection(url,login,password);
//通过机器名或IP连接:
String url = "jdbc:odbc:Driver={SQL Server};Server=imagebear;uid=sa;pwd=;Database=jspdb";
//如果用IP只需将imagebear改为192.168.0.36即可
Connection conn = DriverManager.getConnection(url);
//如果url中不包含uid和pwd,也可写成:
Connection conn = DriverManager.getConnection(url,"sa","");
//如果是Access数据库只需将url改为:
String url = "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=c:/data/test.mdb";
二、检索结果集
与数据库建立连接以后,就可以查询数据库中的内容了

CODE:
//创建声明:
Statement stmt = conn.createStatement();
//创建结果集对象:
ResultSet rs = stmt.executeQuery("SELECT * FROM tbl_test");
//列出表中的内容:
While(rs.next())
{
    out.println(rs.getString(1)+ "&nbsp;&nbsp;&nbsp;&nbsp; "+rs.getString(2)+ "<br><br>");
}
//关闭ResultSet对象:
rs.close();
rs = null;
//关闭Statement对象:
stmt.close();
stmt = null;
下面这段代码列出了表tbl_test中两列的内容(测试通过):

CODE:
<%@ page import="java.sql.*"%>
<%
try
{
//下面的代码为加载JDBD-ODBC驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//建立连接
//String url="jdbc:odbc:test";
String url = "jdbc:odbc:Driver={SQL Server};Server=imagebear;uid=sa;pwd=;Database=jspdb";
//"test"是系统dsn名

Connection con=DriverManager.getConnection(url);

//然后创建一个JDBC声明
Statement stmt = con.createStatement();

//创建结果集
ResultSet rs = stmt.executeQuery("Select * from tbl_test");
//ResultSet rs = stmt.executeQuery("Insert into tbl_test Values(6, tangmaojian )");

while(rs.next())
{
    out.println(rs.getString(1)+"&nbsp;&nbsp;&nbsp;&nbsp;"+rs.getString(2)+"<br><br>");
}

//关闭ResultSet实例;
rs.close();
rs = null;
//关闭Statement实例;
stmt.close();
stmt = null;
三、更新数据库
对数据库进行更新操作包括修改、插入和删除记录、创建和删除表、以及增加和删除某列。对数据库更新操作也是在一个Statement对象上完成的,使用的是executeUpdate方法。(实验表明,executeQuery方法也可以用DELETE、,INSERT、UPDATE方法影响数据库,但它不返回结果集。为避免混乱,推荐使用executeUpdate方法。)
1、对表中记录的操作
同SELECT操作类似,executeUpdate方法的参数是一个String对象,即要执行的SQL语句。它返回的不是ResultSet对象,而是一个整数。对于UPDATE、INSERT和DELETE操作,这个整数是操作所影响的记录的行数。对于其它不返回值的SQL语句,executeUpdate方法的返回值为零。
下面这段代码对tbl_test表进行更新操作,并显示操作前和操作后的结果(测试通过):

CODE:
<%@ page import="java.sql.*"%>
<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:Driver={SQL Server};Server=192.168.0.36;uid=sa;pwd=;Database=jspdb";
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("Select * from tbl_test");
//显示更新操作前的tbl_test表
out.println("Result Before execute Update:<br>");
while(rs.next()){
    out.println(rs.getString(1)+"&nbsp;&nbsp;&nbsp;&nbsp;"+rs.getString(2)+"<br><br>");
}
//执行数据库更新操作:
stmt.executeUpdate("UPDATE tbl_test SET name= ying WHERE id=1");
stmt.executeUpdate("DELETE FROM tbl_test WHERE id=5");
stmt.executeUpdate("INSERT INTO tbl_test(id,name) VALUES(7, xpg )");
//显示更新后的tbl_test表
rs = stmt.executeQuery("SELECT * FROM tbl_test");
out.println("Result After execute Update:<br>");
while(rs.next()){
    out.println(rs.getString(1)+"&nbsp;&nbsp;&nbsp;&nbsp;"+rs.getString(2)+"<br><br>");
}
//关闭对象
rs.close();
stmt.close();
conn.close();
}
catch(Exception e)
{
}
%>
2、创建和删除表

CODE:
//创建一个表tbl_new,它有两列,列ID为Int,列Name为Varchar:
stmt.executeUpdate("CREATE TABLE tbl_new(ID INTEGER,Name VARCHAR(20))");
//删除表tbl_new:
stmt.executeUpdate("DROP TABLE tbl_new");
3、增加和删除表中的列
对一个表的列进行更新操作是使用SQL的ALTER TABLE语句。对列进行的更新操作将影响到列中的所有行。

CODE:
//在表tbl_new中增加一列tel,数据类型为字符串:
stmt.executeUpdate("ALTER TABLE tbl_new ADD COLUMN tel Varchar(50)");
//删除表中的一列:
stmt.executeUpdate(ALTER TABLE tbl_new DROP COLUMN tel);
原创粉丝点击