jsp中用servlet连接数据库

 我来答
百度网友5091af289
2012-06-04
知道答主
回答量:3
采纳率:0%
帮助的人:4793
展开全部
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import javax.imageio.stream.FileImageInputStream;

public class DBUtil {
private Connection conn;
private Statement stmt;
private PreparedStatement pps;
private ResultSet rs=null;
private String url="jdbc:oracle:thin:@localhost:1521:orcl";

static{
try {//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Connection getConnection(){
try {//获取连接
return DriverManager.getConnection(url,"username","password");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public int update(String sql){
int row=-1;
try {
conn=getConnection();

stmt=conn.createStatement();
row=stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return row;
}

public int update(String sql,Object ...obj){
//Object ...obj 动态数组 类型是Object,数组名为obj
int row=-1;
try {
conn=getConnection();
pps=conn.prepareStatement(sql);//预处理语句对象
for(int i=0;i<obj.length;i++){
if(obj[i] instanceof File){//将文件写入数据库
FileInputStream fis=new FileInputStream((File)obj[i]);
pps.setBinaryStream(i+1, fis, (int)((File)obj[i]).length());
continue;
}
pps.setObject(i+1, obj[i]);
}
row=pps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return row;
}

public List<Map<String,Object>> queryToList(String sql){
try {
conn=getConnection();
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
ResultSetMetaData rsmd=rs.getMetaData();//获取列的信息
List<Map<String,Object>> list=new LinkedList<Map<String,Object>>();
while(rs.next()){
Map<String,Object> map=new HashMap<String,Object>();
for(int i=1;i<=rsmd.getColumnCount();i++){
map.put(rsmd.getColumnName(i), rs.getObject(i));//把每列信息封装成map
}
list.add(map);//map列信息封装进list
}
return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return null;
}

public List<Map<String,Object>> queryToList(String sql,Object ...obj){
try {
conn=getConnection();
//stmt=conn.createStatement();
pps=conn.prepareStatement(sql);
for(int i=0;i<obj.length;i++){
pps.setObject(i+1, obj[i]);
}
rs=pps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();//获取列的信息
List<Map<String,Object>> list=new LinkedList<Map<String,Object>>();
while(rs.next()){
Map<String,Object> map=new HashMap<String,Object>();
for(int i=1;i<=rsmd.getColumnCount();i++){
map.put(rsmd.getColumnName(i), rs.getObject(i));//把每列信息封装成map
}
list.add(map);//map列信息封装进list
}
return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close();
}
return null;
}

public PageBean getPage(String sql,int pagesize,int pagenow){
PageBean pb=new PageBean();
pb.setPagesize(pagesize);
pb.setPagenow(pagenow);
pb.setRowstart((pagenow-1)*pagesize+1);
pb.setRowend(pb.getRowstart()+pagesize-1);
pb.setRowall(queryToList(sql).size());
pb.setPageall(pb.getRowall()%pagesize==0?pb.getRowall()/pagesize:pb.getRowall()/pagesize+1);
//sql="select * from (select rownum as rowindex,t.* from ("+sql+" and rownum<='"+pb.getRowend()+"') t) where rowindex>='"+pb.getRowstart()+"'";
sql="select * from (select t.*,rownum as rowindex from ("+sql+")t where rownum<="+pb.getRowend()+") where rowindex>="+pb.getRowstart();
pb.setList(queryToList(sql));
return pb;
}

private void close(){
try {
if(rs!=null)
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(pps!=null){
try {
pps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
if(stmt!=null)
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(conn!=null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最上面的是连接数据库的,下面的是方法的封装,用的时候直接定义一个对象调用方法就好了。当然别忘了下载驱动包
aaa6414138
推荐于2017-09-26
知道答主
回答量:23
采纳率:0%
帮助的人:11.4万
展开全部
import java.sql.*;

public class DBconn {
private Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;

// 创建数据库连接
private void getConnection() {
String DBURL = "com.mysql.jdbc.Driver";
String DBDRIVER = "jdbc:mysql://localhost:3306/数据库名字";
String DBROOT = "root";
String DBPWD = "root";
try {
Class.forName(DBURL);
conn = DriverManager.getConnection(DBDRIVER, DBROOT, DBPWD);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 定义增删改
public int exeADU(String sql) {
getConnection();
try {
stmt = conn.createStatement(); // 得到statement对象
int iRS = stmt.executeUpdate(sql);
return iRS;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return -1;
}

}

// 定义查询方法
public ResultSet exeQuery(String sql) {
getConnection();

try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
return rs;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}

}

// 关闭数据库连接
public void exeClose() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2015-12-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://"+host+"/"+dbname,username,password);
Statement Stmt=conn.createStatement();
ResultSet rs=Stmt.executeQuery(sql);
这是基本的数据库操作方法
大概流程就是加载驱动类,创建连接,执行数据库操作,关闭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦冷凝
2012-06-05 · TA获得超过1568个赞
知道小有建树答主
回答量:1703
采纳率:25%
帮助的人:738万
展开全部
没他嘛的区别。写上jdbc代码就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友45a8db1
2012-06-04
知道答主
回答量:37
采纳率:0%
帮助的人:21.4万
展开全部
你到底是想在jsp还是在servlet里面连接呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式