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)