0
点赞
收藏
分享

微信扫一扫

2022年4月24号MyBatis总结.

唯米天空 2022-04-24 阅读 36
springjava

目录

4月21号MyBatis的入门程序和环境配置(第一课回顾)查询学生表的数量

第一步:导入MyBatis的框架的架包.

第二步将resources文件转换为资源文件。

第三步配置database.properties文件中的四个参数。

第四步配置mybatis-config.xml文件**

第五步建立包名为com.student.dao层在Mapper.xml文件中写下以下内容。

第六步建立测试类用于测试MyBatis程序是否成功。

第七步运行结果如下说明你的MyBatis程序配置成功。

4月22号在此基础上对MyBatis框架深入学习.对Mysql数据的增伤改查。MyBatis对数据操作的第一种方式。

重点内容:数据的增删改查的基础操作从易到难

1查询学生的所有名单

select * from student

2增加一条学生的名单。

  insert into student (name,sex,age,phone,address) values (#{name},#{sex},#{age},#{phone},#{address})

3查询书籍指定的id名

4查询作者为曹雪芹 价格为123 的书名

      select name from book where author=#{author} and price=#{price}

5查询作者为曹雪芹 价格为123 的书名

      select name from book where author=#{author} and price=#{price} 

6查书籍编号1 的书名 作者 价格.

7传一个参数查多个字段。

8修改数据信息。

9删除表中的一条数据

10查询多条数据

          select *from book   

11模糊查询 Spring这本书

           select *from book where name = #{name}    

4月23号在此基础上对MyBatis框架深入学习第二课。

A-1:mybatis-config配置五年级细节讲述。

第一个标签:configuration添加环境配置标签

第二个标签:properties。

    将database.properties文件加载至该主配置文件进行统一管理,将连接数据库的四个参数导入文件中    

第三个标签:environments:设置项目的运行环境。

第四个标签:environment包含在environments里面。

注意default标签上填写的内容必须要和id属性的内容一致。

第五个标签:transactionManager:配置操作数据库的事务管理器。

第六个标签:dataSource:配置数据库的四个参数。

第七个标签:mappers:将映射文件导入。

4月22号在此基础上对MyBatis框架深入学习.对Mysql数据的增伤改查。MyBatis对数据操作的第二种方式。MyBatis注解的方式。

C:\Users\MZFAITHDREAM\AppData\Roaming\Typora\typora-user-images截图图片路径。

第一步配置MyBatis的环境设置。

//数据库的连接池driver=com.mysql.cj.jdbc.Driver//数据库的地址url=jdbc:mysql://localhost:3306/mdb?useUnicode=true&characterEncoding=utf-8//数据库的姓名user=root//数据库的密码password=123456

第二步数据库实操。

1查询book表中的图书数量。

2查询书籍编号为10的书名

3查询所有的书籍信息

4查询书名为“人生的意义盒子”作者 价格 数量.

5查询书名的作者为三国价格为34

6查询多个参数查序多个字段.方法二。

7增加数据库的表名为book中一条记录

8修改数据库的表名为book中一条记录

9删除一条数据库的表名为book中的所有记录

10限制条件查询。

第一点:对数据操作的第三种方式。MyBatis接口加配置文件进行叙述.这种方案基于第一种方案和第二种方案的基础之上。回顾上面几次课的属性。

第二点接口的定义,接口如何定义的标准。

创建接口的三条标准:

定义方法的返回值的类型必须与映射文件 resultType属性数据类型一致

定义的方法名称一定要与执行sql语句的id属性中的名称一致

方法中的形参数对应映射文件中parameterType=""的参数内容

第三点案例实操。

1 查询书籍的数量。

2 转入一个参数 id 在控制台中 输出书名

3查询所有的学生信息

  4 将所有图书信息id降序排列小 desc从大到小排序。

5 增加

6 修改

7 删除

4月23号针对MyBatis数据的增删改查的的第四种方案不使用配置文件

回顾下面表格的属性。

//数据库的连接池driver=com.mysql.cj.jdbc.Driver//数据库的地址url=jdbc:mysql://localhost:3306/mdb?useUnicode=true&characterEncoding=utf-8//数据库的姓名user=root//数据库的密码password=123456

com.book.dao.IBookDo在这个接口中定义文件的增删改查。

1 查询书本的数量。

2增加一条数据库的语句内容。

@3修改数据信息。

4删除语句信息


4月21号MyBatis的入门程序和环境配置(第一课回顾)查询学生表的数量

第一步:导入MyBatis的框架的架包.

 

第二步将resources文件转换为资源文件。

 

第三步配置database.properties文件中的四个参数。

配置数据库的连接池:drivercom.mysql.cj.jdbc.Driver
数据库的地址:urlurl=jdbc:mysql://localhost:3306/mdb?useUnicode=true&characterEncoding=utf-8
数据库的姓名:userroot
数据库的的密码123456

##

namespacenamespace="com.book.dao"导入Mapper.xml文件包名
resourceresource="你要将Mapper.xml文件中"导入完整的路径
resultType="int"resultType="表示该sql语句执行结束后,得到的返回值的类型"
Mybatis的占位符MyBatis框架中使用的占位符#{字段名}等价于jdbc? ${字段名} 等价于java+连接符
parameterType该属性控制转入的数据的数据类型的数值

第四步配置mybatis-config.xml文件**

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--添加配置标签 <configuration>  -->
<configuration>
    <!--将database.properties文件加载至该主配置文件进行统一管理-->
    <properties resource="database.properties"></properties>
    <!--设置项目的运行环境-->
    <!--注意:default标签上填写的内容必须要和id属性的内容一致-->
    <environments default="development">
        <environment id="development">
            <!--配置操作数据库的事务管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"></property>
                <property name="username" value="${user}"></property>
                <property name="password" value="${password}"></property>
            </dataSource>
        </environment>
    </environments>
</configuration>
 <!--将映射文件导入到此文件中-->
    <mappers>
        <mapper resource="com/student/dao/Mapper.xml"></mapper>
        <!--<mapper resource="com.student.dao.IStudentTest"></mapper>-->
        <!--文件注册-->
    </mappers>

第五步建立包名为com.student.dao层在Mapper.xml文件中写下以下内容。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--查学生的总数量数量-->
<mapper namespace="com.student.dao.Mapper">
    <select id="getStudentNumber" resultType="int">
        select count(*) from student
    </select>
</mapper>

第六步建立测试类用于测试MyBatis程序是否成功。

package com.student.test;
​
import com.student.entity.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
​
import java.beans.Transient;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
​
public  class StudentTet1 {
    SqlSession ss = null;
​
    public void init() {
        //@1 将mybatis的主配置文件加载至java代码
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            //@2创建sql工厂`生成器
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //@3获得工厂对象
            SqlSessionFactory factory = builder.build(is);
            //@4通过工厂对象获得操作sql语句的对象
            ss = factory.openSession();
            //@5查询的结果是一个单个的数据
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
​
    /*查询学生数量*/
    @Test
    public void Number() {
        init();
        int i = ss.selectOne("com.student.dao.Mapper.getStudentNumber");
        System.out.println("查询到的学生总数量为第  :" + i + "本");
        System.out.println(ss);
 

第七步运行结果如下说明你的MyBatis程序配置成功。

 

4月22号在此基础上对MyBatis框架深入学习.对Mysql数据的增伤改查。MyBatis对数据操作的第一种方式。

重点内容:数据的增删改查的基础操作从易到难

<select id="getStudentNumber" resultType="int"> select count(*) from student</select>查询数据
<insert id="addStudent" parameterType="map">insert into student (name,sex,age,phone,address) values (#{name},#{sex},#{age},#{phone},#{address})</insert>增加数据
<delete id="deleteBook" parameterType="String">delete from student where id =#{id} </delete> 删除数据
<update id="updateStudent" parameterType="com.student.entity.Student"> update student set sex=#{sex},age=#{age}, address=#{address} where id=#{id}</update>修改数据

1查询学生的所有名单

 @Test
  public void select() {
   init();
        /*list跳调用Map集合*/
        List<Map<String, Object>> students =                        ss.selectList("com.student.dao.Mapper.selectStudent");
        students.forEach(map -> System.out.println(map));
​
    }

2增加一条学生的名单。

/*增加一条语句的内容*/
    @Test
    public void insert() {
        //Map集合的方式存放数据
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("name", "王五");
        map.put("sex", "男");
        map.put("age", "56");
        map.put("phone", "189675478");
        map.put("address", "江西南昌");
        int i = ss.insert("com.student.dao.Mapper.addStudent", map);
        ss.commit();
        if (i > 0) {
            System.out.println("增加成功");
        }
    }

3查询书籍指定的id名

<!--查询书籍-->
    <!--@1 MyBatis框架中使用的占位符#{字段名}等价于jdbc?        ${字段名} 等价于java+连接符-->
    <!--parameterType="int"  该属性控制转入的数据的数据类型的数值
-->
    <select id="getBookName" resultType="String" parameterType="int">
        select name from book where id=#{id}
    </select>
@Test
    public void two() {
        //将mybatis的主配置文件加载至java代码
        //查询的结果是一个单个的数据
        //命名空间+id的值
        init();
        /* String name=ss.selectOne("com.book.dao.getBookName",转入的数字类型);*/
        String name = ss.selectOne("com.book.dao.getBookName", 2);
        System.out.println("查询的书籍名称为:" + name);
    }

4查询作者为曹雪芹 价格为123 的书名

 @Test
    public void three() {
        /*封装到MaP集合数值名称与sql占位符保持一致*/
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("author", "曹雪芹");
        map.put("price", 123);
        String name = ss.selectOne("com.book.dao.getBookName1", map);
        System.out.println("查询的书籍名称为:" + name);
    }

5查询作者为曹雪芹 价格为123 的书名

 @Test
    public void three1() {
        /*封装到MaP集合数值名称与sql占位符保持一致*/
        init();
        //创建book实体类
        book book = new book();
        book.setAuthor("曹雪芹");
        book.setPrice(123);
        String name = ss.selectOne("com.book.dao.getBookName2", book);
        System.out.println("查询的书籍名称为:" + name);
    }

6查书籍编号1 的书名 作者 价格.

<!--传一个参数查多个字段数局-->
    <!--查书籍编号1 的书名 作者 价格-->
    <select id="getBookNameId" parameterType="int" resultType="Map" >
        select  name ,author,price from book where id=#{id}
    </select>
 @Test
    public void four() {
        /*封装到MaP集合数值名称与sql占位符保持一致*/
        init();
        Map<String, Object> map = ss.selectOne("com.book.dao.getBookNameId", 1);
        System.out.println(map);
    }

7传一个参数查多个字段。

<!--传一个参数查多个字段数端-->
    <select id="getBookNameId1" parameterType="int" resultType="com.book.entity.book" >
        select  name ,author,price,count from book where id=#{id}
    </select>
 /*封装到MaP集合数值名称与sql占位符保持一致*/
@Test
    public void four1() {
        /*封装到MaP集合数值名称与sql占位符保持一致*/
        init();
        //创建book实体类
        book book = new book();
        book = ss.selectOne("com.book.dao.getBookNameId1", 1);
        System.out.println(book);
    }
 

8修改数据信息。

<update id="updateBook" parameterType="com.book.entity.book">
        update book set price=#{price} where id=#{id}
    </update>
​
 @Test
    public void nine() {
        init();
        book book = new book();
        book.setPrice(134);
        book.setId(2);
        int i = ss.update("com.book.dao.updateBook", book);
        ss.commit();
        if (i > 0) {
            System.out.println("修改成功");
        }
    }

9删除表中的一条数据

<delete id="deleteBook" parameterType="String">
        delete from book where name =#{name}
    </delete>
​
@Test
    public void ten() {
        init();
        int i = ss.update("com.book.dao.deleteBook", "人生的意义");
        ss.commit();
        if (i > 0) {
            System.out.println("删除成功");
​
        }
    }

10查询多条数据

 /*查询多条数据*/
    @Test
    public  void six(){
        init();
        List<Map<String,Object>> books=ss.selectList("com.book.dao.selectAll");
        books.forEach(map-> System.out.println(map));
    }
​

11模糊查询 Spring这本书

  
/*查询为实体类*/
    @Test
    public  void seven(){
    init();
    //MYsQL数据库中的两种通符 % 多个字符 _: 一个字符
    List<Book> books=ss.selectList("com.book.dao.selectlike","%Sping%");
    System.out.println(books);
    books.forEach(book -> System.out.println(book));
}

4月23号在此基础上对MyBatis框架深入学习第二课。

A-1:mybatis-config配置五年级细节讲述。

第一个标签:configuration添加环境配置标签

第二个标签:properties。

第三个标签:environments:设置项目的运行环境。

第四个标签:environment包含在environments里面。

注意default标签上填写的内容必须要和id属性的内容一致。

第五个标签:transactionManager:配置操作数据库的事务管理器。

第六个标签:dataSource:配置数据库的四个参数。

第七个标签:mappers:将映射文件导入。

<!-- 注释的快捷方式: ctrl+shift+/ -->
<!--添加配置标签-->
<configuration>
    <!--将database.properties文件加载至该主配置文件进行统一管理-->
    <properties resource="database.properties"></properties>
    <!--设置项目的运行环境-->
    <!--注意:default标签上填写的内容必须要和id属性的内容一致-->
    <environments default="development">
        <environment id="development">
            <!--配置操作数据库的事务管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"></property>
                <property name="username" value="${user}"></property>
                <property name="password" value="${password}"></property>
            </dataSource>
        </environment>
    </environments>
​
    <!--将映射文件导入-->
    <mappers>
        <mapper resource="com/book/dao/Mapper.xml"></mapper>
    </mappers>
​
</configuration>

4月22号在此基础上对MyBatis框架深入学习.对Mysql数据的增伤改查。MyBatis对数据操作的第二种方式。MyBatis注解的方式。

C:\Users\MZFAITHDREAM\AppData\Roaming\Typora\typora-user-images截图图片路径。

第一步配置MyBatis的环境设置。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--添加配置标签 <configuration>  -->
<configuration>
    <!--将database.properties文件加载至该主配置文件进行统一管理-->
    <properties resource="database.properties"></properties>
    <!--设置项目的运行环境-->
    <!--注意:default标签上填写的内容必须要和id属性的内容一致-->
    <environments default="development">
        <environment id="development">
            <!--配置操作数据库的事务管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"></property>
                <property name="username" value="${user}"></property>
                <property name="password" value="${password}"></property>
            </dataSource>
        </environment>
    </environments>

    <!--将映射文件导入到此文件中-->
    <mappers>
        <mapper class="com.book.dao.IBookDo"></mapper>
    </mappers>

</configuration>

第二步数据库实操。

1查询book表中的图书数量。

public interface IBookDo {
    //查询book表中的图书数量
    @Select("   select count(*) from book")
    //对应的方法名称
    int getCount();
}
//注意这是接口文件哦
public SqlSession ss = null;
    public IBookDo dao = null;

    public void init() {
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//    SqlSessionFactoryBuilder().build(is).openSession()
            ss = new SqlSessionFactoryBuilder().build(is).openSession();
            dao = ss.getMapper(IBookDo.class);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

//定义init方法

2查询书籍编号为10的书名

//查询书籍编号为2的书名  @param
    //转入参数的时候需要增加@Param注解 该注解中的设置的变量名需要的变量名和占位符一致
    @Select("select name from book where id=#{id}")
    String getNameId(@Param("id") int id);


    @Test
    public void two() {
        init();
        String nameId = dao.getNameId(11);
​
        System.out.println(nameId);
    }

3查询所有的书籍信息

//查询所有数据  返回值   List<Map<String, Object>>   List<Map<Book book>>
    @Select(" select *from book")
    List<Map<String, Object>> selectAll();
 //查询所有的书籍信息
    @Test
    public void tree() {
        init();
        List<Map<String, Object>> books = dao.selectAll();
        books.forEach(map -> System.out.println(map));
    }

4查询书名为“人生的意义盒子”作者 价格 数量.

// \查询书名为“人生的意义盒子”作者 价格 数量
    @Select("select author,price,count,from book where name=#{name}")
    Map<String, Object> getBook(@Param("name") String name);
 

5查询书名的作者为三国价格为34

 //查询多个参数查序多个字段
    @Select(" select name,id,count from book where author=#{author} and price=#{price}")
    Map<String, Object> getBookInfo(@Param("author") String author, @Param("price") int price);
 @Test
    public void four() {
        init();
        Map<String, Object> map = dao.getBookInfo("小明", 34);
        System.out.println(map);
        System.out.println("输出结果为空");
​
    }
   

6查询多个参数查序多个字段.方法二。

@Select(" select id,name,count from book where author=#{author} and price=#{price}")
    Map<String, Object> getBookInfo1(Map<String, Object> map);
 @Test
    public void four1() {
        init();
        Map<String, Object> m = new HashMap<>();
        m.put("author", "小明");
        m.put("price", 34);
        Map<String, Object> map = dao.getBookInfo1(m);
        System.out.println(map);
​
    }
 

7增加数据库的表名为book中一条记录

//<!--将所有图书信息id降序排列 desc从大到小  升序 asc-->
    //@Select("select *from book order by id desc")
    //增加语句
    @Insert("insert into book(name,author,price,count) values (#{name},#{author},#{price},#{count})")
    int addBook(Book book);
  @Test
    public void six() {
        init();
// @Insert("insert into book(id,name,author) values (#{id},#{name},#{author})")
        Book book = new Book(0, "我的世界", "《java》", 23, 45);
        int i = dao.addBook(book);
        ss.commit();
        if (i > 0) {
            System.out.println("增加成功");
        }else {
            System.out.println("增加数据没有成功");
        }
    }
 

8修改数据库的表名为book中一条记录

//修改语句
   // 2 利用mysql修改语句<update>   id   parameterType   resultType  -->
    @Update("update book set price=#{price},count=#{count} where id=#{id}")
    int updateBook(Map<String, Object> map);
​
  @Test
    public void seven() {
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("id", 15);
        map.put("price", 20);
        map.put("count", 1200);
        int i = dao.updateBook(map);
        ss.commit();
        if (i > 0) {
            System.out.println("数据修改成功");
        }else{
            System.out.println("数据修改失败");
        }
    }

9删除一条数据库的表名为book中的所有记录

//删除一条语句
    //@3利用mysql删除语句<delete>   id   parameterType   resultType
    @Delete("delete from book ")
    int deleteAll();
​
  //    数据删除成功
    @Test
    public void eight() {
        init();
        int i = dao.deleteAll();
        ss.commit();
        if (i > 0) {
            System.out.println("数据删除成功");
        } else {
            System.out.println("数据删除失败");
        }
​
​
    }

10限制条件查询。

@Select("select * from book limit #{start},#{count}")
    List<Map<String,Object>> getBooktLimit(@Param("start")int start,@Param("count")int count);
java
  @Test
    public void  nine(){
//        查询数量的限制
        init();
        List<Map<String, Object>> studentLimit = dao.getBooktLimit(2, 4);
        studentLimit.forEach(map-> System.out.println(map));
    }
  @Select("select * from book where count>#{count}")
    List<Map<String,Object>> getBookList(@Param("count") int count);
 @Test
    public void five(){
        init();
        List<Map<String, Object>> studentList = dao.getBookList(67);
        studentList.forEach(map-> System.out.println(map));
        System.out.println("选择数量>67的所有数据类型");
    }
4月23号在此基础上对MyBatis框架深入学习.对Mysql数据的增伤改查。

第一点:对数据操作的第三种方式。MyBatis接口加配置文件进行叙述.这种方案基于第一种方案和第二种方案的基础之上。回顾上面几次课的属性。

namespacenamespace="com.book.dao"导入Mapper.xml文件包名
resourceresource="你要将Mapper.xml文件中"导入完整的路径
resultType="int"resultType="表示该sql语句执行结束后,得到的返回值的类型"
Mybatis的占位符MyBatis框架中使用的占位符#{字段名}等价于jdbc? ${字段名} 等价于java+连接符
parameterType该属性控制转入的数据的数据类型的数值

第二点接口的定义,接口如何定义的标准。

创建接口的三条标准:

定义方法的返回值的类型必须与映射文件 resultType属性数据类型一致

定义的方法名称一定要与执行sql语句的id属性中的名称一致

方法中的形参数对应映射文件中parameterType=""的参数内容

第三点案例实操。

1 查询书籍的数量。

<!--@1查询书籍数量-->
    <select id="getCount" resultType="int" >
        select count(*) from book
    </select>
该类为接口
/*定义查询书籍数量的的方法名称*/
int getCount();jav
package Com.Book.Test;
​
import Com.Book.Dao.IBookDao;
​
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
​
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
​
public class BookTest {
    public SqlSession ss = null;
//     public SqlSession dao=null;
​
    public void init() {
//       将主配置文件转换成输入流
        try {
            /*四句合并成两句*/
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            ss = new SqlSessionFactoryBuilder().build(is).openSession();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
​
​
    @Test
    public void one() {
        init();
        IBookDao dao = ss.getMapper(IBookDao.class);
        int count = dao.getCount();
        System.out.println("查序书籍的数量为" + count + "本");
    }
}

2 转入一个参数 id 在控制台中 输出书名

<!--@2转入一个参数的书名-->
    <select id="getNameId" parameterType="int" resultType="String" >
        select name from book where id=#{id}
    </select>
 /*转入一个参数的书名-*/
    /*<select id="getNameId" parameterType="int" resultType="String" >*/
    String getNameId(int id);
​
@Test
//查书籍名称
    public void two() {
        init();
        IBookDao dao = ss.getMapper(IBookDao.class);
        String name = dao.getNameId(14);
        System.out.println("查序书籍的数量为" + name);
    }

3查询所有的学生信息

<!--查序所以学生的信息-->
    <select id="selectAll" resultType="Map">
        select *from student
    </select>
/*注意查询多条数据的时候,一定是List<Map>或者自定义实体类*/
    /*but   List<Map<String, Object>>*/
    List<Map<String, Object>> selectAll();
@Test
    public void three() {
        init();
        IStudentDao dao = ss.getMapper(IStudentDao.class);
        List<Map<String, Object>> student = dao.selectAll();
        student.forEach(map -> System.out.println(map));
    }

  4 将所有图书信息id降序排列小 desc从大到小排序。

<!--转参数加多条数据-->
    <!--将所有图书信息id降序排列小 desc从大到  升序 asc-->
    <select id="selectOrder" resultType="Map">
        select *from book order by id desc
    </select>


  /*<!--将所有图书信息id降序排列 desc从大到小  升序 asc-->*/
    /*  <select id="selectOrder" resultType="Map">*/
    List<Map<String, Object>> selectOrder();
 @Test
    public void six() {
        init();
        IBookDao dao = ss.getMapper(IBookDao.class);
        List<Map<String, Object>> books = dao.selectOrder();
        books.forEach(map -> System.out.println(map));
    }

5 增加

 <!-- 增 如果想取除字段名 将整张表的字段名加上-->
    <insert id="addBook" parameterType="Map">
        insert into book values (#{id},#{name},#{author},#{price},#{count})
    </insert>
// <insert id="addBook" parameterType="Map">
    int addBook(Map<String, Object> Map);
@Test
    public void seven() {
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("id", null);
        map.put("name", "AAAA");
        map.put("author", "AAAA");
        map.put("price", 100);
        map.put("count", 67);
        IBookDao dao = ss.getMapper(IBookDao.class);
        int i = dao.addBook(map);
        ss.commit();
        if (i > 0) {
            System.out.println("增加成功");
        }
​
    }

6 修改


 <update id="updateBook" parameterType="Map">
        update book set price=#{price},count=#{count} where id=#{id}
    </update>
// <update id="updateBook" parameterType="Map">
    int updateBook(Map<String, Object> Mapjava
    
 @Test
    public void nine() {
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("id", 10);
        map.put("name", "gjs");
        IBookDao dao = ss.getMapper(IBookDao.class);
        int i = dao.updateBook(map);
        ss.commit();
        if (i > 0) {
            System.out.println("修改成功");
        }else {
            System.out.println("修改失败");
        }
​

7 删除

 <!--删除-->
    <delete id="deleteBook" parameterType="Map">
        delete from book where  id between #{id1} and #{id2}
    </delete>
//<delete id="deleteBook" parameterType="Map">
    int deleteBook(Map<String, Object> Map);
public void nine() {
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("id1", 11);
        map.put("id2", 12);
        IBookDao dao = ss.getMapper(IBookDao.class);
        int i = dao.deleteBook(map);
        ss.commit();
        if (i > 0) {
            System.out.println("删除成功");
        }else {
            System.out.println("删除失败");
        }

4月23号针对MyBatis数据的增删改查的的第四种方案不使用配置文件

回顾下面表格的属性。

namespacenamespace="com.book.dao"导入Mapper.xml文件包名
resourceresource="你要将Mapper.xml文件中"导入完整的路径
resultType="int"resultType="表示该sql语句执行结束后,得到的返回值的类型"
Mybatis的占位符MyBatis框架中使用的占位符#{字段名}等价于jdbc? ${字段名} 等价于java+连接符
parameterType该属性控制转入的数据的数据类型的数值
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--添加配置标签 <configuration>  -->
<configuration>
    <!--将database.properties文件加载至该主配置文件进行统一管理-->
    <properties resource="database.properties"></properties>
    <!--设置项目的运行环境-->
    <!--注意:default标签上填写的内容必须要和id属性的内容一致-->
    <environments default="development">
        <environment id="development">
            <!--配置操作数据库的事务管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"></property>
                <property name="username" value="${user}"></property>
                <property name="password" value="${password}"></property>
            </dataSource>
        </environment>
    </environments>
​
    <!--将映射文件导入到此文件中-->
    <mappers>
        <mapper class="com.book.dao.IBookDo"></mapper>
    </mappers>
​
</configuration>

com.book.dao.IBookDo在这个接口中定义文件的增删改查。

1 查询书本的数量。

 //查询book表中的图书数量
    @Select("   select count(*) from book")
    //对应的方法名称
    int getCount();
package com.book.test;
​
import com.book.dao.IBookDo;
import com.book.entity.Book;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
​
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
​
/**
 * 2022/3/17
 */
public class BookTest {
    public SqlSession ss = null;
    public IBookDo dao = null;
​
    public void init() {
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//    SqlSessionFactoryBuilder().build(is).openSession()
            ss = new SqlSessionFactoryBuilder().build(is).openSession();
            dao = ss.getMapper(IBookDo.class);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
​
    @Test
    public void one() {
        init();
        int count = dao.getCount();
        System.out.println("查询书籍的数量" + count + "本");
    }
​
​
   }

2增加一条数据库的语句内容。

//<!--将所有图书信息id降序排列 desc从大到小  升序 asc-->
    //@Select("select *from book order by id desc")
    //增加语句
    @Insert("insert into book(name,author,price,count) values (#{name},#{author},#{price},#{count})")
    int addBook(Book book);
 @Test
    public void six() {
        init();
// @Insert("insert into book(id,name,author) values (#{id},#{name},#{author})")
        Book book = new Book(0, "我的世界", "《java1》", 23, 45);
        int i = dao.addBook(book);
        ss.commit();
        if (i > 0) {
            System.out.println("增加成功");
        }else {
            System.out.println("增加数据没有成功");
        }
    }

@3修改数据信息。

@Test
    public void seven() {
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("id",20);
        map.put("price", 20);
        map.put("count", 1200);
        int i = dao.updateBook(map);
        ss.commit();
        if (i > 0) {
            System.out.println("数据修改成功");
        }else{
​
            System.out.println("数据修改失败");
        }
    }

4删除语句信息


//删除一条语句
    //@3利用mysql删除语句<delete>   id   parameterType   resultType
    @Delete("delete from book ")
    int deleteAll();
5查询
//查询书籍编号为2的书名  @param
    //转入参数的时候需要增加@Param注解 该注解中的设置的变量名需要的变量名和占位符一致
    @Select("select name from book where id=#{id}")
    String getNameId(@Param("id") int id);
​
    //查询所有数据  返回值   List<Map<String, Object>>   List<Map<Book book>>
    @Select(" select *from book")
    List<Map<String, Object>> selectAll();
​
    //    查询书名为“人生的意义盒子”作者 价格 数量
    @Select("select author,price,count,from book where name=#{name}")
    Map<String, Object> getBook(@Param("name") String name);
​
​
    //查询多个参数查序多个字段
    @Select(" select name,id,count from book where author=#{author} and price=#{price}")
    Map<String, Object> getBookInfo(@Param("author") String author, @Param("price") int price);
​
    //查询多个参数查序多个字段方法二
    @Select(" select id,name,count from book where author=#{author} and price=#{price}")
    Map<String, Object> getBookInfo1(Map<String, Object> map);
package com.book.test;
​
import com.book.dao.IBookDo;
import com.book.entity.Book;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
​
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
​
/**
 * 2022/3/17
 */
public class BookTest {
    public SqlSession ss = null;
    public IBookDo dao = null;
​
    public void init() {
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//    SqlSessionFactoryBuilder().build(is).openSession()
            ss = new SqlSessionFactoryBuilder().build(is).openSession();
            dao = ss.getMapper(IBookDo.class);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
​
    @Test
    public void one() {
        init();
        int count = dao.getCount();
        System.out.println("查询书籍的数量" + count + "本");
    }
​
​
    @Test
    public void two() {
        init();
        String nameId = dao.getNameId(11);
​
        System.out.println(nameId);
    }
​
    //查询所有的书籍信息
    @Test
    public void tree() {
        init();
        List<Map<String, Object>> books = dao.selectAll();
        books.forEach(map -> System.out.println(map));
    }
​
​
    @Test
    public void four() {
        init();
        Map<String, Object> map = dao.getBookInfo("小明", 34);
        System.out.println(map);
        System.out.println("输出结果为空");
​
    }
​
​
​
    @Test
    public void four1() {
        init();
        Map<String, Object> m = new HashMap<>();
        m.put("author", "小明");
        m.put("price", 34);
        Map<String, Object> map = dao.getBookInfo1(m);
        System.out.println(map);
​
    }
​
    @Test
    public void six() {
        init();
// @Insert("insert into book(id,name,author) values (#{id},#{name},#{author})")
        Book book = new Book(0, "我的世界", "《java1》", 23, 45);
        int i = dao.addBook(book);
        ss.commit();
        if (i > 0) {
            System.out.println("增加成功");
        }else {
            System.out.println("增加数据没有成功");
        }
    }
​
    @Test
    public void seven() {
        init();
        Map<String, Object> map = new HashMap<>();
        map.put("id",20);
        map.put("price", 20);
        map.put("count", 1200);
        int i = dao.updateBook(map);
        ss.commit();
        if (i > 0) {
            System.out.println("数据修改成功");
        }else{
​
            System.out.println("数据修改失败");
        }
    }
​
​
    @Test
    public void  nine(){
//        查询数量的限制
        init();
        List<Map<String, Object>> studentLimit = dao.getBooktLimit(2, 4);
        studentLimit.forEach(map-> System.out.println(map));
    }
​
    @Test
    public void five(){
        init();
        List<Map<String, Object>> studentList = dao.getBookList(67);
        studentList.forEach(map-> System.out.println(map));
        System.out.println("选择数量>67的所有数据类型");
    }
​
    //    数据删除成功
    @Test
    public void eight() {
        init();
        int i = dao.deleteAll();
        ss.commit();
        if (i > 0) {
            System.out.println("数据删除成功");
        } else {
            System.out.println("数据删除失败");
        }
​
​
    }
​
​
}

 
举报

相关推荐

2022年4月24日

2022年4月总结

2022年1月24日学习总结

Java接口编程-2022年4月24日

4月7号总结

2022年1月总结

《QDebug 2022年4月》

0 条评论