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

深圳网站制作必选祥奔科技网站页面分析作业

深圳网站制作必选祥奔科技,网站页面分析作业,网站建设功能定位怎么写,app开发价格表1. MyBatis 简介 MyBatis 是一款持久层框架,简化了 JDBC 的复杂操作,通过配置和映射文件将 Java 对象与数据库表关联。核心优势: 自动管理资源:无需手动关闭连接、释放资源。 动态 SQL:支持参数绑定、条件查询等。 …
1. MyBatis 简介

MyBatis 是一款持久层框架,简化了 JDBC 的复杂操作,通过配置和映射文件将 Java 对象与数据库表关联。核心优势:

  • 自动管理资源:无需手动关闭连接、释放资源。

  • 动态 SQL:支持参数绑定、条件查询等。

  • 灵活映射:支持结果集与 Java 对象的自动映射。

2. 快速入门
2.1 准备工作
  1. 创建 Spring Boot 工程,添加依赖:

<!-- MyBatis 依赖 -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId>
</dependency>

2.数据库表准备

CREATE TABLE `user_info` (`id` INT NOT NULL AUTO_INCREMENT,`username` VARCHAR(127) NOT NULL,`password` VARCHAR(127) NOT NULL,`age` TINYINT NOT NULL,`gender` TINYINT DEFAULT '0' COMMENT '1-男 2-女 0-默认',`phone` VARCHAR(15) DEFAULT NULL,`delete_flag` TINYINT DEFAULT '0' COMMENT '0-正常 1-删除',`create_time` DATETIME DEFAULT NOW(),`update_time` DATETIME DEFAULT NOW() ON UPDATE NOW(),PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3.实体类

@Data
public class UserInfo {private Integer id;private String username;private String password;private Integer age;private Integer gender;private String phone;private Integer deleteFlag;private Date createTime;private Date updateTime;
}
2.2 配置数据源

在 application.yml 中配置数据库连接:

spring:datasource:url: jdbc:mysql://localhost:3306/mybatis_test?useSSL=false&characterEncoding=utf8username: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver
3. 注解方式操作数据库
3.1 查询操作

Mapper 接口

@Mapper
public interface UserInfoMapper {@Select("SELECT username, password, age, gender, phone FROM user_info")List<UserInfo> queryAllUser();
}

测试类

@SpringBootTest
class UserInfoMapperTest {@Autowiredprivate UserInfoMapper userInfoMapper;@Testvoid queryAllUser() {List<UserInfo> userList = userInfoMapper.queryAllUser();System.out.println(userList);}
}
3.2 参数传递

使用 #{参数名} 动态传参:

@Select("SELECT * FROM user_info WHERE id = #{id}")
UserInfo queryById(Integer id);
3.3 插入操作

返回自增主键:

@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("INSERT INTO user_info (username, password) VALUES (#{username}, #{password})")
Integer insert(UserInfo userInfo);
4. XML 方式操作数据库
4.1 配置 XML 路径

在 application.yml 中指定 XML 文件位置:

mybatis:mapper-locations: classpath:mapper/*Mapper.xml
4.2 编写 XML 文件

UserInfoMapper.xml

<mapper namespace="com.example.mapper.UserInfoMapper"><select id="queryAllUser" resultType="UserInfo">SELECT * FROM user_info</select><insert id="insertUser" useGeneratedKeys="true" keyProperty="id">INSERT INTO user_info (username, password)VALUES (#{username}, #{password})</insert>
</mapper>
4.3 结果映射

解决字段名与属性名不一致问题:

<resultMap id="userMap" type="UserInfo"><id column="id" property="id"/><result column="delete_flag" property="deleteFlag"/><result column="create_time" property="createTime"/><result column="update_time" property="updateTime"/>
</resultMap>
5. 常见问题与解决方案
5.1 字段名映射
  1. 开启驼峰命名(推荐)

mybatis:configuration:map-underscore-to-camel-case: true

   2. 手动别名

SELECT delete_flag AS deleteFlag FROM user_info
5.2 #{} 与 ${} 的区别
  • #{}:预编译 SQL,防止 SQL 注入。

  • @Select("SELECT * FROM user_info WHERE username = #{name}")
    UserInfo queryByName(String name);

    ${}:直接拼接 SQL,适用于动态排序或表名:

@Select("SELECT * FROM user_info ORDER BY ${sortKey}")
List<UserInfo> queryBySort(@Param("sortKey") String sortKey);
5.3 模糊查询

使用 CONCAT 函数避免 SQL 注入:

@Select("SELECT * FROM user_info WHERE username LIKE CONCAT('%', #{key}, '%')")
List<UserInfo> queryByKeyword(String key);
6. 多表查询示例

实体类

@Data
public class ArticleInfo {private Integer id;private String title;private String content;private Integer userId;private String username; // 关联用户表字段
}

Mapper 接口

@Select("SELECT a.*, u.username FROM article_info a LEFT JOIN user_info u ON a.user_id = u.id WHERE a.id = #{id}")
ArticleInfo getArticleWithUser(Integer id);
7. 数据库连接池

Spring Boot 默认使用 Hikari,切换为 Druid

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.21</version>
</dependency>
8. 总结
  • 核心功能:MyBatis 通过注解或 XML 简化 SQL 操作,支持动态 SQL 和结果映射。

  • 最佳实践

    • 优先使用 #{} 防止 SQL 注入。

    • 开启驼峰命名简化字段映射。

    • 复杂 SQL 使用 XML 配置,简单操作使用注解。

  • 企业规范:表名小写下划线分隔,必备字段 idcreate_timeupdate_time


文章转载自:

http://NnjdrHTO.fhrgk.cn
http://qQW9zeWH.fhrgk.cn
http://4cVzBsSf.fhrgk.cn
http://D42HWFYs.fhrgk.cn
http://LhImyWF8.fhrgk.cn
http://1xFcvj9z.fhrgk.cn
http://zOslLZNq.fhrgk.cn
http://eM6dFZFm.fhrgk.cn
http://nTSJuXxc.fhrgk.cn
http://RuETiuoa.fhrgk.cn
http://cq2s6KDG.fhrgk.cn
http://gs3CcH43.fhrgk.cn
http://fWZtlE1H.fhrgk.cn
http://39VJH0yU.fhrgk.cn
http://3TLZyddb.fhrgk.cn
http://NGuVjaco.fhrgk.cn
http://KZKhvOGa.fhrgk.cn
http://7W0Dpb4d.fhrgk.cn
http://zDUxpe58.fhrgk.cn
http://8Bnn64mt.fhrgk.cn
http://cQfb8SPd.fhrgk.cn
http://XoveOyG5.fhrgk.cn
http://aLN1mrPp.fhrgk.cn
http://V71slZZo.fhrgk.cn
http://PZ4bBdHp.fhrgk.cn
http://eCmzy3CB.fhrgk.cn
http://daycXpO2.fhrgk.cn
http://g027o06V.fhrgk.cn
http://bOkLMlvz.fhrgk.cn
http://hjf19rzm.fhrgk.cn
http://www.dtcms.com/wzjs/624597.html

相关文章:

  • 漫画门户网站怎么做的百度seo公司整站优化
  • 富阳科技网站有哪些自己做网站要学前端和后端
  • 如何给网站做权重大连 网站
  • 组织建设一百年心得体会苏州搜索引擎优化
  • 企业网站怎么做排名diy网站建设源码
  • 网站建设课程设计报告浙江省建设厅建筑信息网官网
  • 网站建设个人网上银行济南seo整站外包
  • 站长统计app进入网址新版小猪腾讯企点聊天记录怎么恢复
  • 免费的编程自学网站百度商城
  • 云南省建设网站手机小说网站建设
  • iis 7.5 网站网站运营暂停
  • 网站建设栏目设置表格餐饮设计公司名字
  • 给企业做网站用什么程序注册境外服务公司
  • 宁波网站制作哪家优惠多wordpress 文章排名
  • 泉州市住房与城乡建设局网站重庆网站备案
  • 团购网站建设深圳网站设计的公司
  • 中学网上做试卷的网站一流 北京网站建设
  • 网站布局结构哪家公司建设网站
  • 中山网站建设中山怎么优化网站关键词排名
  • 建设信用卡在网站挂失块吗手机好看网站模板
  • 如何创作个人网站搜索关键词热度
  • 自适应网站欣赏wordpress无中断音乐插件
  • 大型php网站系统文山做网站的地方
  • 企业网站建设课件班级优化大师头像
  • 网站发语音功能如何做做最最优秀的视频网站
  • 推广网站制作软件项目管理工作内容
  • 自己有网站怎么推广网站的漂浮广告怎么做
  • 代做网站灰色关键词品牌建设运营规划
  • 成都市金堂县网站建设北太平庄做网站公司
  • 济南网站维护沈阳市城乡建设网站