javaweb

jdbc.properties

url=jdbc:mysql://localhost:3306/anli?characterEncoding=utf8&serverTimezone=UTC
user=root
password=root
driver=com.mysql.cj.jdbc.Driver

jdbcutil

public class  JdbcUtil {

    private static String url;
    private static String user;
    private static String password;
    private static String driver;

    //静态代码块
    static {
        //读取资源文件


        try {
            //1.创建Properties集合类
            Properties pro = new Properties();
//            //2.加载文件

            ClassLoader classLoader = JdbcUtil.class.getClassLoader();
            URL res = classLoader.getResource("jdbc.properties");
            String path = res.getPath();
            pro.load(new FileReader(path));

            //3.获取资源
            url = pro.getProperty("url");
            user = pro.getProperty("user");
            password = pro.getProperty("password");
            driver = pro.getProperty("driver");
            //4.注册驱动
            Class.forName(driver);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }


    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }

    public static void close(ResultSet re,Statement stmt, Connection conn) {
        if (re != null) {
            try {
                re.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }

}

BackstageDao

public class BackstageDao{
    public List<User> allProhibit(){
        //查询登录账号
        Connection conn = null;
        Statement stmt = null;
        ResultSet re = null;
        List<User> list = new ArrayList<>();
        User user = null;
        try {
            conn = JdbcUtil.getConnection();
//            String sql = "select * from user";
            String sql = "select * from user where failnum >= '3'";
            stmt = conn.createStatement();
            re = stmt.executeQuery(sql);
            while (re.next()){
                user = new User();
                user.setId(re.getInt(1));
                user.setUsername(re.getString(2));
                user.setPassword(re.getString(3));
                user.setLevel(re.getInt(4));
                user.setFailNum(re.getInt(5));
                user.setEmail(re.getString(6));
                list.add(user);
            }


        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(re,stmt,conn);
        }
        return list;
    }


    public void setFailnum0(String username){
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = JdbcUtil.getConnection();
            stmt = conn.createStatement();
            String sql = "update user set failnum = 0 where username = '"+username+"'";
            stmt.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(null,stmt,conn);
        }
    }

    public boolean isUsernameProhibit(String username){
        Connection conn = null;
        Statement stmt = null;
        ResultSet re = null;
        boolean is = false;
        try {
            conn = JdbcUtil.getConnection();
            stmt = conn.createStatement();
            String sql = "select * from user where username = '"+username+"'"+" and failnum >= 3";
            re = stmt.executeQuery(sql);
            is = re.next();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(re,stmt,conn);
        }
        return is;
    }
}

login

public class LoginDao {
    public User login(User loginuser){
        //查询登录账号
        Connection conn = null;
        Statement stmt = null;
        ResultSet re = null;
        User user = null;
        try {
            conn = JdbcUtil.getConnection();
//            String sql = "select * from user";
            String sql = "select * from user where username = '"+loginuser.getUsername()+"'";
            stmt = conn.createStatement();
            re = stmt.executeQuery(sql);
            if(!re.next()){
                return null;
            }
            user = new User();
            user.setId(re.getInt(1));
            user.setUsername(re.getString(2));
            user.setPassword(re.getString(3));
            user.setLevel(re.getInt(4));
            user.setFailNum(re.getInt(5));
            user.setEmail(re.getString(6));

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(re,stmt,conn);
        }
        return user;
    }

    public void setFailnum0(User user){
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = JdbcUtil.getConnection();
            stmt = conn.createStatement();
            String sql = "update user set failnum = 0 where username = '"+user.getUsername()+"'";
            stmt.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(null,stmt,conn);
        }
    }

    public void addFailnum(User user){
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = JdbcUtil.getConnection();
            stmt = conn.createStatement();
            int failnum = user.getFailNum()+1;
            String sql = "update user set failnum = "+failnum+" where username = '"+user.getUsername()+"'";
            int count = stmt.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(null,stmt,conn);
        }
    }
}

controller

@WebServlet("/registered")
public class RegisteredController extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String emailcode = req.getParameter("emailcode");
        String newemailcode = (String)req.getSession().getAttribute("emailcode");
        if(!newemailcode.equals(emailcode)){
            req.getSession().setAttribute("registerederror","邮箱验证码输入错误");
            resp.sendRedirect("registered.jsp");
            return ;
        }
        String username = req.getParameter("username");
        RegisteredDao registeredDao = new RegisteredDao();
        if("".equals(username)){
            req.getSession().setAttribute("registerederror","账号为空");
            resp.sendRedirect("registered.jsp");
            return ;
        }
        if(registeredDao.hasusername(username)) {
            req.getSession().setAttribute("registerederror","该账号已被注册");
            resp.sendRedirect("registered.jsp");
            return ;
        }
        String password1 = req.getParameter("password1");
        String password2 = req.getParameter("password2");
        if("".equals(password1)||"".equals(password2)) {
            req.getSession().setAttribute("registerederror","密码为空,请输入密码");
            resp.sendRedirect("registered.jsp");
            return ;
        }
        if(!password1.equals(password2)){
            req.getSession().setAttribute("registerederror","两次密码输入不一致");
            resp.sendRedirect("registered.jsp");
            return ;
        }
        String email = (String) req.getSession().getAttribute("registeredemail");
        registeredDao.addUser(username,password1,email);
        req.getSession().setAttribute("registeredsuccess","注册成功");
        req.getSession().removeAttribute("registeredemail");

        resp.sendRedirect("registered.jsp");
        req.getSession().removeAttribute("emailcode");
    }


}
内容概要:本文详细介绍了如何利用Simulink进行自动代码生成,在STM32平台上实现带57次谐波抑制功能的霍尔场定向控制(FOC)。首先,文章讲解了所需的软件环境准备,包括MATLAB/Simulink及其硬件支持包的安装。接着,阐述了构建永磁同步电机(PMSM)霍尔FOC控制模型的具体步骤,涵盖电机模型、坐标变换模块(如Clark和Park变换)、PI调节器、SVPWM模块以及用于抑制特定谐波的陷波器的设计。随后,描述了硬件目标配置、代码生成过程中的注意事项,以及生成后的C代码结构。此外,还讨论了霍尔传感器的位置估算、谐波补偿器的实现细节、ADC配置技巧、PWM死区时间和换相逻辑的优化。最后,分享了一些实用的工程集成经验,并推荐了几篇有助于深入了解相关技术和优化控制效果的研究论文。 适合人群:从事电机控制系统开发的技术人员,尤其是那些希望掌握基于Simulink的自动代码生成技术,以提高开发效率和控制精度的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机的应用场合,特别是在面对高次谐波干扰导致的电流波形失真问题时。通过采用文中提供的解决方案,可以显著改善系统的稳定性和性能,降低噪声水平,提升用户体验。 其他说明:文中不仅提供了详细的理论解释和技术指导,还包括了许多实践经验教训,如霍尔传感器处理、谐波抑制策略的选择、代码生成配置等方面的实际案例。这对于初学者来说是非常宝贵的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值