工作中,经常会遇到将某个数据表的所有或大部份字段读取出来情况,比如说跨数据库进行表更新或插入等。假如字段名一个一个地敲的话,一是效率低,二是会有漏掉的情况。

JDBC


–创建存储过程
create procedure proc_stu
@sname varchar(20),
@pwd varchar(50),
@flag bit output
as
if exists(
select * from dt_manager m where m.user_name=@sname and
m.password=@pwd)
select @flag=1
else
select @flag=0
go

针对此种情况,处理的方法有很多种,比如新建一个视图,在里面录入SELECT *
FROM 表名,系统会自动将星号改成字段名(SQL SERVER 2005及以上版本)。

补充:Jabc相关类介绍

1.Connection类

a.用于代表数据库的链接,客户端与数据库所有交互都是通过connection对象完成的。
b.主要方法:
    createStatement():创建向数据库发送sql的statement对象。
    prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
    prepareCall(sql):创建执行存储过程的callableStatement对象。
    setAutoCommit(boolean autoCommit):设置事务是否自动提交。
    commit() :在链接上提交事务。
    rollback() :在此链接上回滚事务。

2.Statement类

a.Statement对象用于向数据库发送SQL语句。
b.主要方法:
    executeQuery(String sql) :用于向数据发送查询语句。
    executeUpdate(String sql):用于向数据库发送insert、update或delete语句
    execute(String sql):用于向数据库发送任意sql语句
    addBatch(String sql) :把多条sql语句放到一个批处理中。
    executeBatch():向数据库发送一批sql语句执行。

3.ResultSet类

a.ResultSet用于代表Sql语句的执行结果。
b.Resultset封装执行结果时,采用的类似于表格的方式。
c.ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
d.主要方法:
    获取任意类型的数据:
        getObject(int index)
        getObject(string columnName)
    获取指定类型的数据:
        getString(int index)
        getString(String columnName)
    对结果集进行回滚:
        next():移动到下一行
        Previous():移动到前一行
        absolute(int row):移动到指定行
        beforeFirst():移动resultSet的最前面。
        afterLast() :移动到resultSet的最后面。

–调用
DECLARE @return_value int

在这里,介绍另外一种方法,通过变理获取整个数据表的所有字段名,以PP_MO为例:

一、JAVA与Mysql连接

1.加载驱动程序:

Class.forName("com.jdbc.mysql.Driver");
(须导入jar包)

2.获得数据库连接:

Connection conn=DriverManager.getConnection(url,usr,pw);
//url:数据库链接
//user&password:数据库登录用户及密码

3.数据库操作:

//通过Connetion对象获得Statement对象
Statement stmt=conn.CreateStatment();
//通过Statement对象获得ResultSet对象
ResultSet rs1=stmt.excuteQquery("sql查询语句");
ResultSet rs2=stmt.excuteUpdate("sql改动语句");

补充: 一般多用PreparedStatement,预编译的,效率高,更清晰

EXEC proc_stu ‘admin’,’2′,@return_value output

发表评论

电子邮件地址不会被公开。 必填项已用*标注