IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 2022年6月4号:前后端的数据的交互技术实操项目五: -> 正文阅读

[Java知识库]2022年6月4号:前后端的数据的交互技术实操项目五:

第一步建立数据库建立数据库的表格:

aa3f04d48ba54830b6190d9051762be7.png

建立数据库的第一张表


6c7b995f83194fdabb267f5cd4557fed.png

建立数据库的第二张表


建立项目:

0be01fcc5f6f4e01a7f2ecdfd5552d77.png

构建MVC+SSM框架的三层架构


78db31f2ce7f42de80a3730fb5dc5664.png

SSM框架所需要的架包


第二步:配置文件:

MyBatis框架:操作数据访问层.

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/testdb
jdbc.username=root
jdbc.password=123456
<?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>

	<settings>
		<!-- 设置延迟加载开关,默认false(立即加载) -->
		<setting name="lazyLoadingEnabled" value="false" />

		<!-- 开启MyBatis二级缓存配置,默认已经开启,可以省略 -->
		<setting name="cacheEnabled" value="true" />

		<!-- 设置驼峰命名规则,会将表字段名user_name自动映射到属性名userName -->
		<setting name="mapUnderscoreToCamelCase" value="true" />
	</settings>

	

</configuration>

Spring框架:操作mvc三层.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
			    http://www.springframework.org/schema/beans/spring-beans.xsd
			    http://www.springframework.org/schema/context
			    http://www.springframework.org/schema/context/spring-context.xsd
			    http://www.springframework.org/schema/aop
			    http://www.springframework.org/schema/aop/spring-aop.xsd
			    http://www.springframework.org/schema/tx
			    http://www.springframework.org/schema/tx/spring-tx.xsd">

	<!--开启组件扫描 -->
	<context:component-scan
		base-package="Com.Day0604.Service" />
	<!-- 引入外面的properties常量配置文件 -->
	<context:property-placeholder
		location="classpath:db.properties" />
	<!-- 数据源配置 -->
	<bean id="dataSource"
		class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	<!-- 事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<!-- 开启基于注解配置的事务管理 -->
	<tx:annotation-driven
		transaction-manager="transactionManager" />

	<!-- 扫描mapper接口文件 -->
	<bean id="mapperScannerConfigurer"
		class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="Com.Day0604.Dao" />
	</bean>

	<!-- 创建sqlSession工厂 -->
	<bean id="sessionFactory"
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- <property name="typeAliasesPackage" value="com.yhh.domain" /> -->
		<!-- 如果还有一些专门针对于mybatis的配置,需要引入 -->
		<property name="configLocation"
			value="classpath:mybatis-config.xml" />

		<!--  配置mybatis分页插件PageHelper -->
		<property name="plugins">
			<array>
				<bean class="com.github.pagehelper.PageInterceptor">
					<property name="properties">
						<value></value>
					</property>
				</bean>
			</array>
		</property>
	</bean>
</beans>

SpringMvc框架:操作控制层.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
			    http://www.springframework.org/schema/beans/spring-beans.xsd
			    http://www.springframework.org/schema/context
			    http://www.springframework.org/schema/context/spring-context.xsd
			    http://www.springframework.org/schema/aop
			    http://www.springframework.org/schema/aop/spring-aop.xsd
			    http://www.springframework.org/schema/tx
			    http://www.springframework.org/schema/tx/spring-tx.xsd
			    http://www.springframework.org/schema/mvc
			    http://www.springframework.org/schema/mvc/spring-mvc.xsd">

	<!--开启组件扫描 -->
	<context:component-scan
		base-package="Com.Day0604.Controller" />

	<!--开启mvc注解支持 -->
	<mvc:annotation-driven />

	<!--释放静态资源 -->
	<mvc:default-servlet-handler />

	
</beans>

第三步:配置web-xml文件信息:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">


    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <!-- 监听并加载spring配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--配置前端控制器-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--配置DispatcherServlet需要的配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--加载时机-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <!-- 配置/意味着拦截除了jsp之外的所有请求 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!--配置POST请求中文乱码过滤器-->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <!--指定编码-->
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>
</web-app>

第四步:查询操作:

<div align="center">
    <h1>商品管理系统</h1>
    <div id="navdiv">
        <p> 一级目录:<input type="search" name="one" class="num">&nbsp;&nbsp;&nbsp;</p>
        <p> 二级目录:<input type="search" name="one" class="num">&nbsp;&nbsp;&nbsp;</p>
        <p><input type="button" value="查询"></p>
    </div>
    <table>
        <tr>
            <th>编号</th>
            <th>商品名称</th>
            <th>买点</th>
            <th>售价</th>
            <th>数量</th>
            <th>更新日期</th>
            <th>增加一条记录</th>
            <th>修改一条记录</th>
            <th>删除一条记录</th>
        </tr>
    </table>
</div>

696c7c96decf4c9bb53df9bac2d04a53.png


开始访问服务器:编写Ajax请求:要求查询到的数据查询到本页面上:


  //让服务器查数据 返回页面
        $(function () {
            $.ajax({
                url: "list.do",
                type: "GET",
                data: "",
                success: function (json) {
                   
                },
                error: function () {
                    alert("请求失败")
                },
                dataType: "json"


            });

        });

控制器定义方法来接收浏览器的任务:

package Com.Day0604.Controller;

import Com.Day0604.Service.IItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

/**
 * 控制层
 */
@Controller
public class ItemController {
    @Autowired
    IItemService service;

//    定义方法
@RequestMapping("list.do")
@ResponseBody
    public  Object getList(){
    System.out.println("开始查询数据");
    List<Map<String, Object>> list=service.getList();
//list集合 [{},{},{},{},{}]
    return ;

}
}

业务逻辑层的接口:

package Com.Day0604.Service;

import java.util.List;
import java.util.Map;

/**
 * 业务层接口
 */
public interface IItemService {
    List<Map<String, Object>> getList();
}

业务逻辑层的接口的实现方法的类:

package Com.Day0604.Service;

import Com.Day0604.Dao.IItemDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service(value = "sService")
public class ItemServiceImp implements  IItemService{
    @Autowired
    IItemDao dao;

    @Override
    public List<Map<String, Object>> getList() {
        return dao.getList();
    }
}

数据访问层的接口:

package Com.Day0604.Dao;

import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 数据访问层
 */
public interface IItemDao {

    @Select("select * from item")
    List<Map<String, Object>> getList();

}

层层返回到控制层:

package Com.Day0604.Controller;

import Com.Day0604.Service.IItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

/**
 * 控制层
 */
@Controller
public class ItemController {
    @Autowired
    IItemService service;

//    定义方法
@RequestMapping("list.do")
@ResponseBody
    public  Object getList(){
    System.out.println("开始查询数据");
    List<Map<String, Object>> list=service.getList();
//list集合 [{},{},{},{},{}]
    return list;

}

}

在index.html页面中定义方法解析JSON:

 //    定义方法解析json格式
        function parseTable(json) {
            for (var i = 0; i < json.length; i++) {
                $("table").append("<tr>" +
                    "<td>" + json[i].id + "</td>" +
                    "<td>" + json[i].title + "</td>" +
                    "<td>" + json[i].sell_point + "</td>" +
                    "<td>" + json[i].price + "</td>" +
                    "<td>" + json[i].num + "</td>" +
                    "<td>" + json[i].updated + "</td>" +
                    "<td><input type='button' value='增加一条记录' class='I'></td>" +
                    "<td><input type='button' value='修改一条记录' class='U'></td>" +
                    "<td><input type='button' value='删除一条记录' class='D'></td>" +
                    "</tr>")
            }

        }

调用方法:

  //让服务器查数据 返回页面
        $(function () {
            $.ajax({
                url: "list.do",
                type: "GET",
                data: "",
                success: function (json) {
                    //list集合 [{},{},{},{},{}]
                    //    解析数据
                    parseTable(json);
                },
                error: function () {
                    alert("请求失败")
                },
                dataType: "json"


            });

        });

运行结果:

377bcc3791a24679811f4665101ed119.png

?总结
第一点:查询数据的核心要义:
? ? ?* ?如果用户要查整张表的信息要做以下分析
? ? ?* 1 表中查到的是一条记录 那你又可以这样做 在java中定义了 Map集合 Map<String, Object>
? ? ?* 2 如果查到的是两条记录或者是多条记录 外表用到是list集合 ?里面是MAP集合
? ? ?* 3所以多条记录利用的是 list中调用map集合 ?List<Map<String, Object>> getCarList()
? ? ?* 如果用户查询表的一个字段 中有多条记录
? ? ?* 1多条记录利用List集合 一个字段利用的是String存放
? ? ?* 2所以使用的是list中调用String ? ?List<String>

查询功能到这里结束了:各位学习者要多学多去写几遍:主要是思路的理解:


?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-08 18:52:54  更:2022-06-08 18:55:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:44:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码