MVC简介
MVC(ModelViewController)是一种软件设计模式,它将应用程序分为三个互相交互的部分:模型(Model)、视图(View)和控制器(Controller),这种设计模式有助于将业务逻辑、数据和用户界面分离,使得代码更加模块化、易于维护和扩展。
(图片来源网络,侵删)
Oracle简介
Oracle是一款关系型数据库管理系统,具有高性能、高可用性和高安全性等特点,在Web应用中,我们通常使用Oracle数据库来存储和管理数据。
从零开始MVC Oracle配置指南
1、环境准备
我们需要准备以下环境:
操作系统:Windows 7或更高版本、Linux或Unix
开发工具:Eclipse或IntelliJ IDEA
服务器:Tomcat 7或更高版本
数据库:Oracle 11g或更高版本
JDBC驱动:ojdbc6.jar(Oracle官方提供的JDBC驱动)
2、创建项目
在Eclipse或IntelliJ IDEA中创建一个Java Web项目,并添加以下依赖:
Servlet API
JSP API
JavaServer Pages Standard Tag Library(JSTL)
ojdbc6.jar(将ojdbc6.jar复制到项目的lib目录下)
3、配置web.xml
在项目的WEBINF目录下创建一个名为web.xml的文件,并添加以下内容:
<?xml version="1.0" encoding="UTF8"?>
<webapp xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/webapp_3_1.xsd"
version="3.1">
<servlet>
<servletname>MyServlet</servletname>
<servletclass>com.example.MyServlet</servletclass>
</servlet>
<servletmapping>
<servletname>MyServlet</servletname>
<urlpattern>/myServlet</urlpattern>
</servletmapping>
</webapp>
<servletclass>
标签的值为自定义的Servlet类名,我们将创建一个名为MyServlet的Servlet类。
4、创建数据库连接池
为了提高性能,我们可以使用数据库连接池来管理数据库连接,这里我们使用Apache Commons DBCP库来实现数据库连接池,将commonsdbcp1.4.jar和commonspool1.6.jar复制到项目的lib目录下,创建一个名为DBConnectionPool的类,并添加以下代码:
import org.apache.commons.dbcp2.BasicDataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class DBConnectionPool {
private static BasicDataSource dataSource = new BasicDataSource();
static {
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
dataSource.setUsername("username");
dataSource.setPassword("password");
dataSource.setInitialSize(5);
dataSource.setMaxTotal(10);
dataSource.setMinIdle(2);
dataSource.setMaxIdle(5);
}
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
}
5、创建实体类和DAO层接口及实现类
实体类用于表示数据库中的表结构,DAO层负责与数据库进行交互,创建一个名为User的实体类:
public class User {
private int id;
private String name;
private String email;
// getter和setter方法省略...
}
创建一个名为UserDao的接口:
import java.sql.*;
import java.util.List;
public interface UserDao {
List<User> findAll(); // 查询所有用户
User findById(int id); // 根据ID查询用户
void addUser(User user); // 添加用户
void updateUser(User user); // 更新用户信息
void deleteUser(int id); // 删除用户
}
接下来,创建一个名为UserDaoImpl的实现类:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDaoImpl implements UserDao {
private static final String SQL_FIND_ALL = "SELECT * FROM users"; // 查询所有用户的SQL语句,根据实际情况修改表名和字段名即可,其他SQL语句类似。 private static final String SQL_FIND_BY_ID = "SELECT * FROM users WHERE id = ?"; private static final String SQL_ADD_USER = "INSERT INTO users (name, email) VALUES (?, ?)"; private static final String SQL_UPDATE_USER = "UPDATE users SET name = ?, email = ? WHERE id = ?"; private static final String SQL_DELETE_USER = "DELETE FROM users WHERE id = ?"; // 获取数据库连接的方法 public List<User> findAll() { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; Users users = new Users(); try { connection = DBConnectionPool.getConnection(); preparedStatement = connection.prepareStatement(SQL_FIND_ALL); resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { User user = new User(); user.setId(resultSet.getInt("id")); user.setName(resultSet.getString("name")); user.setEmail(resultSet.getString("email")); users.add(user); } } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭资源 } return users; // 返回查询结果 } // 其他方法类似,省略... }```
评论(0)