连接池放了多个连接对象,通过连接池来管理多个对象,当用户对数据库进行操作的时候,在连接池拿一个空闲的连接给用户,进行数据的相应操作来访问数据库。
连接池由DataSource来管理
1、数据源用来连接数据库,获得连接(Connection)对象。
2、连接池用来管理连接(Connection)对象。
3、在程序中使用JNDI获取数据源。
<Resource name="jdbc/news" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root"
password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/newsmanagersystem?
useUnicode=true&characterEncoding=utf-8" />
放到Tomcat的conf/context.xml < Context > 内
name相当于给数据源起个逻辑名称可以随便取
auth相当于认证
type为数据源类型
maxActive指的是连接池里最大的数据库连接
maxIdle最大的空闲连接数
maxWait最大的等待时间
username数据库连接用户名
password数据库连接密码
driverClassName数据库驱动名字
url连的是mysql 3306端口的哪个数据库
且启动服务器才读取,由Tomcat容器管理
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
//通过数据源获取数据库连接
public boolean getConnection2(){
try {
//初始化上下文
Context cxt=new InitialContext();
//获取与逻辑名称相关联的数据源对象
DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/news");
//通过数据源获取数据库连接
connection=ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
第三方组件
commons-fileupload
commons-io
把这两个jar包导入项目
form表单提交方式要为post
加上enctype=”multipart/form-data”
input标签type要为file
//设置编码格式
request.setCharacterEncoding("UTF-8");
//上传的地址
String uploadPath = request.getSession().getServletContext()
.getRealPath("upload");
//解析请求之前先判断请求类型是否为文件上传类型
boolean flag = ServletFileUpload.isMultipartContent(request);
if (flag) {
FileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(fileItemFactory);
List<FileItem> list = fileUpload.parseRequest(request);
//转化为迭代器
Iterator<FileItem> iterator = list.iterator();
while (iterator.hasNext()) {
// 上传的数据
FileItem fileItem = iterator.next();
//是否是文件类型
if (fileItem.isFormField()) {
} else {
File saveFile = new File(fileItem.getName());
File uploadFile = new File(uploadPath,saveFile.getName());
fileItem.write(uploadFile);
}
}
} else {
out.print("上传不合法");
}