smbms项目搭建
声明
本文部分内容参考自其他作者原创文章,仅供个人学习留档,特此声明
参考文章链接
(3条消息) 狂神说smbms项目(完整)_TTiamo_的博客-CSDN博客_狂神smbms
smbms项目搭建
-
搭建一个模板maven webapp项目
-
配置Tomcat
-
测试项目能否运行起来
-
导入所依赖的jar包:
-
servlet 实现servlet接口
-
jsp jsp标签
-
mysql-connector-java java连接数据库
-
jstl jsp标签库
-
standard jsp标签库所依赖的包
-
-
搭建项目结构
-
编写实体类
ORM映射:表----->类
-
编写基本公共类
-
数据库配置文件
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf8&useSSL=false username=root password=xy680501*
-
编写数据库的公共类
import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties; //操作数据库的公共类 public class BaseDao { private static String driver; private static String url; private static String username; private static String password; //静态代码块在类加载的时候就初始化了 static { //通过类加载器去读取对应的资源 ClassLoader loader = BaseDao.class.getClassLoader(); InputStream is = loader.getResourceAsStream("db.properties"); Properties properties = new Properties(); try { properties.load(is); } catch (IOException e) { e.printStackTrace(); } driver = properties.getProperty("driver"); url = properties.getProperty("url"); username = properties.getProperty("username"); password = properties.getProperty("password"); } //获取数据库的连接 public static Connection getConnection(){ Connection connection = null; try { Class.forName(driver); connection = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return connection; } /* 预编译的sql,执行的时候不需要传sql */ //编写查询的公共类 public static ResultSet execute(Connection connection, String sql, Object[] param, PreparedStatement statement, ResultSet resultSet){ try { statement = connection.prepareStatement(sql); //setObject,占位符从1开始,但是数组的参数下标从0开始 for (int i = 0; i < param.length ; i++) { statement.setObject(i+1,param[i]);//数组0给占位符1,数组1给2...... } resultSet = statement.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return resultSet; } //编写增删改的公共类 public static int execeute(Connection connection,String sql,Object[] param,PreparedStatement statement){ int resultNum = 0; try { statement = connection.prepareStatement(sql); for (int i = 0; i < param.length ; i++) { statement.setObject(i+1,param[i]); } resultNum = statement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return resultNum; } //关闭资源的公共类 public static boolean close(Connection connection,PreparedStatement statement,ResultSet resultSet){ boolean flag = true; if (resultSet != null){ try { resultSet.close(); //垃圾回收的操作 resultSet = null; } catch (SQLException e) { e.printStackTrace(); //如果没有释放成功 flag = false; } } if (statement != null){ try { statement.close(); statement = null; } catch (SQLException e) { e.printStackTrace(); flag = false; } } if (connection != null){ try { connection.close(); connection = null; } catch (SQLException e) { e.printStackTrace(); flag = false; } } return flag; } }
-
编写字符编码过滤器
1.用于解决乱码的 CharacterEncodingFilter
import javax.servlet.*; import java.io.IOException; public class CharacterEncodingFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("utf-8"); servletResponse.setCharacterEncoding("utf-8"); filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { } }
2.注册
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>/*</filter-class> </filter>
-
-
导入静态资源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)