目录
12.增加数据的Servlet类、Service类、dao类
闲的没事,用Servlet、jsp、JDBC、数据库写了登录、注册、增加、删除、修改、查询这些页面,我用了两个数据库来写,一个用来登录和注册,一个用来进行增加、删除、修改、查询,在进行增删改查这些操作之前,要进行登录和注册,登陆的时候要与数据库表格里面的数据相对应,登录错误时会弹出一个页面显示登录错误,点击返回重新登录,注册即为向数据库表格中添加数据。
一、创建数据库连接池
这里面的一些方法都是JDBC常用的方法:
1.Properties类里面的load方法:从输入流中读取属性列表。
2.Properties类里面的getProperty方法:在属性列表里面搜索括号里面的内容。
3.initialSize是创建的连接数量,maxActive是从池分配的最多连接数量,设置0为无限制
4.Class.forName是要求JVM查找或者加载指定的类。
import org.apache.commons.dbcp.BasicDataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class NewUtil {
private static String driver;
private static String url;
private static String username;
private static String password;
private static int initnum=3;
private static int maxNum=5;
private static BasicDataSource basicDataSource;//创建连接池
static{
basicDataSource=new BasicDataSource();
Properties p=new Properties();
InputStream is=NewUtil.class.getClassLoader().getResourceAsStream("emp.properties");
try {
p.load(is);//读取输入流
driver=p.getProperty("emp.driver");
url=p.getProperty("emp.url");
username=p.getProperty("emp.username");
password=p.getProperty("emp.password");
initnum=Integer.parseInt(p.getProperty("emp.initnum"));
maxNum=Integer.parseInt(p.getProperty("emp.maxNum"));
basicDataSource.setDriverClassName(driver);
basicDataSource.setUrl(url);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
basicDataSource.setInitialSize(initnum);
basicDataSource.setMaxActive(maxNum);
} catch (IOException e) {
e.printStackTrace();
}
}
//创建一个Connection为Servlet类做准备
public static Connection getConnection(){
Connection connection=null;
try {
Class.forName(driver);
connection= DriverManager.getConnection(url,username,password);
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
//写一个关闭Connection的方法
public static void close(Connection c){
if(c!=null){
try {
c.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
我们要用到两个数据库,所以我写了两个连接池
package com.buka.edu.util;
import org.apache.commons.dbcp.BasicDataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class B0351Util {
private static String driver;
private static String url;
private static String username;
private static String password;
private static int initnum =3 ;
private static int maxNum=5;
private static BasicDataSource basicDataSource;
static{
basicDataSource=new BasicDataSource();
Properties p=new Properties();
InputStream is=B0351Util.class.getClassLoader().getResourceAsStream("dept.properties");
try {
p.load(is);
driver=p.getProperty("dept.driver");
url=p.getProperty("dept.url");
username=p.getProperty("dept.username");
password=p.getProperty("dept.password");
initnum=Integer.parseInt(p.getProperty("dept.initnum"));
maxNum=Integer.parseInt(p.getProperty("dept.maxNum"));
basicDataSource.setDriverClassName(driver);
basicDataSource.setUrl(url);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
basicDataSource.setMaxActive(maxNum);
basicDataSource.setInitialSize(initnum);
} catch (IOException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection conn=null;
try {
Class.forName(driver);
conn= DriverManager.getConnection(url,username,password);
} catch (Exception e) {
e.printS