preparedstatement 與編譯

當(dāng)批量查詢及修改數(shù)據(jù)是,需要通過與編譯方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作渤愁,即通過perparedstatement對(duì)象進(jìn)行操作缰揪。
當(dāng)與編譯是SQL語句編寫方式如下:

select id,name,age from tablename whereid =?;
通過站位符代替具體內(nèi)容測(cè)試代碼如下:

//查詢函數(shù)
    public void PreSelect(userInfo user) throws SQLException{
        
        DBUtil data = new DBUtil();
        Connection DBconn = (Connection) data.getConnection();
        System.out.println(DBconn);
        String SQL = "select id, username, email from users where id >?";
        try{
            PreparedStatement prep = (PreparedStatement) DBconn.prepareStatement(SQL);
            prep.setInt(1,user.getId());
            System.out.println(prep);
            ResultSet res = prep.executeQuery();
            while(res.next()){
                int id = res.getInt(1);
                String username = res.getString(2);
                System.out.println("查詢內(nèi)容為:  "+id+" "+username);
                
            }
        }catch (SQLException e){
            e.printStackTrace();
        }
        DBconn.close();
    
    }

通過定義一個(gè)傳輸類可自定義傳輸參數(shù)眨业。
使用相同方法添加一條數(shù)據(jù)如下:

public void PreAdd() throws SQLException{
        
        try{
        DBUtil data = new DBUtil();
        Connection DBconn = (Connection) data.getConnection();
        //添加語句INSERT INTO `test`.`users` (`id`, `username`, `email`) VALUES ('10', 'add', 'add@test');
        String SQLadd = "INSERT INTO `test`.`users` (`id`, `username`, `email`) VALUES (?, ?, ?)";
        PreparedStatement prep = (PreparedStatement) DBconn.prepareStatement(SQLadd);
        prep.setInt(1,11);
        prep.setString(2, "addr");
        prep.setString(3, "addr@test");
        
        prep.executeLargeUpdate();
        
        System.out.println(prep);
        }catch (SQLException e){
            e.printStackTrace();
        }
        
    }
    public void PreAdd(userInfo user) throws SQLException{
        
        try{
        DBUtil data = new DBUtil();
        Connection DBconn = (Connection) data.getConnection();
        //添加語句INSERT INTO `test`.`users` (`id`, `username`, `email`) VALUES ('10', 'add', 'add@test');
        String SQLadd = "INSERT INTO `test`.`users` (`id`, `username`, `email`) VALUES (?, ?, ?)";
        PreparedStatement prep = (PreparedStatement) DBconn.prepareStatement(SQLadd);
        prep.setInt(1,user.getId());
        prep.setString(2, user.getUsername());
        prep.setString(3, user.getEmail());
        
        prep.executeLargeUpdate();
        
        System.out.println(prep);
        }catch (SQLException e){
            e.printStackTrace();
        }
        
    }

數(shù)據(jù)刪除方式如下

//刪除函數(shù)
    public void PreDel(userInfo user) throws SQLException{
        try{
        DBUtil data = new DBUtil();
        Connection DBconn = (Connection) data.getConnection();
        //刪除語句DELETE FROM `test`.`users` WHERE `id`='5';

        String SQL = "DELETE FROM `test`.`users` WHERE `id`=?";
        PreparedStatement prep = (PreparedStatement) DBconn.prepareStatement(SQL);
        prep.setInt(1, user.getId());
        prep.executeUpdate();
        }catch ( SQLException e){
            e.printStackTrace();
        }
    }       
'''
修改函數(shù)如下:

//修改函數(shù)
public void PreMod(userInfo user) throws SQLException{
try{
DBUtil data = new DBUtil();
Connection DBconn = (Connection) data.getConnection();
System.out.println("premod"+DBconn);
//修改語句UPDATE test.users SET username='9', email='9' WHERE id='6';
String sql = "UPDATE test.users SET username=?, email=? WHERE id=?";
PreparedStatement prep = (PreparedStatement) DBconn.prepareStatement(sql);
prep.setString(1, user.getUsername());
prep.setString(2, user.getEmail());
prep.setInt(3, user.getId());
System.out.println("修改語句"+prep);
prep.executeUpdate();
System.out.println(prep);
}catch (SQLException e){
e.printStackTrace();
}

}
整體測(cè)試函數(shù)如下:

//運(yùn)行測(cè)試函數(shù)
@Test
public void runtest() throws SQLException{

    userInfo use = new userInfo();
    use.setId(5);
    use.setUsername("sheng");
    use.setEmail("sheng@124.com");
    //添加函數(shù)測(cè)試
    //PreAdd(use);
    //刪除測(cè)試函數(shù)
    //PreDel(use);
    //查詢函數(shù)測(cè)試
    PreMod(use);
    PreSelect(use);

//

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市画株,隨后出現(xiàn)的幾起案子辆飘,更是在濱河造成了極大的恐慌,老刑警劉巖谓传,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜈项,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡续挟,警方通過查閱死者的電腦和手機(jī)紧卒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诗祸,“玉大人跑芳,你說我怎么就攤上這事≈甭” “怎么了博个?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)功偿。 經(jīng)常有香客問我盆佣,道長(zhǎng),這世上最難降的妖魔是什么脖含? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任罪塔,我火速辦了婚禮投蝉,結(jié)果婚禮上养葵,老公的妹妹穿的比我還像新娘。我一直安慰自己瘩缆,他們只是感情好关拒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般着绊。 火紅的嫁衣襯著肌膚如雪谐算。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天归露,我揣著相機(jī)與錄音洲脂,去河邊找鬼。 笑死剧包,一個(gè)胖子當(dāng)著我的面吹牛恐锦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疆液,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼一铅,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了堕油?” 一聲冷哼從身側(cè)響起潘飘,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掉缺,沒想到半個(gè)月后卜录,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡眶明,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年暴凑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赘来。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡现喳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出犬辰,到底是詐尸還是另有隱情嗦篱,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布幌缝,位于F島的核電站灸促,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涵卵。R本人自食惡果不足惜浴栽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轿偎。 院中可真熱鬧典鸡,春花似錦、人聲如沸坏晦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至球碉,卻和暖如春蜓斧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背睁冬。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工挎春, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人豆拨。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓搂蜓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親辽装。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帮碰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法拾积,內(nèi)部類的語法殉挽,繼承相關(guān)的語法,異常的語法拓巧,線程的語...
    子非魚_t_閱讀 31,624評(píng)論 18 399
  • 本節(jié)介紹Statement接口及其子類PreparedStatement和CallableStatement斯碌。 它...
    zlb閱讀 1,160評(píng)論 0 0
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,810評(píng)論 0 11
  • 本人的環(huán)境為Myeclipse10、MySQL5.7.15 本文包括:簡(jiǎn)介JDBC編程步驟打通數(shù)據(jù)庫(kù)程序詳解—Dr...
    廖少少閱讀 3,944評(píng)論 7 39
  • 很美的海肛度,但忽略我丑丑的臉(害羞) 天很藍(lán)傻唾,海很美 和李瑤興致勃勃地寫下來,不料一個(gè)浪打來承耿,全部沖刷干凈?? 小瑤...
    我叫YYQ閱讀 173評(píng)論 0 0