日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ssm框架sql换成MySQL_搭建ssm框架,可实现登录和数据展示以及增删改查

發(fā)布時間:2025/3/12 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssm框架sql换成MySQL_搭建ssm框架,可实现登录和数据展示以及增删改查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

需求:

后臺使用ssm(spring-springMVC-mybatis)進行整合

前臺使用bootstrap框架

前后臺交互使用Ajax進行發(fā)送

表結構:

登錄頁面后顯示所有用戶信息,可對每條進行增刪改查

登錄時也使用本表的user_name和user_pwd進行校驗

項目目錄結構

步驟一:搭建框架,進行測試

applicationContext.xml:spring配置文件,內容還包括spring和mybatis整合

mybatis.xml:mybatis配置文件

springmvcServlet-servlet.xml:springMVC配置文件

1.在src目錄下新建context包,用來存放配置文件

2.配置web.xml

3.導入需要的jar包

由于本項目還會使用到junit測試,pageHelper等組件,所以有些jar包不是在搭框架的時候所必須的,必須的jar包大家可以問度娘哈

編寫web.xml

代碼中注釋寫的很完整,這里直接貼代碼了,如果哪里有看不懂的大家可以留言或私信

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>ssm-dynamic</display-name><!-- 啟動spring容器 --><context-param><param-name>contextConfigLocation</param-name><!-- 在根目錄存在springContext.xml文件 --><param-value>classpath*:contexts/applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><!-- 配置log4j --><context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/classes/contexts/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <!-- 需要添加spring-web.jar包 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener><!-- 配置springmvc前端控制器 --><servlet><!-- 在于web.xml同級目錄下存在springmvcServlet-servlet.xml文件 --><servlet-name>springmvcServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:contexts/springmvcServlet-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvcServlet</servlet-name><!-- 攔截所有請求 --><url-pattern>/</url-pattern></servlet-mapping><!-- 字符編碼過濾器,一定要放在所有過濾器之前 --><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><init-param><param-name>forceRequestEncoding</param-name><param-value>true</param-value></init-param><init-param><param-name>forceResponseEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern> </filter-mapping> <!-- 使用Rest風格的URI,將頁面普通的post請求轉為指定的delete或者put請求 --> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>applicationContext.xml

<?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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"default-lazy-init="true"><!-- spring配置文件,配置與業(yè)務邏輯相關的 --><context:component-scan base-package="com.huaxin"><!-- 不掃描控制器 --><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!-- 引入外部配置文件 --><context:property-placeholder location="classpath:contexts/jdbc.properties"/><!-- ======數(shù)據源配置開始====== --><bean id = "dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maximumPoolSize" value="${jdbc.maximumPoolSize}" /> <property name="minimumIdle" value="${jdbc.minimumIdle}" /> <property name="connectionTestQuery" value="${jdbc.connectionTestQuery}" /> <property name="dataSourceProperties"> <props> <prop key="cachePrepStmts">${jdbc.cachePrepStmts}</prop> <prop key="prepStmtCacheSize">${jdbc.prepStmtCacheSize}</prop> <prop key="prepStmtCacheSqlLimit">${jdbc.prepStmtCacheSqlLimit}</prop> <prop key="useServerPrepStmts">${jdbc.useServerPrepStmts}</prop> </props> </property> </bean><!-- ======數(shù)據源配置結束====== --><!-- ======整合mybatis開始====== --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 指定mybatis全局配置文件位置 --><property name="configLocation" value="classpath:contexts/mybatis.xml"></property><!-- 指定數(shù)據源 --><property name="dataSource" ref="dataSource"></property><!-- 指定mybatis的mapper文件的位置 --><property name="mapperLocations" value="classpath:com/huaxin/mapping/*.xml"></property></bean><!-- 配置掃描器,將mybatis接口的實現(xiàn)加入到ioc容器中 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 掃描所有dao接口的實現(xiàn),加入到ioc容器中 --><property name="basePackage" value="com.huaxin.dao"></property></bean><!-- ======整合mybatis結束====== --><!-- ======配置可執(zhí)行批量的sqlSession開始====== --><!-- <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate.class"><constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg><constructor-arg name="executorType" value="BATCH"></constructor-arg></bean> --><!-- ======配置可執(zhí)行批量的sqlSession結束====== --><!-- ======事物控制的配置開始====== --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 控制數(shù)據源 --><property name="dataSource" ref="dataSource"></property><!-- 開啟基于注解的事物,使用xml配置形式的事物(比較主要的使用配置形式) --></bean><aop:config><!-- 切入點表達式 *[返回值類型]+空格+需要控制事物的包+ ..[兩個點表示其子包也可以]+*[方法]+(..)[兩個點表示任意多個參數(shù)] --><aop:pointcut expression="execution(* com.huaxin.service..*(..))" id="txPoint"/><!-- 配置事物增強 --><aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/></aop:config><!-- 配置事物增強,事物如何切入 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!-- *表示所有方法都是事物方法 --><tx:method name="*"/><!-- 以get開始的所有方法,認為都是查詢方法,進行調優(yōu) --><tx:method name="get*" read-only="true"/></tx:attributes></tx:advice><!-- ======事物控制的配置結束====== --><!-- Spring配置文件的核心點(數(shù)據源,與mybatis的整合,事物控制) --></beans>springmvcServlet-servlet.xml

<?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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"default-lazy-init="true"><!-- springmvc配置文件,包含網站跳轉邏輯的控制,配置 --><context:component-scan base-package="com.huaxin" use-default-filters="false"><!-- 只掃描控制器 --><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!-- 配置視圖解析器,方便頁面返回 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"></property><property name="suffix" value=".jsp"></property></bean><!-- 兩個標準配置 --><!-- 將springmvc不能處理的請求交給tomcat --><mvc:default-servlet-handler/><!-- 能支持springmvc更高級的功能,JSR303校驗,快捷的Ajax等等,映射動態(tài)請求 --><mvc:annotation-driven/></beans>mybatis.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><!-- 配置駝峰命名規(guī)則 --><settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings><!-- 配置類型別名 --><typeAliases><package name="com.huaxin.bean"/></typeAliases><!-- 配置分頁查詢 --><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><!-- 3.3.0版本可用 - 分頁參數(shù)合理化,默認false禁用 --><!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最后一頁 --><property name="reasonable" value="true"/></plugin></plugins></configuration>使用mybatis逆向工程生成bean,dao和mapping

配置mbg.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context id="DB2Tables" targetRuntime="MyBatis3"><!-- 配置是否生成注釋 --><commentGenerator><property name="suppressAllComments" value="true" /></commentGenerator><!-- 配置數(shù)據庫連接信息 --><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/test" userId="root" password="1234"></jdbcConnection><javaTypeResolver ><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- 指定JavaBean生成位置 --><javaModelGenerator targetPackage="com.huaxin.bean" targetProject=".src"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><!-- 指定sql映射文件生成的位置 --><sqlMapGenerator targetPackage="com.huaxin.mapping" targetProject=".src"><property name="enableSubPackages" value="true" /></sqlMapGenerator><!-- 指定dao接口生成的位置,mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER" targetPackage="com.huaxin.dao" targetProject=".src"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- 指定每個表的生成策略,enable***表示不生成example表 --><table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table></context></generatorConfiguration>編寫生成類

package com.huaxin.test;import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;public class MBGTest { public static void main(String[] args) throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); System.out.println("生成代碼成功"); }}執(zhí)行后刷新項目,即可看到生成的代碼

測試dao層以及項目基本配置是否成功

編寫測試類MapperTest.java

package com.huaxin.test;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.huaxin.bean.User;import com.huaxin.dao.UserMapper;/*** 測試dao層* @author ws* Spring項目可以使用spring的單元測試,可以自動注入我們需要的組件* 1.導入SpringTest模塊spring-test-4.1.7.RELEASE.jar* 2.@ContextConfiguration指定配置文件位置* @RunWith(SpringJUnit4ClassRunner.class)指定使用spring的單元測試* 3.直接autowired要使用的組件即可 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:contexts/applicationContext.xml"})public class MapperTest { @Autowired UserMapper userMapper; /*@Autowired SqlSession sqlSession;*/public static void main(String[] args) { /*// 1.創(chuàng)建SpringIOC容器 ApplicationContext ioc = new ClassPathXmlApplicationContext("springContext.xml"); // 2.從容器中獲取mapper UserMapper bean = ioc.getBean(UserMapper.class);*/ } @Test public void testC(){ System.out.println(">>>>>>>>>>>>>>>>>>>>" + userMapper); User user = new User(); user.setUserId("testCRUD3"); user.setUserName("李小龍"); user.setUserPwd("qwer123"); user.setAge(231); userMapper.insertSelective(user); /*for(int i = 0;i < 500;i++){ String uid = UUID.randomUUID().toString().substring(0, 5); userMapper.insertSelective(new User(uid, uid, uid, i)); System.out.println("插入成功!"); }*/ System.out.println("插入完成"); } @Test public void testCs(){ /*UserMapper userMapper = sqlSession.getMapper(UserMapper.class); for(int i = 0;i < 1000;i++){ String uid = UUID.randomUUID().toString().substring(0, 5); String id = UUID.randomUUID().toString().substring(5,10); userMapper.insertSelective(new User(id, uid, uid, i)); }*/ }} 編寫login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登錄頁面</title><!-- 獲取項目名稱 --><% pageContext.setAttribute("PATH", request.getContextPath());%><!-- web路徑不以/開始的相對路徑,找資源以當前路徑為基準(容易出問題)以/開始的相對路徑,找資源以服務器的路徑(http://localhost:8080)為標準,需要加項目名--><script type="text/javascript" src="${PATH}/static/jquery/jquery-1.12.4.min.js"></script><link href="${PATH }/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet"><script type="text/javascript" src="${PATH }/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script><%-- <link href="${PATH }/static/css/login.css" rel="stylesheet"> --%><style type="text/css">.container{ display:table; height:100%;}.row{ display: table-cell; vertical-align: middle;}</style></head><body><div class="container"><div class="row"><div class="col-sm-2"><form action="login" method="post"><div class="form-group"><label>用戶名</label><input type="text" class="form-control input-sm" name="username"></div><div class="form-group"><label>密碼</label><input type="password" class="form-control input-sm" name="password"></div><div class="checkbox"><label><input type="checkbox">記住用戶名密碼 </label></div><button type="submit" class="btn btn-default">提交</button><div>${msg}</div></form></div></div></div></body></html>LoginController.java

package com.huaxin.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.huaxin.bean.User;import com.huaxin.dao.UserMapper;@Controllerpublic class LoginController { @Autowired private UserMapper userMapper; /** * 訪問時跳轉登錄頁面 * @param model * @return*/ @RequestMapping(value="/",method=RequestMethod.GET) public String index(Model model){ model.addAttribute("msg", ""); return "login"; } @RequestMapping(value="/login") public String login(Model model, // 向前臺頁面?zhèn)鞯闹捣湃雖odel中HttpServletRequest request // 從前臺頁面取得的值 ){ String username = request.getParameter("username"); String password = request.getParameter("password"); boolean flag = LoginCheck(username, password); if(flag){ return "uerList"; }else{ model.addAttribute("msg", "用戶名或密碼不正確,請重新登錄"); return "login"; } } /** * 檢查用戶名密碼是否正確 * @param username * @param password * @return*/private boolean LoginCheck(String username,String password){ User user = userMapper.selectByUserName(username); if(user == null || "".equals(user)){ return false; } if(user.getUserPwd().equals(password)){ return true; }else{ return false; } }}這里在userMapper中新增了根據username查詢該記錄的信息

sql寫在UserMapper.xml中

<select id="selectByUserName" resultMap="BaseResultMap" parameterType="java.lang.String" > select <include refid="Base_Column_List" /> from user where user_name = #{username,jdbcType=VARCHAR} </select>啟動項目,本項目使用的是tomcat7.0,jdk1.8

頁面效果圖(ps:目前頁面樣式沒有調整,還比較丑,大家可以自己調整一下,還有記住用戶名密碼功能尚未實現(xiàn))

登錄成功,顯示user列表信息

uerList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!-- 引入標簽庫 --><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>json展示頁面</title><!-- 獲取項目名稱路徑 --><% pageContext.setAttribute("PATH", request.getContextPath());%><!-- web路徑不以/開始的相對路徑,找資源以當前路徑為基準(容易出問題)以/開始的相對路徑,找資源以服務器的路徑(http://localhost:8080)為標準,需要加項目名--><script type="text/javascript" src="${PATH}/static/jquery/jquery-1.12.4.min.js"></script><link href="${PATH }/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet"><script type="text/javascript" src="${PATH }/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script><link href="${PATH }/static/css/list.css" rel="stylesheet"><script type="text/javascript" src="${PATH }/static/js/list.js"></script></head><body><%-- ${pageInfo } --%><!-- 使用bootstrap柵格系統(tǒng)搭建顯示頁面 --><div class="container"><!-- 標題 --><div class="row"><div class="col-sm-12"><h1>USER INFO</h1></div></div><!-- 增加刪除按鈕 --><div class="row"><!-- 使用列偏移 --><div class="col-sm-4 col-sm-offset-10"><!-- 使用按鈕樣式 --><button type="button" class="btn btn-primary btn-sm" id="userAddBtn">增加</button><button type="button" class="btn btn-primary btn-sm" id="userDelBtn">刪除</button></div></div><!-- 列表信息 --><div class="row"><div class="col-sm-12"><table class="table table-hover" id="user_table"><thead><tr><th width="20%">id</th><th width="20%">用戶名</th><th width="20%">密碼</th><th width="20%">年齡</th><th width="20%">操作</th></tr></thead><tbody></tbody></table></div></div><!-- 分頁 --><div class="row"><!-- 分頁文字信息 --><div class="col-sm-3" id="pageInfo_area"></div><!-- 分頁條信息 --><div class="col-sm-5 col-sm-offset-4" id="pageNav_area"></div></div></div><!-- 新增模態(tài)框 --><div class="modal fade" id="userAddModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"><div class="modal-dialog" role="document" style="width: 35%"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h5 class="modal-title" id="myModalLabel">新增</h5></div><div class="modal-body"><form class="form-horizontal" id="userAddModalForm"><div class="form-group"><label class="col-sm-2 control-label">id</label><div class="col-sm-8"><input type="text" class="form-control" name="userId"></div></div><div class="form-group"><label class="col-sm-2 control-label">用戶名</label><div class="col-sm-8"><input type="text" class="form-control" name="userName" placeholder="郵箱或手機號"></div></div><div class="form-group"><label class="col-sm-2 control-label">密碼</label><div class="col-sm-8"><input type="password" class="form-control" name="userPwd" placeholder="請輸入密碼"></div></div><div class="form-group"><label class="col-sm-2 control-label">年齡</label><div class="col-sm-8"><input type="text" class="form-control" name="age" placeholder="請輸入年齡"></div></div></form></div><div class="modal-footer"><button type="button" class="btn btn-default btn-sm" data-dismiss="modal">關閉</button><button type="button" class="btn btn-primary btn-sm" id="userAddModalSaveBtn">保存</button></div></div></div></div></body></html>頁面樣式需做微調

list.css

td,th{ text-align: center;}body{ overflow:-Scroll; overflow-x:hidden;}編寫UserController.java

package com.huaxin.controller;import java.util.List;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.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import com.huaxin.bean.Msg;import com.huaxin.bean.User;import com.huaxin.logic.UserLogic;@Controllerpublic class UserController { @Autowired private UserLogic userLogic; /** * 分頁獲取用戶信息 * @ResponseBody 需導入jackson包 * @param pn * @return*/ @RequestMapping(value="/user",method=RequestMethod.GET) @ResponseBody public Msg getUser( @RequestParam(value="pn",defaultValue="1")Integer pn){// 分頁參數(shù)/* 配置分頁查詢 ** 引入PageHelper分頁插件,即pagehelper-5.1.2.jar和jsqlparser-0.9.1.jar ** mybatis.xml中配置分頁 ** 調用PageHelper.startPage(pageNum[第幾頁], pageSize[每頁顯示多少條數(shù)據]); **/ PageHelper.startPage(pn, 7); // startPage后緊跟的查詢即為分頁查詢List<User> list = userLogic.getUserList(); // 使用pageInfo包裝查詢后的結果集,封裝詳細的分頁信息,5是連續(xù)顯示5頁PageInfo pageInfo = new PageInfo(list,5); return Msg.success().add("pageInfo",pageInfo); } @RequestMapping(value="/user",method=RequestMethod.POST) @ResponseBody public Msg addUser(User user){ userLogic.addUser(user); return Msg.success(); }}在usermapper中新增selectAll方法,查詢所有用戶信息

sql如下

<select id="selectAll" resultMap="BaseResultMap" parameterType="java.lang.String" > select <include refid="Base_Column_List" /> from user </select>logic包其實就是service層

UserLogic.java代碼如下

package com.huaxin.logic;import java.util.List;import java.util.UUID;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.web.bind.annotation.RequestParam;import com.huaxin.bean.User;import com.huaxin.dao.UserMapper;@Servicepublic class UserLogic { @Autowired private UserMapper userMapper; /** * 查詢用戶列表(分頁查詢) * @return*/public List<User> getUserList(){ return userMapper.selectAll(); } /** * 用戶新增 * @param user */public void addUser(User user) { // id為自動生成的uuidString uid = UUID.randomUUID().toString().replaceAll("-", ""); user.setUserId(uid); userMapper.insertSelective(user); }}由于前后臺使用ajax進行提交

編寫list.js

var basePath = getRootPath();$(function () { // 頁面加載完成之后,直接發(fā)送ajax請求,要到分頁數(shù)據doQuery(1); // 將按鈕綁定事件 bindEvent();});// 查詢方法function doQuery(pn) { $.ajax({ url:basePath + "/user", data:"pn=" + pn, type:"GET", success:function(result){ //console.log(result);// 解析并顯示員工數(shù)據 build_user_table(result); // 解析并顯示分頁信息 build_page_info(result); // 解析并顯示分頁條 build_page_nav(result); } });}//新增方法function doAdd(formData){ alert(formData); $.ajax({ url:basePath + "/user", data:formData, type:"POST", success:function(result){ console.log(result); } });}// 解析并顯示員工數(shù)據function build_user_table(result) { // 清空表格$("#user_table tbody").empty(); var users = result.data.pageInfo.list; $.each(users,function(index,item){ var userIdTd = $("<td></td>").append(item.userId); var userNameTd = $("<td></td>").append(item.userName); var passwordTd = $("<td></td>"). append(item.userPwd); var ageTd = $("<td></td>").append(item.age); var editBtn = $("<button></button>").addClass("btn btn-primary btn-sm") .append($("<span></span>").addClass("glyphicon glyphicon-pencil")) .append("編輯"); var delBtn = $("<button></button>").addClass("btn btn-danger btn-sm") .append($("<span></span>").addClass("glyphicon glyphicon-remove")) .append("刪除"); var operate = $("<td></td>").append(editBtn).append("?").append(delBtn); $("<tr></tr>").append(userIdTd) .append(userNameTd) .append(passwordTd) .append(ageTd) .append(operate) .appendTo("#user_table tbody"); });}// 解析并顯示分頁信息function build_page_info(result){ // 清空$("#pageInfo_area").empty(); $("#pageInfo_area").append("當前第"+ result.data.pageInfo.pageNum +"頁,共"+ result.data.pageInfo.pages +"頁,"+ result.data.pageInfo.total +"條記錄");}// 解析并顯示分頁條function build_page_nav(result) { // 清空$("#pageNav_area").empty(); // navvar pageNav = $("<nav></nav>").attr("aria-label","Page navigation"); // ulvar pageUl = $("<ul></ul>").addClass("pagination"); // 首頁var firstPageLi = $("<li></li>").append($("<a></a>").append("首頁").attr("href","#")); // 前一頁var previousPageLi = $("<li></li>").append($("<a></a>").append("?").attr("href","#")); // 如果沒有前一頁,首頁和前一頁設置為不可點if(!result.data.pageInfo.hasPreviousPage){ firstPageLi.addClass("disabled"); previousPageLi.addClass("disabled"); }else{ // 點擊時發(fā)送ajax請求,獲取當前頁數(shù)據firstPageLi.click(function(){ doQuery(1); }); previousPageLi.click(function(){ doQuery(result.data.pageInfo.pageNum - 1); }); } // 將首頁和前一頁加入到ul標簽中 pageUl.append(firstPageLi).append(previousPageLi); // 遍歷得到中間頁碼號$.each(result.data.pageInfo.navigatepageNums,function(index,item){ var numsLi = $("<li></li>").append($("<a></a>").append(item).attr("href","#")); // 所在頁設置為高亮if(result.data.pageInfo.pageNum == item){ numsLi.addClass("active"); } // 點擊時發(fā)送ajax請求,獲取當前頁數(shù)據numsLi.click(function(){ doQuery(item); }); // 將每個li頁加入到ul標簽中 pageUl.append(numsLi); }) // 后一頁var NextPageLi = $("<li></li>").append($("<a></a>").append("?").attr("href","#")); // 末頁var lastPageLi = $("<li></li>").append($("<a></a>").append("末頁").attr("href","#")); // 如果沒有后一頁,末頁和后一頁設置為不可點if(!result.data.pageInfo.hasNextPage){ NextPageLi.addClass("disabled"); lastPageLi.addClass("disabled"); }else{ // 點擊時發(fā)送ajax請求,獲取當前頁數(shù)據NextPageLi.click(function(){ doQuery(result.data.pageInfo.pageNum + 1); }); lastPageLi.click(function(){ doQuery(result.data.pageInfo.pages); }); } // 將后一頁和末頁加入到ul標簽中 pageUl.append(NextPageLi).append(lastPageLi); // 將ul標簽加到nav標簽中 pageNav.append(pageUl); // 將nav標簽加入到指定div中$("#pageNav_area").append(pageNav);}//獲取項目根路徑,如: http://localhost:8083/ssm-dynamicfunction getRootPath(){ //獲取當前網址,如: http://localhost:8083/ssm-dynamic/jsp/jsonList.jspvar curWwwPath=window.document.location.href; //獲取主機地址之后的目錄,如: ssm-dynamic/jsp/jsonList.jspvar pathName=window.document.location.pathname; var pos=curWwwPath.indexOf(pathName); //獲取主機地址,如: http://localhost:8080var localhostPaht=curWwwPath.substring(0,pos); //獲取帶"/"的項目名,如:/ssm-dynamicvar projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); return(localhostPaht+projectName);}//將按鈕綁定事件function bindEvent(){ //將新增按鈕綁定click事件$("#userAddBtn").click(function(){ $("#userAddModal").modal({ // 點擊背景模態(tài)框不關閉backdrop:"static" }); }) //將刪除按鈕綁定click事件$("#userDelBtn").click(function(){ $("#userDelModal").modal({ }); }); //將保存按鈕綁定click事件$("#userAddModalSaveBtn").click(function(){ // 獲取頁面輸入的數(shù)據var formData = $("#userAddModalForm").serialize(); // 執(zhí)行新增方法//doAdd(formData); alert(formData); $.ajax({ url:basePath + "/user", data:$("#userAddModalForm").serialize(), type:"POST", success:function(result){ alert(0); } }); });}啟動項目,目前可顯示列表及新增用戶

效果如下

點擊新增按鈕效果圖

目前項目進度(2018-1-4):

登錄:

未實現(xiàn)功能:保存用戶名密碼,頁面樣式

展示頁面(分頁查詢):已完成

新增:只完成了點擊保存會插入到數(shù)據庫,細節(jié)部分都沒做處理(點擊保存關閉彈窗,id設置為隱藏,頁面進行長度內容check等)

編輯和刪除未完成

總結

以上是生活随笔為你收集整理的ssm框架sql换成MySQL_搭建ssm框架,可实现登录和数据展示以及增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品对白一区二区三区 | 99视频免费在线观看 | 亚洲高清精品在线 | 综合伊人av | 亚洲第一成网站 | 日日干美女 | 亚洲国产电影在线观看 | v片在线播放 | 亚洲资源在线观看 | 在线看片视频 | 国产视频在线免费观看 | 欧美极度另类性三渗透 | 91黄色在线看 | 人人澡人人爱 | 亚洲精品videossex少妇 | 五月天六月婷婷 | 色视频在线观看免费 | 操综合 | 亚洲精品一区二区久 | 伊人天天狠天天添日日拍 | 日韩av在线小说 | 久久久久亚洲精品男人的天堂 | 国产精品国内免费一区二区三区 | 国产精品久久婷婷六月丁香 | 在线欧美最极品的av | 国产录像在线观看 | 中文字幕在线影视资源 | 国产人免费人成免费视频 | 成人在线视频免费看 | 久久a级片| 天天天在线综合网 | 在线看黄色av | 天天综合色天天综合 | 高清不卡毛片 | 欧美日韩中文视频 | 欧美激情精品久久久久久免费印度 | 亚洲草视频 | 园产精品久久久久久久7电影 | 日韩欧美视频在线免费观看 | 亚洲国产97在线精品一区 | 人人超在线公开视频 | 在线直播av | 三级动图 | 国产成人精品免高潮在线观看 | www.五月天 | 麻豆久久精品 | 又紧又大又爽精品一区二区 | 国产欧美精品一区二区三区 | 91精品福利在线 | 丁香婷婷射 | 国产精品亚洲视频 | 久草国产在线观看 | 国产高清av免费在线观看 | 久久99精品久久久久久三级 | 麻豆精品视频在线观看免费 | 四虎影视成人永久免费观看视频 | 国产手机在线精品 | 天天夜夜操 | 成人免费看片网址 | 午夜精品一区二区三区四区 | 亚洲精品在线网站 | 久久久av免费| 在线网址你懂得 | 97免费在线观看视频 | 久久成人资源 | 99色在线视频 | 超碰在线99 | 久久热首页 | 中文字幕在线免费看 | 日韩欧美一区二区在线观看 | 国产一在线精品一区在线观看 | 在线视频你懂 | 日韩大片在线免费观看 | 国产品久精国精产拍 | 超碰97国产精品人人cao | 狠狠地操| 日韩欧美在线观看一区二区 | 色婷婷中文 | 天堂av观看 | 国产中文字幕亚洲 | 国产精品一区二区三区免费视频 | 黄色网址a | 91成人天堂久久成人 | 九九热在线视频免费观看 | 天天爱天天色 | 天天操天天干天天插 | 日本h在线播放 | 国产麻豆精品传媒av国产下载 | 免费精品视频在线观看 | 干干操操 | 2023年中文无字幕文字 | 日韩羞羞| 狠狠干综合 | 日韩在线一区二区免费 | 欧美一级大片在线观看 | 欧美日韩一二三四区 | 欧美一级黄色视屏 | 少妇激情久久 | 国产精品a级 | 日日操天天操狠狠操 | 综合色亚洲 | 色在线亚洲| 国产精品系列在线 | 欧美日韩中文视频 | 国产黄色电影 | 欧美日韩精品综合 | 亚洲国产三级 | 久久图 | 最近在线中文字幕 | 欧美黄色特级片 | 水蜜桃亚洲一二三四在线 | 亚洲热视频 | 激情综合色综合久久 | 狠狠操天天干 | 久久99久久久久 | 国产成人久久久77777 | 日韩精品免费一区二区三区 | 日本久久电影 | 久久这里只有精品久久 | 久久人人爽人人爽人人片av软件 | 在线黄色国产 | 久久精品看 | 二区三区中文字幕 | 美国av片在线观看 | 成人资源在线播放 | 日本中文字幕在线免费观看 | 婷婷电影在线观看 | 97碰碰精品嫩模在线播放 | 中文字幕视频网 | 久久综合天天 | 在线观看视频免费大全 | 99热99热 | 久草影视在线观看 | 91在线porny国产在线看 | 日本中文字幕在线播放 | 看黄色.com| 国产视频亚洲视频 | 国产精品男女视频 | 久久久久久久久久亚洲精品 | 亚洲精品88欧美一区二区 | 丁香亚洲 | 99久久久久久久久 | 香蕉视频啪啪 | 最近日韩免费视频 | 国产精品视频资源 | 最近日本韩国中文字幕 | 国内精品视频在线播放 | 在线探花| av五月婷婷 | 久草在线精品观看 | 五月天激情综合网 | 欧美精品一区二区在线观看 | 久久久久影视 | 久久国产一区 | 亚洲欧洲国产日韩精品 | 久久免费视频播放 | 欧美色久 | 天天干天天操 | 亚洲天天做| av成人黄色 | 国产精品ⅴa有声小说 | 激情欧美丁香 | 园产精品久久久久久久7电影 | 欧美福利在线播放 | 中文在线8新资源库 | 日韩在线观看视频在线 | 久久久久久高潮国产精品视 | 国产精品一区二区久久国产 | 天天操天天射天天舔 | www.亚洲精品视频 | 成人在线观看免费 | 日韩欧美高清在线观看 | 中文字幕免费国产精品 | 91看片在线观看 | 三级动图 | 91xav| 精品国产大片 | 99精品在线看| 不卡视频在线 | 国产一区二区高清视频 | 午夜精品久久久 | 国产一级特黄毛片在线毛片 | www.成人久久 | 久草在线网址 | 又黄又刺激视频 | 国产日韩欧美在线看 | 久久丁香 | 日韩在线观看三区 | 久久综合五月天婷婷伊人 | 91在线视频免费观看 | 最新av网址大全 | 麻豆视频免费 | 国产美女视频 | 中文字幕在线观看网站 | 国产午夜精品久久久久久久久久 | 日韩一区二区三区视频在线 | 久久99精品热在线观看 | 一区二区三区国产精品 | 中文理论片 | 成人sm另类专区 | 国产免费观看久久黄 | av高清一区 | 国产免费黄视频在线观看 | 日日夜夜噜噜噜 | 欧美成人免费在线 | 午夜视频不卡 | 四虎永久免费网站 | 日本精品一区二区在线观看 | 久久免费一级片 | 久久狠狠干 | 在线看污网站 | 久久99久久精品 | 国产精品久久久免费 | 国产午夜精品在线 | 久久艹久久| 国产黄色精品在线观看 | 狠狠躁夜夜躁人人爽视频 | 日韩视频一区二区在线观看 | 伊人天天综合 | 国产免费又爽又刺激在线观看 | 超碰人人99 | av不卡免费在线观看 | 久久久久久久影视 | 国产一级在线免费观看 | 国产a网站| 66av99精品福利视频在线 | 国产精品美女久久久久久2018 | 国产一区在线免费观看 | 伊人中文在线 | 亚洲一级片免费观看 | 国产精品毛片 | 亚洲日本va在线观看 | 91在线视频在线观看 | av福利在线导航 | 国内免费久久久久久久久久久 | 免费三及片 | 国产精品毛片久久蜜 | 夜夜操天天干, | 国产精品久久一区二区三区不卡 | 欧美影片 | 亚洲黄色小说网址 | 国产免费又爽又刺激在线观看 | 国产精品美女久久久久久久久 | 福利片免费看 | 久久精品视频一 | 久久精品观看 | 久久无码av一区二区三区电影网 | 超碰在线天天 | 久久国产经典 | 国产精品6 | 91精品在线观看入口 | www.成人精品 | 在线观看中文字幕视频 | 国产精品一区二区三区在线播放 | 中文字幕电影高清在线观看 | 国产成人在线播放 | 亚洲一区二区精品3399 | 探花视频免费观看高清视频 | 狠狠色噜噜狠狠狠狠 | 欧美男同视频网站 | 亚洲精品小区久久久久久 | 日韩在线播放视频 | av色影院 | 亚洲男男gaygayxxxgv | 久久成人精品视频 | 日韩经典一区二区三区 | 久久狠狠一本精品综合网 | 91视频在线免费下载 | 91麻豆精品国产91久久久久久久久 | www.夜色.com| 91漂亮少妇露脸在线播放 | 国产美女主播精品一区二区三区 | 国产亚洲精品久久久久久大师 | 久久草在线精品 | 精品1区2区3区 | 天天操夜夜操天天射 | 中午字幕在线观看 | 亚洲国产伊人 | 九九九电影免费看 | 99久久99久久精品免费 | 久久艹艹 | 91手机在线看片 | av色综合| 在线影院 国内精品 | 福利一区二区在线 | 98久9在线 | 免费 | 亚洲激情电影在线 | 亚洲 av网站 | 超碰人人干人人 | 在线一区观看 | 伊人春色电影网 | freejavvideo日本免费 | 国产精品99久久久久久大便 | 我要看黄色一级片 | 九九综合久久 | 久久亚洲区 | www.久久com| 日韩视频一区二区在线观看 | 亚洲一区 影院 | 在线色资源 | 欧美精品亚洲精品日韩精品 | 亚洲视频免费 | 成年人免费av网站 | av一二三区| 国产淫片 | aaa日本高清在线播放免费观看 | 欧美性大战久久久久 | 欧美性生活免费看 | 精品国产自在精品国产精野外直播 | 二区在线播放 | 国产精品久久婷婷六月丁香 | 中文字幕在线观看国产 | 欧美91精品久久久久国产性生爱 | 日韩av一区在线观看 | 国产成人精品综合久久久 | 国产精品原创在线 | 黄色成年片 | 成人黄色电影在线观看 | 超碰97中文| 成人av在线资源 | 一区免费视频 | 欧美激情综合五月色丁香 | 99九九99九九九视频精品 | 美女视频永久黄网站免费观看国产 | 17videosex性欧美 | 久青草影院 | 九九热久久久 | 亚洲人成免费网站 | 日韩视频在线不卡 | 久久99热国产 | 国模视频一区二区 | 久久男人视频 | 久草线 | 韩国av永久免费 | 国内综合精品午夜久久资源 | 91视频在线免费看 | 日韩综合视频在线观看 | 最近中文字幕第一页 | 毛片一区二区 | 国产精品资源 | 久久精品com | 九九视频在线播放 | 在线观看免费av片 | 国产伦理一区二区 | 少妇av网| 久久国产精品一区二区三区 | 亚洲最大免费成人网 | 日韩激情在线 | 久精品视频在线观看 | 91高清视频 | 成人免费色 | 欧洲精品久久久久毛片完整版 | 久久婷婷综合激情 | 日韩mv欧美mv国产精品 | 国产成人一区三区 | 美女黄网站视频免费 | 在线精品观看国产 | 在线成人看片 | 日韩精品久久一区二区 | 午夜免费在线观看 | 最新不卡av | 国产精品成人aaaaa网站 | 国产精品国产三级在线专区 | 亚洲欧美精品一区二区 | 久久久免费精品 | 亚洲狠狠婷婷 | 精品国产一区二区在线 | 二区三区av | 黄色av观看 | 免费一级日韩欧美性大片 | 日韩精品欧美专区 | 97精品国自产拍在线观看 | 欧美日韩首页 | 成人黄色大片网站 | 91亚洲精品在线观看 | 久久久久久综合网天天 | 最新国产精品久久精品 | 久草在线这里只有精品 | 免费黄在线观看 | 欧美精品国产综合久久 | 亚洲va韩国va欧美va精四季 | 插婷婷 | 久久精品波多野结衣 | 69精品| 二区三区中文字幕 | 亚洲精品高清一区二区三区四区 | 久久国产成人午夜av影院宅 | 欧美天天射 | 日韩电影一区二区三区 | 日韩欧美在线中文字幕 | 亚洲精品欧美成人 | 在线成人免费电影 | 久久97久久97精品免视看 | 国产精品久久久久影视 | www.综合网.com | 亚洲国产操 | 国产精品麻豆一区二区三区 | av在线免费观看不卡 | 97国产精品| 亚洲欧美久久 | 中文日韩在线 | 中文字幕激情 | 天天操天天操天天 | 日韩欧美国产精品 | 欧美 亚洲 另类 激情 另类 | 亚洲五月六月 | 又粗又长又大又爽又黄少妇毛片 | 国产精品女| 热久久免费视频精品 | 国产 欧美 日本 | 97国产精品 | 免费看麻豆 | 欧美日韩免费在线视频 | 特级毛片在线观看 | 91精品久久久久久久久久入口 | 亚州精品天堂中文字幕 | 亚洲电影院 | 色婷婷综合久久久久中文字幕1 | 亚洲综合视频在线 | 国产精品乱码高清在线看 | 韩日电影在线观看 | 国产日韩视频在线观看 | 国产一区av在线 | 天天摸天天操天天爽 | 色天天久久 | 五月婷婷在线观看视频 | 九九欧美视频 | 午夜少妇| 欧洲视频一区 | 久久久免费精品视频 | 日韩www在线 | 国产福利91精品张津瑜 | 2022中文字幕在线观看 | 丁香5月婷婷久久 | 久草在线官网 | 国产精品永久在线 | 成人国产精品久久久春色 | 九九有精品 | 国产福利一区二区三区在线观看 | 欧美日韩国产一区二区三区 | 午夜在线观看影院 | 国产亚洲精品精品精品 | 99这里只有精品99 | 视频在线一区 | 久久视频免费观看 | 欧美aa一级片 | 全久久久久久久久久久电影 | 激情欧美一区二区免费视频 | 最新av免费在线 | 国产午夜三级一区二区三桃花影视 | 婷婷在线视频观看 | 91精品在线麻豆 | 麻豆国产精品永久免费视频 | av免费在线免费观看 | 久久国产高清视频 | 一区二区三区免费在线观看视频 | 97av视频在线观看 | 91传媒在线播放 | 在线 欧美 日韩 | 天天干天天拍天天操 | 黄色av一区| 久久久久久久久久久久久9999 | 亚洲视频在线观看免费 | 日韩免费视频线观看 | 亚洲第五色综合网 | av免费电影在线 | 特级毛片在线 | 91精品综合在线观看 | 色综合久久久 | 午夜性盈盈 | 五月激情在线 | 国产精品免费观看久久 | 欧美另类视频 | 日韩网站在线观看 | 天天狠狠干 | 久久久久久久久久久影院 | 区一区二区三区中文字幕 | 91视频免费网址 | 九九热在线精品 | 亚洲综合涩 | 免费男女羞羞的视频网站中文字幕 | 97精品国产一二三产区 | 国产午夜激情视频 | 成人一区影院 | 亚洲国产成人在线 | 综合色影院 | 久久夜色精品国产欧美一区麻豆 | 国产成人精品999 | 四虎永久视频 | 综合网中文字幕 | 97视频在线观看免费 | 日韩欧美高清免费 | 色狠狠操 | 波多野结衣资源 | 免费视频91蜜桃 | 91视频在线网址 | 国产免费一区二区三区最新6 | 天天干天天上 | 国产成人综| 久草在线视频新 | 国产精品日韩 | 麻豆久久久久久久 | 久久99国产综合精品免费 | 色吊丝在线永久观看最新版本 | 久久久蜜桃一区二区 | 午夜骚影| 国产免费精彩视频 | 久草视频在线看 | 国产亚洲精品久 | 国产一级片免费观看 | 99久精品 | 91最新在线| 在线观看免费成人av | 超碰国产人人 | 午夜丁香视频在线观看 | 欧美一级片免费在线观看 | 免费手机黄色网址 | 久久久久久久久久久免费 | 欧美日韩午夜爽爽 | 国内精品久久久精品电影院 | 狠狠干成人综合网 | 91中文字幕永久在线 | 国产91欧美 | 国产99re| 麻豆国产精品va在线观看不卡 | 天堂成人在线 | 久久精品在线视频 | 婷婷午夜 | 毛片一区二区 | 国产美女精品久久久 | 久久久这里有精品 | 黄色av大片 | 久久久久五月天 | 欧美精品一二三 | 久久免费激情视频 | 婷婷综合亚洲 | 免费看黄色大全 | 西西大胆免费视频 | 婷婷国产在线观看 | 992tv在线观看网站 | 爱色婷婷| 2021国产在线 | 中文字幕婷婷 | 亚洲三级精品 | 久久免费在线观看视频 | 500部大龄熟乱视频 欧美日本三级 | 欧美日韩国产页 | 成人一区二区在线观看 | 91大神电影 | 国产美女网站视频 | 成人毛片在线观看视频 | 亚洲精品在线电影 | 国产精品日韩久久久久 | 一级精品视频在线观看宜春院 | 奇米网777 | 色婷婷啪啪免费在线电影观看 | 激情综合色图 | 免费成人黄色av | 91亚洲欧美| 免费在线电影网址大全 | 午夜av日韩 | 精品夜夜嗨av一区二区三区 | 在线免费高清 | 久久久国产一区二区三区 | 欧美专区日韩专区 | 奇米影视999 | 久久久在线免费观看 | 日韩有码欧美 | 伊人色综合久久天天 | 色天天综合久久久久综合片 | 麻豆视频免费在线 | 久草在线最新视频 | 黄色精品网站 | 久久久久国产一区二区三区 | 国产精品一区二区三区久久 | 波多野结衣在线播放一区 | 国产精品麻 | 婷婷亚洲激情 | 久久99国产精品久久99 | 日韩在线一区二区免费 | 在线免费观看的av | 99热这里有 | 91在线免费看片 | 免费看十八岁美女 | 欧美先锋影音 | 欧美日韩综合在线观看 | 国产精品免费在线播放 | 中文字幕在线播放一区 | 亚洲国产成人高清精品 | 欧美日韩高清一区二区 | 99在线视频免费观看 | 国产精品久久电影观看 | 在线日韩| 97国产超碰在线 | 操操操操网| 日韩免费观看一区二区 | 91视频午夜 | 中文字幕在线视频一区二区三区 | 热99久久精品 | 日韩v在线91成人自拍 | 亚洲精品久久久久www | va视频在线观看 | 色999五月色 | 在线中文字幕一区二区 | 精品久久久久久久久久 | 国产99在线免费 | 欧美污污视频 | 日韩伦理一区二区三区av在线 | 国产成人一区二区三区久久精品 | 日韩免费成人 | 午夜视频在线观看网站 | 人人插人人艹 | 日韩免费视频播放 | 99久热在线精品视频成人一区 | av大全在线 | 午夜久久网 | 99热999| 精品国产一区二区三区久久影院 | 久久国产美女视频 | 欧美一区二区三区激情视频 | 国产中文字幕国产 | 午夜国产福利在线 | av黄色免费在线观看 | 黄色av一区二区三区 | 精品国产一区二区三区免费 | 午夜性盈盈 | 成人久久久久久久久 | 五月婷婷在线播放 | 91视频在线免费看 | 4438全国亚洲精品观看视频 | 97精品一区二区三区 | 日韩一级理论片 | 99视频精品全部免费 在线 | 亚洲精品网站在线 | 久久天天拍 | 麻豆传媒电影在线观看 | 又色又爽又黄 | av在线网站免费观看 | 美女黄视频免费 | 国产一区二区三区视频在线 | 日日夜夜干 | 亚洲国产日本 | 成人免费大片黄在线播放 | 国产精品久久久久久久久久99 | 亚洲国产人午在线一二区 | 黄色av播放 | 国产视频精品久久 | 免费黄色在线播放 | 日韩免费视频线观看 | 91香蕉视频在线下载 | 亚洲人人网 | 欧美视频在线二区 | 婷婷新五月 | 欧美日韩高清国产 | 在线播放亚洲 | a v在线视频| 久久亚洲人 | 六月丁香激情综合 | 伊人久久国产精品 | 黄色免费观看 | 五月婷婷一区二区三区 | 成 人 黄 色 片 在线播放 | 国产精品久久亚洲 | av品善网| 国产精品久久久久久久久久三级 | 久99久精品视频免费观看 | 九色精品在线 | 91片网 | 久草在线免费看视频 | 狠狠色丁香 | 国产在线播放一区二区三区 | 久久综合激情 | 亚洲五月| 人人舔人人舔 | 欧美极品裸体 | 亚洲激情在线视频 | 91丨精品丨蝌蚪丨白丝jk | 91在线资源| 天天射天天干天天 | 久久久国产精品人人片99精片欧美一 | 色婷婷综合久色 | 色综合久久久 | 成人动漫精品一区二区 | 天天天天爱天天躁 | 久久精品精品 | 日日干,天天干 | 国产精品成人一区二区三区吃奶 | 97视频网址 | 夜夜躁狠狠躁日日躁 | 国产一区二区播放 | 91视频在线免费下载 | 久久看免费视频 | 欧美在线视频一区二区三区 | 国产高清中文字幕 | 日韩久久精品一区二区三区下载 | 久碰视频在线观看 | 久久久免费精品国产一区二区 | 国产成人精品午夜在线播放 | 99免费看片 | 热久久国产精品 | 亚洲精品免费在线播放 | 亚洲区视频在线 | 福利电影一区二区 | 五月婷婷色丁香 | 黄色看片| 亚洲一级片在线看 | 国产三级午夜理伦三级 | 婷婷中文字幕 | 日本中文字幕在线播放 | 国产对白av | 免费午夜视频在线观看 | 丝袜美女视频网站 | 久久这里只有精品23 | 激情婷婷在线观看 | 91激情小视频| 天天草网站 | 国产精品二区在线观看 | 国产精品乱码高清在线看 | 久久婷婷一区 | 欧美精品午夜 | 国产精品亚洲人在线观看 | 91完整版观看 | 人人狠狠综合久久亚洲 | 成人欧美亚洲 | 免费看黄色毛片 | 日韩午夜在线播放 | 91最新网址在线观看 | adn—256中文在线观看 | 中文字幕久久网 | 天天干,夜夜操 | 91天天操 | 亚洲涩涩网站 | 精品久久久久久亚洲综合网 | 91高清免费看 | 国产精美视频 | 性色av一区二区 | 国产精品久久久久久久久久久久冷 | 久久久在线 | 国产日韩欧美在线一区 | 日韩成人免费观看 | 久久国产经典 | 免费观看午夜视频 | 国产第一页在线播放 | www久久精品 | 贫乳av女优大全 | 久久久久久久久久久综合 | 欧美日韩中文字幕综合视频 | 国产福利91精品一区二区三区 | 91丨九色丨国产丨porny精品 | 草在线视频 | av在线免费观看不卡 | 国精产品一二三线999 | 成年人免费在线 | av黄色免费在线观看 | 久久久久久久毛片 | 日韩视频中文字幕在线观看 | 在线色资源 | 成人黄色电影视频 | 99免在线观看免费视频高清 | 欧美国产一区在线 | 天天插天天干天天操 | 欧美小视频在线 | 欧美一级视频一区 | 久久国产精品视频 | 天天干天天干天天 | 最近更新中文字幕 | 国产欧美中文字幕 | 激情在线网址 | 中文字幕精品一区二区精品 | 欧美电影黄色 | 人人干,人人爽 | 丝袜少妇在线 | av中文字幕在线免费观看 | 亚洲国产中文字幕在线 | 国产字幕在线播放 | 欧美色婷| av免费在线播放 | 成人av免费在线 | 伊人中文在线 | 国产亚洲精品久久久久久网站 | 91午夜精品| 黄色毛片在线看 | 国产高清免费在线播放 | 国产欧美最新羞羞视频在线观看 | 欧美大片mv免费 | 亚洲综合视频在线观看 | 午夜三级毛片 | av成人动漫在线观看 | 国产亚洲成av人片在线观看桃 | 精品国产一区二区三区四区vr | 精品久久一区二区三区 | 国产视频日韩视频欧美视频 | 欧美日韩国产综合网 | av高清不卡| av在线免费在线 | 欧美日韩综合在线 | 国产传媒中文字幕 | 精品国产免费一区二区三区五区 | 懂色av一区二区在线播放 | 国产精品久久伊人 | 99精品系列 | 免费高清av在线看 | 久久久三级视频 | 精品999久久久 | 亚洲高清资源 | 不卡在线一区 | 国产午夜一区 | 日韩欧美在线高清 | 热精品 | 97超碰在线视 | 天堂久色 | av三级在线免费观看 | 在线视频 日韩 | 国产成人久久 | 亚洲精品一区二区三区新线路 | 91插插视频 | 99热这里只有精品免费 | 日韩欧美在线一区 | 成片免费 | 成人作爱视频 | 91九色视频在线观看 | 99性视频| 天天干天天干天天干天天干天天干天天干 | 日韩在线观看第一页 | 久久精品2 | 国外成人在线视频网站 | 免费观看福利视频 | 成人av影院在线观看 | 在线黄av| 91完整版在线观看 | 91麻豆精品| 亚洲女欲精品久久久久久久18 | 婷婷久月 | 国内综合精品午夜久久资源 | 国产护士hd高朝护士1 | 国产成人一区二区三区电影 | 欧美日韩在线视频一区 | 2023年中文无字幕文字 | 99久高清在线观看视频99精品热在线观看视频 | 九九热99视频 | 97热视频 | 婷婷在线免费 | 久草精品视频 | 精品一区二区三区电影 | 99久久99视频 | 日韩婷婷 | 精品一区二区影视 | 91成人网在线观看 | 日韩极品在线 | 2019精品手机国产品在线 | 国内精品久久久久影院优 | 成人久久18免费网站 | 成人超碰在线 | 久久99国产精品久久 | 精品国产视频在线观看 | 日韩精品最新在线观看 | 久久综合中文字幕 | 97超视频免费观看 | 激情综合色综合久久 | 亚洲视频免费在线观看 | 成人免费网站视频 | 精品福利在线视频 | 最近中文字幕高清字幕免费mv | 日韩免费电影网 | 精品一区二区视频 | 国产精品21区 | av先锋中文字幕 | 成人欧美日韩国产 | 日韩网站免费观看 | 91色综合| 国产精品一区二区果冻传媒 | 国产精品午夜久久久久久99热 | 国产精品美女久久久久久久久久久 | 国产精品福利在线播放 | 91久久久久久久一区二区 | 99久久999久久久精玫瑰 | 天天操天天摸天天干 | 91人网站 | 天天操天天摸天天射 | 在线观看一 | av一区二区三区在线播放 | 欧美男女爱爱视频 | 日韩在线视 | 97超碰在线资源 | 日韩激情影院 | 欧美一区二区三区在线看 | 亚洲国产片 | 午夜精品视频一区 | 激情丁香| 欧美黄在线 | av再线观看| 97成人资源站 | 天天色天天综合网 | 日韩免费成人av | 97精品视频在线 | 99热精品国产 | 天天操天天射天天爱 | 婷婷综合av | 国产精品嫩草69影院 | 伊人久久影视 | 丁香五婷| 激情欧美一区二区三区 | 中国一级片免费看 | 91在线porny国产在线看 | 在线观看小视频 | 九九热精品视频在线观看 | 亚洲欧美成人 | 亚洲欧美成人网 | 成人黄大片视频在线观看 | 中文字幕在线播放一区 | 免费看日韩 | 中文字幕资源在线观看 | 日日摸日日添日日躁av | 久久人网 | 91在线最新| 一区二区三区在线视频111 | 久久综合中文字幕 | 午夜在线日韩 | 国产精品毛片一区二区 | 在线观看色网 | 99免费在线视频 | 日韩精品中文字幕在线不卡尤物 | 国产视| 麻豆传媒在线免费看 | 久草在线视频在线 | 夜色成人av | 91av短视频 | 国色天香在线 | 97超碰中文字幕 | 午夜精品一区二区三区在线播放 | 亚洲精品玖玖玖av在线看 | 精品国产一区二 | www视频在线免费观看 | 国产一级二级三级视频 | 看片一区二区三区 | 精品国产欧美一区二区三区不卡 | 三上悠亚一区二区在线观看 | 国产91对白在线 | av电影免费看 | 中文字幕免费久久 | 免费观看一区二区三区视频 | 国模精品一区二区三区 | 一区三区在线欧 | 亚洲男男gⅴgay双龙 | 手机在线观看国产精品 | 国产精品99精品久久免费 | 欧美日韩国产mv | 色激情在线| 欧美精品一区二区免费 | 欧美日韩高清一区二区 国产亚洲免费看 | 色999视频 | 伊人色综合网 | 中文字幕国内精品 | 人人插人人澡 | 粉嫩aⅴ一区二区三区 | 久久五月婷婷丁香 | 久久久久成人精品亚洲国产 | 亚洲视频免费在线看 | 一区精品在线 | 在线99| 国产成人99久久亚洲综合精品 | 欧美性成人| 一区二区三区四区精品视频 | 午夜精品一区二区三区视频免费看 | 天天操 夜夜操 | 久久综合久久伊人 | 欧美在线观看视频免费 | 99久久精品国产免费看不卡 | 日本久久精 | 亚洲国产网站 | 国产黄色精品 | 亚洲成人免费在线观看 | 7777精品伊人久久久大香线蕉 | 91麻豆精品国产自产在线游戏 | 伊人色综合久久天天 | 欧美在线视频不卡 | 午夜私人影院久久久久 | 国产很黄很色的视频 | 亚洲国产中文字幕 | 天天干 天天摸 天天操 | a视频在线 | 亚洲欧美日本一区二区三区 | 毛片精品免费在线观看 | 成人精品亚洲 | 91网站在线视频 | 欧美一级艳片视频免费观看 | 综合激情| 国产福利免费在线观看 | 中文字幕色播 | 91人网站| 成人一级免费电影 | 五月婷婷开心中文字幕 | 免费观看国产精品视频 | 欧美日韩精品影院 | 中文av字幕在线观看 | 91精品啪 | 一级c片| 五月天色中色 |