Mybatis读取数据库数据,并返回给前端以及CURD简单操作

为什么要用Mybatis

MyBatis把sql语句从Java源程序中独立出来, 放在单独的XML文件中编写,给程序的维护带来了很大便利。

 Mybatis读取数据库需要做什么?

1首先先在数据库创建一张表

2新建一个mybatis项目

 

 3待创建完毕,再右键自己的项目进行创建一个子项目

 (2)选择以下三个依赖项即可

 4在父项目中的pom.xml文件中添加以下代码

<dependencies>
    <!--        mysql驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
    <!--        mybatis-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.10</version>
    </dependency>
    <!--        junit-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
    </dependency>
</dependencies>

5在子项目中resource目录下添加mybatis-config.xml文件

 以下为部分代码

<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/mybatis"/>
<!--                数据库的用户名-->
                <property name="username" value="root"/>
<!--                数据库密码-->
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

 6再在resource目录下创建个包,并添加UserMapper.xml文件

 

以下为UserMapper.xml文件代码

 7 在子项目的java目录下创建如图所示三个对应包(controller,domain,mapper)

前两个目录下创建java类对象,最后一个创建一个接口对象

 8(1)User类 (这个是与你数据库的所创建的表对应,即数据表具有的字段属性 在这个类中都应有所对应)

 构造函数以及get函数与set函数都可通过alt+insert进行自动编写;最后以同样的方式编写一个tostring()函数,这样一个User类就创建完毕了。

8(2)创建 UserMapper接口

8(3)配置数据源

①可创建一个yml文件

②或者直接在自带的application.properties中直接配置(前提是yml文件中没有此类代码 如果有,yml中的代码将会覆盖properties文件中的代码)

 8(4)创建controller对象

并在controller对象中添加以下代码

private static HashMap<String,Integer> mmap= new HashMap<>();
    InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    SqlSession sqlSession = sqlSessionFactory.openSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    List<User> result= mapper.getUserList();

    public HelloController() throws IOException {
    }

    @GetMapping("/hello")
    public String hello(){
        return result.toString();
    }

9完成以上步骤,就算完成了springboot与mybatis的结合,点击运行 

出现以下两行 就代表以及成功了

 

 最后将地址复制到浏览器进行查看,如果不知道地址的可以点击此处查看

 最终结果

 纯新人 我也还在学,如果有什么错误,望指正

以下是简单的CURD操作

CURD:分别对应create(增加,创造),update(更新),read(读取),delete(删除)。这是总称,实际上在数据库以及spring中所对应的分别是add(),update(),select(),delete().

1.select

选择,查询语句

id:就是对应的namespace中的方法名

resulType:sql语句执行的返回值!

parameterType:参数类型!

  1. 编写接口 (在mapper中)

     

  2. 编写对应的mapper中的sql语句(UserMapper.yml中)

  3. 在controller中编写对应的接口

  4. 在postman上进行操作

3.Insert(插入操作)

  1.  编写接口 (在mapper中)

     

  2. 编写对应的mapper中的sql语句(UserMapper.yml中)

  3. 在controller中编写对应的接口(这里是为了能在前端网页上进行增加操作)

  4. 在postman上进行操作

  5. 可以看到数据库中有相应的增加,说明我们的添加操作没有问题

4.update(更新操作)

  1.   编写接口 (在mapper中)

     

  2. 编写对应的mapper中的sql语句(UserMapper.yml中)

  3. 在controller中编写对应的接口

  4.  在postman上进行操作

  5. 可以看到数据库中有相应的修改,说明我们的修改操作没有问题

5.Detele


 

  1.   编写接口 (在mapper中)

     

  2. 编写对应的mapper中的sql语句(UserMapper.yml中)

  3. 在controller中编写对应的接口

  4.   在postman上进行操作

  5. 可以看到数据库中有相应的修改,说明我们的删除操作没有问题

注意点:

增删改需要提交事物!

6.分析错误

标签不要匹配错

resourse绑定mapper,需要使用路径

程序配置文件必须符合规范

NullPointerExcepyion,没有注册资源

输出的xml文件中存在中文乱码问题

maven资源没有导出问题

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 JSP 中使用 MyBatis 读取数据库,需要遵循以下步骤: 1. 配置 MyBatisMyBatis 的配置文件中配置数据源和 SQL 映射文件的路径。 2. 创建 SQL 映射文件 在 SQL 映射文件中编写 SQL 语句,并使用 MyBatis 提供的标签进行 SQL 语句的拼接和参数的设置。 3. 在 JSP 中调用 MyBatis 在 JSP 中使用 JSTL 或 EL 表达式调用 MyBatis 读取数据库,可以使用 JSTL 的 `<sql:setDataSource>` 标签设置数据源,然后使用 `<sql:query>` 标签执行 SQL 语句,也可以使用 EL 表达式调用 MyBatis 的 Mapper 接口执行 SQL 语句。 以下是一个简单的示例: 1. MyBatis 配置文件 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> <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/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> </configuration> ``` 2. SQL 映射文件 UserMapper.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.example.mapper.UserMapper"> <select id="getUserById" resultType="com.example.model.User"> select * from user where id=#{id} </select> </mapper> ``` 3. JSP 页面: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MyBatis JSP Demo</title> </head> <body> <sql:setDataSource var="dataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123456"/> <sql:query var="user" dataSource="${dataSource}"> SELECT * FROM user WHERE id = ${param.id} </sql:query> <table> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> <c:forEach var="row" items="${user.rows}"> <tr> <td>${row.id}</td> <td>${row.name}</td> <td>${row.age}</td> </tr> </c:forEach> </table> </body> </html> ``` 这个示例展示了如何使用 JSTL 和 MyBatis 读取数据库,其中 `<sql:setDataSource>` 标签设置了数据源,`<sql:query>` 标签执行了 SQL 语句,EL 表达式 `${param.id}` 传递了参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值