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

4399页游网站第二课强登陆网站新型智库建设的意见

4399页游网站,第二课强登陆网站新型智库建设的意见,网站上的广告位是怎么做的,专业做二手健身器材的是什么网站以下说明时会以独立的Mybatis工程作为案例,但说明时会解释结合SpringBoot时的情景; 一、MyBatis 核心组件 学习Mybatis首先一定要有一种意识,Mybatis的使用主要依靠配置文件进行功能,虽然如今进化出注解的模式,但是&a…

以下说明时会以独立的Mybatis工程作为案例,但说明时会解释结合SpringBoot时的情景;


一、MyBatis 核心组件

学习Mybatis首先一定要有一种意识,Mybatis的使用主要依靠配置文件进行功能,虽然如今进化出注解的模式,但是,对于复杂的SQL语句的执行依然依靠配置文件最简单,但也不需要害怕配置文件,学习Mybatis可以帮助我们克服Maven配置文件带来的恐惧:

  1. 依赖引入文件:无论是独立的Maven工程还是对接SpringBoot工程,Mybatis的依赖引入是必不可少的
  2. 配置文件mybatis-config.xml这个很好理解,就是关于链接的数据库的信息,密码啦!用户啦!
  3. 映射文件XxxMapper.xml核心配置文件,也是功能的体现,只是有些语法太过别扭,但其实就是按Mybatis他自己包装的sql语句写得语句;
  4. POJO 类:这也是Mybatis的优势之一,建立一个与数据库表对应的实体类,在接收数据库返回的数据时就会自动将字段中的数据给实体类中对应的变量;
  5. Mapper 接口:具体功能的体现,其实就是和映射文件的每一条Mysql语句进行对应的;
  6. SqlSessionFactory:创建 SqlSession 的核心对象;不重要,因为在和SpringBoot对接后就不需要了;

二、代码示例

关于依赖注入文件就不多说了,逻辑很简单,用啥就调啥
1. 创建 POJO 类
public class User {private Integer id;private String name;private String email;// 必须添加相应的geter和seter方法
}
2. 全局配置文件 mybatis-config.xml(整体核心配置文件)

其实它的功能更相当于总司令,使整个Mybatis项目的说明中心,包括数据库的信息和相关配置文件的信息;

当然他能掌控不仅仅只是单个数据库的信息,甚至可以进行多数据库连接的配置,这里面具有很多的配置属性都可以进行多次尝试;

<?xml version="1.0" encoding="UTF-8" ?>
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- 数据库的配置信息 --><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mydb"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><!-- 数据库操作的sql映射配置文件的声明文件 --><mapper resource="com/example/mapper/UserMapper.xml"/></mappers>
</configuration>
3. Mapper XML 映射文件 UserMapper.xml

一般放在SpringBoot项目中resource的文件夹里面,当然他的文件命名很有特点,他的文件命名必须要与mapper对应接口的地址相同;
但在springboot里面基本可以不使用这个配置文件;

<?xml version="1.0" encoding="UTF-8" ?>
<!-- namespace这个属性的数值必须是映射的Mapper接口的相对路径 -->
<mapper namespace="com.example.mapper.UserMapper"><!-- resultType里面放的是返回的实体类的相对路径 --><!-- id指得是这一条sql语句的唯一标识符 ,也是未来Mapper接口抽象方法的映射名字--><select id="selectUserById" resultType="com.example.pojo.User">SELECT * FROM users WHERE id = #{id}</select><insert id="insertUser" parameterType="com.example.pojo.User">INSERT INTO users(name, email) VALUES(#{name}, #{email})</insert>
</mapper>
4.Mapper 接口

为的是简化逻辑贴合java语法(但是感觉步骤没变少)将上述Mapper.XML文件的每一条SQL语句和接口的每一个抽象方法一一对应,以后再想使用Mapper.XML文件中的SQL语句直接调用接口就可以了,很方便,其实真正起作用的还是Mapper.XML文件中的代码,而Mapper接口对他的每一条语句进行了映射;

public interface UserMapper {// 以下抽象方法的名字必须和Mapper.XML文件中的id值一一对应;// 注意这个时候它的返回值就要和映射文件中的对应了User selectUserById(int id);void insertUser(User user);
}
5. 使用 MyBatis 执行操作(核心,如何去使用?)
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class Main {public static void main(String[] args) throws Exception {// 加载配置文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 创建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 获取 SqlSessiontry (SqlSession session = sqlSessionFactory.openSession()) {//以上代码在与springboot的对接中基本不需要考虑,大概的意思就是拿到//一个控制Mybatis的一个对象// 获取 Mapper 映射的接口对象UserMapper mapper = session.getMapper(UserMapper.class);// 执行查询User user = mapper.selectUserById(1);System.out.println(user.getName());// 执行插入User newUser = new User("John", "john@example.com");mapper.insertUser(newUser);session.commit(); // 提交事务}}
}

三、注解方式(替代 XML 映射)

public interface UserMapper {@Select("SELECT * FROM users WHERE id = #{id}")User selectUserById(int id);@Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})")@Options(useGeneratedKeys = true, keyProperty = "id")void insertUser(User user);
}

四、核心概念说明

  1. #{} 和 ${}
    • #{value}:预编译参数(防止 SQL 注入)
    • ${value}:直接拼接 SQL(慎用)
  1. 动态 SQL
<select id="findUsers" parameterType="map" resultType="User">SELECT * FROM users<where><if test="name != null">AND name = #{name}</if><if test="email != null">AND email = #{email}</if></where>
</select>
  1. 结果映射
<resultMap id="userResultMap" type="User"><id property="id" column="user_id"/><result property="name" column="user_name"/>
</resultMap>

通过以上结构即可快速上手 MyBatis,根据需求选择 XML 或注解方式配置 SQL 映射。

http://www.dtcms.com/a/516533.html

相关文章:

  • 企业网站模板下载网址东莞建网站哪家强
  • 北京住总第三开发建设有限公司网站广州万户网络技术有限公司招聘
  • gr00t机器人数据录制,通过遥操作的方式,操作isaacsim录制仿真数据的方法,HDF5格式秒变LeRobot标准数据集(数据采集一)
  • 织梦 网站公告陕西省住建厅网站官网
  • 23.C++11(四)
  • Leetcode 31
  • 手机 iOS 系统全解析,生态优势、开发机制与跨平台应用上架实践指南
  • 在线做动漫图的网站网站开发用什么技术asp
  • React Native 使用 react-native-credentials-manager 接入谷歌登录教程
  • 从零起步学习MySQL || 第七章:初识索引底层运用及性能优化(结合底层数据结构讲解)
  • CVPR2025 | OPS | 通过假设空间增强提升对抗迁移性
  • 自己做的网站怎么才能在百度上查找郑州定制网站推广工具产品
  • 如何从小白变成rust糕手
  • 注册一个网站多少钱?哪个网站可以免费建站
  • GCC与Makefile常用基础知识
  • 类装饰器
  • 什么网站可以直接做word如何在外管局网站做付汇延期
  • Dify从入门到精通 第22天 利用分支与判断构建智能路由客服机器人
  • 网站底备案号链接代码商丘建设厅网站首页
  • 【C++】手搓AVL树
  • 【完整源码+数据集+部署教程】【天线&其他】月球表面状况检测系统源码&数据集全套:改进yolo11-unireplknet
  • Flutter---弹窗
  • 从零开始学习RabbitMQ
  • 台州市住房和城乡建设局网站做美容美发学校网站公司
  • [答疑]考虑复用,尺度应该怎样把握
  • 注册网站借钱平台犯不犯法个人网站logo需要备案吗
  • 最新电大网站开发维护竞价托管推广代运营
  • 字符串统计
  • Docker与Tomcat:一键部署Java Web应用的完美组合
  • 【同步/异步 日志系统】 --- 前置技术