1.使用commons DButils组件对数据库进行查询。
首先使用数据源以及本组件进行数据库的连接,创建QueryRunner类型的对象。
使用数组,对sql语句中的占位符进行填充。
创建MapListHandler类型对象,用于装载每一条记录。
所有的记录都以List形式返回,使用代码中所示结果,对记录进行读取。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("Test AND I am so BORING!<br>");
request.setCharacterEncoding("utf-8");
Context context;
try {
context = new InitialContext();
DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
QueryRunner qr=new QueryRunner(ds);
// String sql="select * from users";
String sql="select * from users where id=? and name=?";
MapListHandler handler=new MapListHandler();
String [] param={"2","meng"};
// List list=(List)qr.query(sql,handler);
List list=(List)qr.query(sql,param,handler);
for(int i=0;i<list.size();i++){
Map map=(Map)list.get(i);
out.println(map.get("id"));
out.println(map.get("name"));
out.print("<br>");
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.flush();
out.close();
}
}
2.使用本组件对数据库进行数据管理。包括“增删改”。
最开始一样,对数据库进行连接,然后创建QueryRunner类型的对象,由于对数据的管理不返回一个结果集,所以只返回一个int类型的变量。
一样使用数组对sql语句中的占位符进行填充。
最后根据返回的值的大小(和0比),来确定是否成功执行本语句。
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("Test Again!");
String sql="insert into users values(?,?) ";
Context context;
try {
context = new InitialContext();
DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
QueryRunner qr=new QueryRunner(ds);
// MapListHandler handler=new MapListHandler();
String [] params={"3","Zhang"};
int i=qr.update(sql, params);
if(i>0)
{
out.println("成功!");
}
else
{
out.println("Failed!");
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
别外加:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
public class dbtest
{
infoBean bean = new infoBean();
BeanListHandler h = new BeanListHandler(bean.getClass());
Connection connect = null;
List result = new ArrayList();
try
{
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection(
"jdbc:mysql://localhost/normaltest", "root", "root");
QueryRunner run = new QueryRunner();
result = (ArrayList) run.query(connect,
"SELECT username,age,money,usertime FROM info", h);
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}