MyBatis练习之增删改查

详情见:D:\Develop\apache-maven-3.8.6-bin\repository\mybatis

mybatis使用步骤

  1.获取sqlSessonFactory对象           网上有那三句话

  2.获取sqlSesson对象    sqlSessonFactory.openSesson

  3.获取mapper      getMapper

  4.调用方法  

  5.释放资源  

1.首先配置pox.xml文件:添加依赖

<dependencies>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>

<!--junit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!-- 添加slf4j日志api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.20</version>
</dependency>
<!-- 添加logback-classic依赖 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 添加logback-core依赖 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>

 2.在resources下面配置一个mybatis-config.xml文件  连接数据库  并且加载一个mapper映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 加载sql映射文件-->
<!-- <mapper resource="mapper/UserMapper.xml"/>-->
<package name="mapper"/>
</mappers>
</configuration>

 3.数据库里面放入表
4.利用mapper代理开发
  注意:定义SQL映射文件的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
     设置SQL映射文件的namespace属性为Mapper接口的全限定名
     在mapper接口中定义方法,方法名就是SQL映射文件中sql的id,并保持参数类型和返回值一致
   如果Mapper接口名和SQL映射文件名相同,并在同一目录下,可以使用包扫描的方式,<packge name = "目录的位置";>
5.定义表的实体类,提供get/set方法和toString方法
6.设置mapper在同一级目录,因为在开发中需要分开,所以要么放在一起要么分开之后按照如下路径保存,需要在一起
7.开始写测试类
方法中的问题:
  查询全部方法:
数据库表的字段名称和实体类的名称不相符就不能自动封装
      1.
起别名 别名和实体类名字一样
      2.封装sql
        

      3.resultMap: type实体类的映射 那个需要就result哪个   还有一个id的方法 是弄主键的

        

  查看某一条记录的信息:参数占位符
    #{}会替换成 ?防止sql注入 参数传递的时候用
    ${}不会替换 会存在sql注入问题
  大于小于等特殊字符 转义字符 CDATA区 大写的CD 自动补充

条件查询:

  三种方式:

    

    

  注意:用户有可能不是全部输入这三个条件,所以需要进行更改sql语句     动态sql  语句

      if判断语句:

    

   有可能第一条数据没有所以后面的and就出错了  所以可以用     where后面加一个恒等式  1=1        或者用标签<where>

单条件查询:

  

添加语句:默认把提交事务给关闭了:

  可以把这里改成true 来修改默认的

    

  也可以在手动提交一下

    

主键返回添加:增加useGeneratedKeys="true"     和     keyProperty="id"(这里面写需要返回的)

  

修改数据:

  

动态多条删除数据:

  

  

注解方式:

  

posted @   皇天不负有心人  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示