当前位置: 首页 > news >正文

软件开发工具排行榜重庆seo整站优化效果

软件开发工具排行榜,重庆seo整站优化效果,外包网站都有哪些,app store怎么调回中文文章目录 一、 项目前期准备1.数据库准备2.导入依赖3.pojo包处理4.dao包处理5.service包处理6.controller包处理7.加密工具类的使用8.页面文件的导入 总结 一、 项目前期准备 1.数据库准备 创建schedule_system数据库并执行如下语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHE… 文章目录 一、 项目前期准备1.数据库准备2.导入依赖3.pojo包处理4.dao包处理5.service包处理6.controller包处理7.加密工具类的使用8.页面文件的导入 总结 一、 项目前期准备 1.数据库准备 创建schedule_system数据库并执行如下语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- ---------------------------- -- 创建日程表 -- ---------------------------- DROP TABLE IF EXISTS sys_schedule; CREATE TABLE sys_schedule (sid int NOT NULL AUTO_INCREMENT,uid int NULL DEFAULT NULL,title varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,completed int(1) NULL DEFAULT NULL,PRIMARY KEY (sid) USING BTREE ) ENGINE InnoDB AUTO_INCREMENT 1 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic; -- ---------------------------- -- 创建用户表 -- ---------------------------- DROP TABLE IF EXISTS sys_user; CREATE TABLE sys_user (uid int NOT NULL AUTO_INCREMENT,username varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,user_pwd varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,PRIMARY KEY (uid) USING BTREE,UNIQUE INDEX username(username) USING BTREE ) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic; -- ---------------------------- -- 插入用户数据 -- ---------------------------- INSERT INTO sys_user VALUES (1, zhangsan, e10adc3949ba59abbe56e057f20f883e); INSERT INTO sys_user VALUES (2, lisi, e10adc3949ba59abbe56e057f20f883e); SET FOREIGN_KEY_CHECKS 1;获得如下表格: 2.导入依赖 jar包位置 3.pojo包处理 在pojo包下创建实体类对象SysUser、SysSchedule实现序列化接口 使用lombok处理getter、setter、equals、hashcode 构造器 SysUser package com.fire.schedule.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;//TODO 使用lombok帮助我们生成getter、setter、equals、hashcode、全参构造、无参构造 AllArgsConstructor //添加了全参构造 NoArgsConstructor //添加了无参构造 Data //getter、setter、equals、hashcode、toString //TODO 创建实体类对象SysUser实现序列化接口 public class SysUser implements Serializable {private Integer uid;private String username;private String userPwd;} SysSchedule package com.fire.schedule.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;//TODO 使用lombok帮助我们生成getter、setter、equals、hashcode、全参构造、无参构造 AllArgsConstructor //添加了全参构造 NoArgsConstructor //添加了无参构造 Data //getter、setter、equals、hashcode、toString public class SysSchedule implements Serializable {private Integer sid;private Integer uid;private String title;private Integer completed;} 4.dao包处理 创建util包并在包下创建JDBCUtil连接池工具类 导入JDBCUtil连接池工具类并准备jdbc.properties配置文件 JDBCUtil package com.fire.schedule.util;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties;public class JDBCUtil {private static ThreadLocalConnection threadLocal new ThreadLocal();private static DataSource dataSource;// 初始化连接池static{// 可以帮助我们读取.properties配置文件Properties propertiesnew Properties();InputStream resourceAsStreamJDBCUtil.class.getClassLoader().getResourceAsStream(jdbc.properties);try {properties.load(resourceAsStream);dataSource DruidDataSourceFactory.createDataSource(properties); } catch (Exception e) {throw new RuntimeException(e);}}/*1 向外提供连接池的方法*/public static DataSource getDataSource(){return dataSource;}/*2 向外提供连接的方法*/public static Connection getConnection(){Connection connectionthreadLocal.get();if (nullconnection) {try {connection dataSource.getConnection();} catch (SQLException e) {throw new RuntimeException(e);}threadLocal.set(connection);}return connection;}/*定义一个归还连接的方法 (解除和ThreadLocal之间的关联关系) */public static void releaseConnection(){Connection connectionthreadLocal.get();if (null!connection) {threadLocal.remove();// 把连接设置回自动提交的连接try {connection.setAutoCommit(true);// 自动归还到连接池connection.close();} catch (SQLException e) {throw new RuntimeException(e);}}} }jdbc.properties配置文件 driverClassNamecom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/schedule_system usernameroot passwordroot在dao包下创建BaseDao对象并复制如下代码 package com.fire.schedule.dao;import com.fire.schedule.util.JDBCUtil;import java.lang.reflect.Field; import java.sql.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List;public class BaseDao {// 公共的查询方法返回的是单个对象public T T baseQueryObject(ClassT clazz, String sql, Object... args) { T t null;Connection connection JDBCUtil.getConnection();PreparedStatement preparedStatement null;ResultSet resultSet null;int rows 0;try {// 准备语句对象preparedStatement connection.prepareStatement(sql);// 设置语句上的参数for (int i 0; i args.length; i) {preparedStatement.setObject(i 1, args[i]);}// 执行查询resultSet preparedStatement.executeQuery();if (resultSet.next()) {t (T) resultSet.getObject(1);}} catch (Exception e) {e.printStackTrace();} finally {if (null ! resultSet) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (null ! preparedStatement) {try {preparedStatement.close();} catch (SQLException e) {e.printStackTrace();}}JDBCUtil.releaseConnection();}return t;}// 公共的查询方法返回的是对象的集合public T ListT baseQuery(Class clazz, String sql, Object... args) {ListT list new ArrayList();Connection connection JDBCUtil.getConnection();PreparedStatement preparedStatement null;ResultSet resultSet null;int rows 0;try {// 准备语句对象preparedStatement connection.prepareStatement(sql);// 设置语句上的参数for (int i 0; i args.length; i) {preparedStatement.setObject(i1,args[i]);}// 执行 查询resultSet preparedStatement.executeQuery();ResultSetMetaData metaData resultSet.getMetaData();int columnCount metaData.getColumnCount();// 将结果集通过反射封装成实体类对象while (resultSet.next()) {// 使用反射实例化对象Object obj clazz.getDeclaredConstructor().newInstance();for (int i 1; i columnCount; i) {String columnName metaData.getColumnLabel(i);Object value resultSet.getObject(columnName);// 处理datetime类型字段和java.util.Data转换问题if(value.getClass().equals(LocalDateTime.class)){value Timestamp.valueOf((LocalDateTime) value);}Field field clazz.getDeclaredField(columnName);field.setAccessible(true);field.set(obj,value);}list.add((T)obj);}} catch (Exception e) {e.printStackTrace();} finally {if (null !resultSet) {try {resultSet.close();} catch (SQLException e) {throw new RuntimeException(e);}}if (null ! preparedStatement) {try {preparedStatement.close();} catch (SQLException e) {throw new RuntimeException(e);}}JDBCUtil.releaseConnection();}return list;}// 通用的增删改方法public int baseUpdate(String sql,Object ... args) {// 获取连接Connection connection JDBCUtil.getConnection();PreparedStatement preparedStatementnull;int rows 0;try {// 准备语句对象preparedStatement connection.prepareStatement(sql);// 设置语句上的参数for (int i 0; i args.length; i) {preparedStatement.setObject(i1,args[i]);}// 执行 增删改 executeUpdaterows preparedStatement.executeUpdate();// 释放资源(可选)} catch (SQLException e) {e.printStackTrace();} finally {if (null ! preparedStatement) {try {preparedStatement.close();} catch (SQLException e) {throw new RuntimeException(e);}}JDBCUtil.releaseConnection();}// 返回的是影响数据库记录数return rows;} }创建dao层接口和所有实现类 接口SysUserDao、SysScheduleDao 实现类SysUserDaoImpl、SysScheduleDaoImpl 5.service包处理 创建dao层接口和所有实现类 接口SysUserService、SysScheduleService 实现类SysUserServiceImpl、SysScheduleServiceImpl 6.controller包处理 BaseController处理请求路径问题 package com.fire.schedule.controller;import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse;import java.io.IOException; import java.lang.reflect.Method;public class BaseController extends HttpServlet {Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String requestURI req.getRequestURI();String[] split requestURI.split(/);String methodName split[split.length-1];// 通过反射获取要执行的方法Class clazz this.getClass();try {Method methodclazz.getDeclaredMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);// 设置方法可以访问method.setAccessible(true);// 通过反射执行代码method.invoke(this,req,resp);} catch (Exception e) {e.printStackTrace();}}}多个处理器继承BaseController UserController package com.fire.schedule.controller; import jakarta.servlet.annotation.WebServlet; WebServlet(/user/*) public class UserController extends BaseController{ }SysScheduleController package com.fire.schedule.controller; import jakarta.servlet.annotation.WebServlet; WebServlet(/schedule/*) public class SysScheduleController extends BaseController{ }7.加密工具类的使用 导入MD5Util工具类 package com.fire.schedule.util;import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public final class MD5Util {public static String encrypt(String strSrc) {try {char hexChars[] { 0, 1, 2, 3, 4, 5, 6, 7, 8,9, a, b, c, d, e, f };byte[] bytes strSrc.getBytes();MessageDigest md MessageDigest.getInstance(MD5);md.update(bytes);bytes md.digest();int j bytes.length;char[] chars new char[j * 2];int k 0;for (int i 0; i bytes.length; i) {byte b bytes[i];chars[k] hexChars[b 4 0xf];chars[k] hexChars[b 0xf];}return new String(chars);} catch (NoSuchAlgorithmException e) {e.printStackTrace();throw new RuntimeException(MD5加密出错!!!);}} }8.页面文件的导入 将我们在日常管理1的html文件导入进来 日常管理1 总结 提示这里对文章进行总结 例如以上就是今天要讲的内容下节我们再来学习业务代码的开发处理
http://www.dnsts.com.cn/news/185327.html

相关文章:

  • 医药公司网站建设备案品牌网站设计视频教程
  • seo网站培训优化怎么做长沙做网站公司哪家
  • wordpress怎样创建门户网站模板网站 可以做推广吗
  • 什么网站可以做h5平面设计接单app
  • 网站开发实训设计报告泊头网站建设的有哪些
  • wordpress仿站上传到怎样做才能提升自己的网站
  • 代码错误网站汕头澄海网站建设
  • jsp做的网站可以用的搜索引擎排名google
  • 网站空间送域名网站建站公司多少钱
  • 建设安全协会网站wordpress子目录建站
  • 建筑搜索网站如何建设一个普通网页网站
  • 免费下载高清图片素材的网站网页制作软件大概需要多少钱
  • 百度站长工具seo综合查询杭州微信小程序外包
  • 条件查询 php网站源码网站建设质量保证
  • 巩义便宜网站建设费用在线做ppt模板下载网站
  • 网站后台如何更改秦皇岛网站制作报价
  • google 网站收录个人微信注册网站
  • 东莞网站建设 包装材料安县建设局网站
  • 博物馆文化网站建设上海健康证查询网址
  • asp网站建设 iis配置郑州电商网站开发
  • 高端网站建设公司成都淘宝网官方网站购物商城
  • 个人网站做商城会怎样揭阳做网站哪个好
  • 长宁区网站建设开小程序定制开发的公司
  • 昆山网站建设价格备用参考怎么建设自己的卡盟网站
  • 佛山网站建设邓先生小米网站建设书
  • 我不需要做网站led网站模板
  • 企业网站用免费程序中文com域名注册
  • 手表设计网站珠宝网络营销方式
  • 网站开发文本模版杭州建网站
  • 移动ui设计 网站贵州网站建设吧