California Tennessee 1921 ok 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

California Tennessee 1921 ok



Tennessee Tennessee 1920 ok

Washington Noth Carolina 1941 ok

Подготовленный запрос

Подготовка означает синтаксический анализ, оптимизацию и программирование запроса.

Подготовленный запрос передается ODBC.

Преимущество подготовленных запросов:

Уменьшение загрузки компьютера,

Повторное выполнение запроса.

Методы для подготовленного запроса

void setBoolean(int parameterIndex, boolean x)
void setByte(int parameterIndex, byte x)
void setDate(int parameterIndex, java.sql.Date x)
void setDouble(int parameterIndex, double x)
void setFloat(int parameterIndex, float x)
void setInt(int parameterIndex, int x)
void setLong(int parameterIndex, long x)
void setShort(int parameterIndex, short x)
void setTime(int parameterIndex, java.sql.Time x)

Prepared statement

String name,clas,bore,numGuns,displacement;

try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundException e1){};

try{Connection con=DriverManager.getConnection("jdbc:odbc:Ships","","");

PreparedStatement st=con.prepareStatement(

"SELECT Ships.name,Ships.clas,Classes.bore, Classes.numGuns,Classes.displacement "+

“FROM Ships,Classes "+

"WHERE (Ships.clas=Classes.clas) AND (Ships.launched >?)");

st.setString(1,"1920");

ResultSet res=st.executeQuery();

while(res.next()){

name = res.getString(1);clas = res.getString(2);

bore = res.getString(3);numGuns = res.getString(4);

displacement = res.getString(5);

System.out.println(name+"\t"+clas+"\t"+bore+"\t"+numGuns+"\t"+displacement); }

}catch(SQLException e){System.out.println("SQLException");}

Результат подготовленного запроса

California Tennessee 14 12 32000

Haruna Kongo 14 8 32000

Kirishma Kongo 14 8 32000

Musshi Yamato 18 9 65000

New Jersey Iowa 16 9 46000

Ramillies Revenge 15 8 29000

Wisconsin Iowa 16 9 46000

Yamato Yamato 18 9 65000

Обновление базы данных

String name,clas,bore,numGuns,displacement;

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundException e1){ System.out.println("ClassForNameException");};

try{

Connection con=DriverManager.getConnection("jdbc:odbc:Ships","","");

Statement st=con.createStatement();

int val=st.executeUpdate(

"UPDATE Ships

SET Ships.clas=ttt

WHERE Ships.launched=1944");

System.out.println("Updated"+val+"rows");

}catch(SQLException e){System.out.println("SQLException "+e.getSQLState());};

}

Получение результата из resultSet

ResultSet object is a Set of data, consists of rows and columns.

Methods getxxx() return the field.

Изоляция транзакций

Банковские счета

Транзакция – перевод денег

String name,clas,launched,result;

boolean ok,readonly;

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundException e1){};

try{Connection

con=DriverManager.getConnection("jdbc:odbc:Accounts","","");

Statement st=con.createStatement();

Trans c=new Trans();

C.purchasing(con,st)

}catch(SQLException e)

{System.out.println("SQLException"+e.getSQLState());}

}

Транзакция – перевод денег

Purchasing(Connection con,Statement st)

public void purchasing(Connection con,Statement st) { Инициализация bal1,bal2,amount;

// Найти баланс счета 12345

try{ ResultSet res=st.executeQuery(

"SELECT Accounts.balance "+

"FROM Accounts "+

"WHERE (Accounts.account=12345)");

while(res.next()){

bal1=res.getInt(1);

// Найти баланс счета 33333

res=st.executeQuery(

"SELECT Accounts.balance "+

"FROM Accounts "+

"WHERE (Accounts.account=33333)");

while(res.next()){ bal2=res.getInt(1);}

if(bal1>amount){bal1=bal1-amount;bal2=bal2+amount;

//перевод денег со одного счета на другой

val1=st.executeUpdate("UPDATE Accounts SET Accounts.balance="+bal1+" WHERE (Accounts.account=12345)");

val2=st.executeUpdate("UPDATE Accounts SET Accounts.balance="+bal2+" WHERE (Accounts.account=33333)");}

if(val1>0&&val2>0)con.commit();else con.rollback();

}catch(SQLException e){};}

Билеты на авиарейс

Транзакция – заказ билетов

String name,clas,launched,result;boolean conf=false;

boolean ok,readonly;

try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundException e1)

{System.out.println("ClassNotFoundException");};

try{Connection

con=DriverManager.getConnection("jdbc:odbc:Engage","","");

Statement st=con.createStatement();

Transaction c=new Transaction();

// con.setTransactionIsolation(1);

con.setReadOnly(true);

conf=c.bookSeat(con,st);

if(conf)con.commit();else con.rollback();

}catch(SQLException e)

{System.out.println("SQLException"+e.getSQLState());}

}

Транзакция – заказ билетов



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.77.98 (0.013 с.)