for (int i = 0; i < xqListsize(); i++) {
Test test = xqListget(i);
khDaosaveOrUpdate(test);
}
在DAO层有一段代码是这么写的,这样会造成程序特别的慢,要刷很多sql,请问这个该怎么优化好?
这段代码得主要问题是 在循环里与数据库交互,xqlist数据大约几十条,这样的话就与数据库交互几十次,所以非常影响性能,我希望各位给些意见,怎么能减少与数据库的交互
可以参考:
java连接Mysq数据库,以及增删查改
package aocis;
import javasql;
impor tjavaxswing;
/
@author acer
/
publicclassMysql {
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
publicMysql()
{
try{
//这里使用的是Mysql
ClassforName("orggjtmmmysqlDriver");//驱动,
con = DriverManagergetConnection("jdbc:mysql://127001:3306/scutcsuseUnicode=true&characterEncoding=gbk","root","123");//连接数据库,其中useUnicode=true&characterEncoding=gbk这句是解决mysql数据库插入中文的
stmt = concreateStatement();
}catch(ClassNotFoundException e)
{
JOptionPaneshowMessageDialog(null,"未加载jdbc驱动n"+etoString());
}catch(SQLException e){
JOptionPaneshowMessageDialog(null,"数据库语法错误n"+etoString());
}
}
publicvoidsearch(String s) //数据库查询
{
try
{
rs = stmtexecuteQuery(s);
}catch(SQLException e)
{
JOptionPaneshowMessageDialog(null,"执行查询语句出错n"+etoString());
}
}
publicintinsert(String s) //数据库插入
{
try{
returnstmtexecuteUpdate(s);
}catch(SQLException e){
JOptionPaneshowMessageDialog(null,"执行插入语句错误n"+etoString());
}
return-1;
}
publicintdelete(String s) //数据库删除
{
try{
returnstmtexecuteUpdate(s);
}catch(SQLException e){
JOptionPaneshowMessageDialog(null,"执行删除语句出错n"+etoString());
}
return-1;
}
publicintupdate(String s) //数据库更新
{
try{
inttemp=stmtexecuteUpdate(s);
returntemp;
}catch(SQLException e){
JOptionPaneshowMessageDialog(null,"执行修改语句出错n"+etoString());
}
return-1;
}
publicResultSet getResultSet() //返回查询结果集
{
returnrs;
}
publicvoidcloseConnection() //关闭连接
{
try{
stmtclose();
conclose();
}catch(SQLException e){
JOptionPaneshowMessageDialog(null,"关闭数据库连接时错误n"+etoString());
}
}
}
使用实例:
查询:
String sql="";
Mysql mysql = newMysql();//建立连接数据库类的对象,Mysql就是上边类名
sql+="select from login where stumber='"+jTextFieldUsergetText()+"' and spassword='"+jPasswordFieldgetText()+"'";//查询语句
mysqlsearch(sql);//调用函数
ResultSet rs = mysqlgetResultSet();//返回数据集
try
{
while(rsnext())//遍历
{
stumber=rsgetString(1);//在一条记录集中去除某个位置的值
}
}catch(SQLException ex)//异常处理{}
剩下的增加,删除,修改,它们三格式一样:
修改: sql = "update login set spassword ='"+ jPasswordFieldnewgetText() +"' where stumber = stumber";
intflag = mysqlupdate(sql);
判断如果flag大于0,那么就执行成功!
以上就是关于如何连接java程序和数据库全部的内容,包括:如何连接java程序和数据库、java多用户同时访问和数据库进行交互,如何能够高并发、JAVA如何优化DAO层与数据库交互的部分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)