国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java—在dbutils中處理事務與不確定條件的查詢(46)

2019-11-14 23:54:28
字體:
來源:轉載
供稿:網友
java—在dbutils中處理事務與不確定條件的查詢(46)

在dbutils中處理事務

事務是指用戶的一次操作。這一次操作有可能是一個表,也有可能是多個表,也有可能是對一個表的多次操作。

只要是:

1:對數據數據庫進行多次操作。

2:多個表,還是一個表的多次update,detelete,inset都應該開始一個事務。

如果僅做一次與數據庫的操作。即只執行一個sql語句,則可以不用開事務。

如果僅做select 則沒有必要開事務。

事務是指用戶的一次操作,這一次操作,只能有一個結果,要不然就全部成功,要不然就全部不成功。

如果需要在dbutils中管理事務。則用戶必須自己傳遞并控制connection。

@Test

public void tx1() throws Exception{

QueryRunner run = new QueryRunner(DataSourceUtils.getDatasSource());

Connection con =DataSourceUtils.getConn();

try{

String sql = "insert into users values('U008','AA','AA')";

//設置事務的開始標記

con.setAutoCommit(false);

run.update(con, sql);

String sql2 = "insert into users values('U009,'AA','AA')";

run.update(con,sql2);

//提交

con.commit();

}catch(Exception e){

System.err.

con.rollback();

}finally{

con.close();

}

}


不確定條件的查詢

以下是通過串字符串的方式實現查詢:

@Test

public void query1() throws Exception{

QueryRunner run = new QueryRunner(DataSourceUtils.getDatasSource());

Contact c = new Contact();

//c.setId("C001");

c.setName("王");

//c.setSex("1");

//c.setTel("123");

//c.setAddr("中國");

//c.setAge(88);

String sql = "select * from contacts where 1=1";

if(c.getId()!=null){

sql+=" and id='"+c.getId()+"'";

}

if(c.getSex()!=null){

sql = sql+" and sex='"+c.getSex()+"'";

}

if(c.getName()!=null){

sql+=" and name like '%"+c.getName()+"%'";

}

if(c.getAddr()!=null){

sql+=" and addr like '%"+c.getAddr()+"%'";

}

if(c.getTel()!=null){

sql+=" and tel like '%"+c.getTel()+"%'";

}

System.err.println(">>>>>>:"+sql);

List<Contact> cs = run.query(sql,new BeanListHandler<Contact>(Contact.class));

for(Contact cc:cs){

System.err.println(cc);

}

}

//不確定條件的查詢

@Test

public void query1() throws Exception{

QueryRunner run = new QueryRunner(DataSourceUtils.getDatasSource());

Contact c = new Contact();

//c.setId("C001");

c.setName("王'");

c.setSex("1");

c.setTel("123");

c.setAddr("中國");

c.setAge(55);

String sql = "select * from contacts where 1=1";

List<Object> params = new ArrayList<Object>();

if(c.getId()!=null){

sql+=" and id=?";

params.add(c.getId());

}

if(c.getSex()!=null){

sql = sql+" and sex=?";

params.add(c.getSex());

}

if(c.getName()!=null){

sql+=" and name like ?";

params.add("%"+c.getName()+"%");

}

if(c.getAddr()!=null){

sql+=" and addr like ?";

params.add("%"+c.getAddr()+"%");

}

if(c.getTel()!=null){

sql+=" and tel like ?";

params.add("%"+c.getTel()+"%");

}

if(c.getAge()!=null){

sql+=" and age=?";

params.add(c.getAge());

}

System.err.println(">>>>>>:"+sql);

System.err.println(params);

List<Contact> cs = run.query(sql,

new BeanListHandler<Contact>(Contact.class),

params.toArray());

for(Contact cc:cs){

System.err.println(cc);

}

}


匹配后面的所有and.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 布拖县| 衡山县| 普定县| 鄂伦春自治旗| 淮阳县| 商南县| 绥棱县| 镇康县| 长垣县| 鞍山市| 长葛市| 水富县| 桐城市| 铜川市| 隆尧县| 双鸭山市| 隆林| 定日县| 儋州市| 祁门县| 蛟河市| 锡林郭勒盟| 特克斯县| 芒康县| 额济纳旗| 小金县| 曲沃县| 鹤山市| 舟曲县| 天等县| 彭山县| 波密县| 呼图壁县| 元江| 图片| 兴业县| 潞城市| 申扎县| 和平县| 普格县| 桂平市|