JavaCat项目系统进程第一天

JSP与JDBC实战
本文分享了在使用JSP和JDBC进行项目开发过程中的经验教训,特别是关于数据库连接时遇到的常见问题及解决方案。

   前一段一位我十分钦佩的学长告诉我说学java web在学完jsp和jdbc之后要尝试着做一个项目,趁着寒假时间多,做一个项目。解决一下学校体育理论考试系统的弊端。

没想到真的上手的时候确实遇到了很多这样那样坑的问题,现在总结如下。

1.jdbc链接数据库的时候老提示我语法错误,具体的片段代码如下:

这是正确的:

//教师查询语句
        String sqlT="select password from teacher where serialnumber=‘"+username+“’”;

这是错误的:
//教师查询语句
        String sqlT="select password from teacher where serialnumber="+username;

注意这个单引号一加的话,username就不是我想表达的一个String对象了,而是一个常量。


2.其他的就是杂七杂八的问题,就不谈了。

### MyBatis XML 与 MyBatis-Plus 简易 SQL 的使用场景对比 在实际开发中,选择使用 MyBatis 的 XML 配置或 MyBatis-Plus 的简易 SQL 需要根据具体的项目需求、团队技术水平以及业务复杂度来决定。以下是两者的使用场景对比: #### 1. **MyBatis XML 的适用场景** MyBatis 的 XML 配置方式适用于需要高度灵活性和复杂查询的场景。XML 文件允许开发者手动编写 SQL 语句,从而实现对数据库操作的精细控制。以下是一些具体场景: - **复杂查询**:当查询条件非常复杂,涉及多表联结、动态条件组合、分组统计等操作时,XML 配置可以提供更高的自由度[^1]。 - **高性能要求**:对于一些性能敏感的场景,开发者可以通过优化 SQL 语句(如索引使用、子查询优化等)来提升查询效率。 - **遗留系统迁移**:如果项目是从传统 MyBatis 迁移过来的,可能已经存在大量的 XML 配置文件,继续使用 XML 可以减少迁移成本。 - **定制化需求**:某些特殊业务逻辑无法通过框架自动生成的 SQL 实现时,XML 提供了完全的手动控制能力。 ```xml <!-- 示例:复杂的多表联结查询 --> <select id="findUserWithOrders" resultType="User"> SELECT u.*, o.order_id, o.status FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.status = #{status} AND o.status = #{orderStatus} </select> ``` #### 2. **MyBatis-Plus 简易 SQL 的适用场景** MyBatis-Plus 提供了丰富的 CRUD 操作支持和语法糖,适合快速开发和简化代码的场景。以下是其适用的具体场景: - **简单 CRUD 操作**:对于增删改查等基础操作,MyBatis-Plus 的内置方法可以直接调用,无需额外编写 SQL[^2]。 - **开发效率优先**:在敏捷开发或原型开发阶段,使用 MyBatis-Plus 可以显著提高开发速度,减少重复代码。 - **中小型项目**:对于功能相对简单、业务逻辑不复杂的项目,MyBatis-Plus 能够满足大部分需求。 - **团队技术门槛低**:如果团队成员对 SQL 编写不够熟悉,MyBatis-Plus 提供的流式 API 和链式调用可以让开发更加直观[^3]。 ```java // 示例:MyBatis-Plus 的简易查询 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", "active").ge("age", 18); List<User> users = userMapper.selectList(queryWrapper); ``` #### 3. **混合使用的场景** 在实际开发中,也可以结合使用 MyBatis XML 和 MyBatis-Plus 简易 SQL。例如: - 对于简单的业务逻辑,使用 MyBatis-Plus 快速实现。 - 对于复杂的查询需求,仍然可以通过 XML 文件进行配置。 - 在 MyBatis-Plus 的基础上扩展自定义 Mapper 方法,并在 XML 中定义对应的 SQL。 ```java // 自定义 Mapper 方法 public interface UserMapper extends BaseMapper<User> { @Select("SELECT * FROM users WHERE status = #{status}") List<User> findUsersByStatus(@Param("status") String status); } ``` #### 4. **日志调试与性能监控** 无论选择哪种方式,都需要关注 SQL 执行的日志输出以便调试和优化。MyBatis-Plus 提供了便捷的日志配置选项,可以通过 `yml` 文件设置[^4]。 ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值