SSM框架简介,PPT,查询功能,dbcp数据库连接池,interface接口,service【诗书画唱】
个人小总结&我的奇妙比喻:Spring容器就像是“天降”,"new"关键字就像是”青梅“,项目就是”竹马“,”青梅“敌不过“天降”。或者说,Spring等框架就是取代被渐渐跟不上与满足不了高效需要的老一辈的“new”的新生代。Spring容器,框架等等就是欺负“new”关键字等等的家伙, 把“new”关键字等等都“赶尽杀绝”,取代,“谋权篡位”,赶走等的“好家伙”(其实很多新老技术等等的关系都可以用我这些的奇妙比喻来解释)。
个人感悟:淦!目前每天学习,写代码等等都要耗费我大半天,害得我高创视频,高创原创音乐作品,高创翻唱歌曲,高创动漫等等一直没时间做!以后努力多创作更多更高创的作品!
概括:
SSM框架简介
边看教程视频边记录的学习笔记
Mybatis框架中XXXSqlMap.xml映射文件的namespace的接口等的设置
映射文件中的namespace中写的类的全路径不可以写错,必须要存在,不然会报错
Userinfo等interface接口中代码的作用是:获取其接口的“实现类”
实现查询功能
实现新增功能
insert语句新增时,要通过使用序列来给id列赋值
个人对dbcp数据库连接池的理解
只要配置文件的value设置中出现“classpath”的部分,就说明其mybatis.xml等的部分的文件是放在src的目录下的文件。
个人理解:ref=“XXX”就是引用id为“XXX”的bean标签等的部分
这里的value=“XXX/XXX/XXX”的意思是:要扫码XXX/XXX/XXX这个目录下的习惯命名为XXXDao格式等的interface接口
配置习惯命名为XXXDao格式的interface接口的实现类
千万要记住导入的dbcp数据库连接池的包
个人理解这里不报空指针异常的原因是:@Autowired注解自动把实现类注入到userinfoDao接口中
我创建test类等等是为了测试Spring MVC框架等是否被我使用成功
界面跳转成功说明Spring MVC框架被我成功整合到项目里面了,也就是说被我使用成功了
个人理解:要特别注意的是,在service中的属性名要是首字母被改成小写字母的接口名,因为这个项目使用了ByName的自动注入,不这样的话,就可能发生“识别等错误,找不到”等的错误,就会发生报错。
SSM框架中的查询部分
在controller中调用service中的方法
6、SPRING框架_集成.ppt
讲义
例子记录
例子记录的运行效果
例子记录的Oracle数据库部分
运行项目的方法

SSM框架简介 START
SSM(Spring+SpringMVC+MyBatis,或说SSM是Springmvc+Springcore+Mybatis,曾经问过老师,他的理解:Springcore框架就是Spring框架。)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

SSM框架简介 END
边看教程视频边记录的学习笔记 START
个人理解:集成框架就是多个框架整合而成的框架。
Bootstrap类似于easyui,都是用于写界面更美观和方便高效的。



实现查询功能 START







实现查询功能 END
实现新增功能 START


实现新增功能 END





个人对dbcp数据库连接池的理解:dbcp数据库连接池会在空闲的时候创建对象,在要用的时候就是会从dbcp数据库连接池中调用,不用时就是会“销毁”,把数据“还回”到dbcp数据库连接池中,这样调用等的时间就会变很短,项目运行的时间会因为使用了dbcp数据库连接池而变得更短,就变得更高效。现在做得项目很小,访问量不很大,感觉优点不明显,一但做每天访问量很大,比如淘宝网每天一亿访问量等的项目时,其dbcp数据库连接池的优点就变得更明显了。

在使用Spring Core框架后就可以不用写session的部分,其session的部分实现的功能的代码就是写在配置文件中了。


只要配置文件的value设置中出现“classpath”的部分,就说明其mybatis.xml等的部分的文件是放在src的目录下的文件。

只要配置文件的value设置中出现“classpath”的部分,就说明其mybatis.xml等的部分的文件是放在src的目录下的文件。


个人理解:ref=“XXX”就是引用id为“XXX”的bean标签等的部分(ref表明使用了setter注入中的引用注入)


这里的value=“XXX/XXX/XXX”的意思是:要扫码XXX/XXX/XXX这个目录下的习惯命名为XXXDao格式等的interface接口





个人理解这里不报空指针异常的原因是:@Autowired注解自动把实现类注入到userinfoDao接口中

个人理解这里不报空指针异常的原因是:@Autowired注解自动把实现类注入到userinfoDao接口中



界面跳转成功说明Spring MVC框架被我成功整合到项目里面了,也就是说被我使用成功了




个人理解:要特别注意的是,在service中的属性名要是首字母被改成小写字母的接口名,因为这个项目使用了ByName的自动注入,不这样的话,就可能发生“识别等错误,找不到”等的错误,就会发生报错。


SSM框架中的查询部分 START





SSM框架中的查询部分 END
边看教程视频边记录的学习笔记 END
6、SPRING框架_集成.ppt
















SPRINGMVC框架
集成
概述
springmvc整合mybatis框架
Springmvc和mybatis框架整合
步骤一:创建一个javaweb项目。
步骤二:导入mybatis框架包、日志包log4j.jar和数据库驱动包(本例中使用oracle数据库)。
步骤三:在src目录下创建mybatis.xml主配置文件、db.properties数据库配置文件以及log4j.properties日志文件(能够打印后台sql语句)。
步骤四:在oracle数据库中创建一个测试表,对mybatis框架进行测试。
Springmvc和mybatis框架整合
步骤五:创建实体类net.jy.bean.Mytest。
Springmvc和mybatis框架整合
步骤六:创建映射文件net.jy.dao.MytestMapper.xml和对应的接口MytestMapper类。
Springmvc和mybatis框架整合
步骤七:修改mybatis.xml文件注册映射接口并在一个main方法中进行测试。
Springmvc和mybatis框架整合
步骤八:接下来我们需要对springcore框架和mybatis框架进行整合。导入springcore框架包和两个框架的整合包mybatis-spring-1.2.3.jar。
步骤九:修改web.xml文件,添加spring监听器。
Springmvc和mybatis框架整合
步骤十:创建TestBean类,并在WEB-INF/applicationContext.xml文件中注册该类。
Springmvc和mybatis框架整合
步骤十一:创建一个servlet类,在servlet中调用TestBean中的say方法。
Springmvc和mybatis框架整合
步骤十二:导入mybatis-spring-1.2.3.jar整合包,修改applicationContext.xml文件。同时要导入dbcp数据库连接池包commons-dbcp-1.2.jar。
Springmvc和mybatis框架整合
步骤十二:修改applicationContext.xml文件。
Springmvc和mybatis框架整合
步骤十三:修改mybatis.xml文件,现在mybatis的session对象已经交给spring容器管理了。
Springmvc和mybatis框架整合
步骤十四:修改TestBean中的代码。
Springmvc和mybatis框架整合
步骤十五:再次运行TestServlet,观察运行效果。现在我们的jdbc编程完全不需要写连接语句了。
Springmvc和mybatis框架整合
步骤十六:在WEB-INF目录下创建springmvc-servlet.xml文件。并且导入springmvc的框架包。
Springmvc和mybatis框架整合
步骤十七:修改web.xml文件,添加springmvc框架配置。
Springmvc和mybatis框架整合
步骤十八:创建net.jy.controller.TestController类,同时创建WEB-INF/page/index.jsp页面进行mvc框架测试。
Springmvc和mybatis框架整合
步骤十八:创建net.jy.controller.TestController类,同时创建WEB-INF/page/index.jsp页面进行mvc框架测试。
Springmvc和mybatis框架整合
步骤十九:修改springmvc-servlet.xml配置文件。
Springmvc和mybatis框架整合
步骤二十:修改MytestMapper接口中的代码。
注意:@Repository(value="userDao")注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,Spring把创建好的userDao注入给Service即可。
Springmvc和mybatis框架整合
步骤二十一:创建net.jy.service.PubService类。
注意:@Service("userService")注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService",这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的"userService",然后注入给Action。
Springmvc和mybatis框架整合
步骤二十二:修改TestController类。
Springmvc和mybatis框架整合
步骤二十三:重启工程,进行测试。
Springmvc和mybatis框架整合
步骤二十四:修改MytestMapper类,添加一个新增的方法。
Springmvc和mybatis框架整合
步骤二十五:修改MytestMapper配置文件,配置新增的方法的xml。
Springmvc和mybatis框架整合
步骤二十六:修改PubService类,添加register方法。
Springmvc和mybatis框架整合
步骤二十七:修改TestController类,添加reg方法。重启工程,访问这个路径会发现,id为4的数据并没有插入到数据库。这是因为事务没有提交。
Springmvc和mybatis框架整合
步骤二十八:下面给PubService类添加事务管理。在applicationContext.xml的beans标签中添加如如下的三行代码(tx)。
Springmvc和mybatis框架整合
步骤二十九:在applicationContext.xml配置文件中添加如下的代码。
Springmvc和mybatis框架整合
步骤三十:在springmvc-servlet.xml配置文件中修改配置代码。将上面的代码替换成下面的代码
Springmvc和mybatis框架整合
步骤三十一:修改TestController类,代码如下:
Springmvc和mybatis框架整合
步骤三十二:修改PubService类,添加一个@Transactional注解:
Springmvc和mybatis框架整合
步骤三十二:进行事务测试
6、SPRING框架_集成.ppt
讲义 START

集成框架:在项目中同时引入三个框架
Springmvc+Springcore+Mybatis
Oracle数据库
Bootstrap库

讲义 END
例子记录 START

package com.SSHC.bean;
import java.util.Date;
public class Userinfo {
private Integer id;
private String act;
private String pwd;
private Date birth;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAct() {
return act;
}
public void setAct(String act) {
this.act = act;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
}


package com.SSHC.controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.SSHC.service.PubService;
@Controller
public class TestController {
@Resource
private PubService pubService;
//http://localhost:8080/SSM1/test
@RequestMapping("test")
public String hello(){
pubService.testSv();
return "test";
}
}


package com.SSHC.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.SSHC.bean.Userinfo;
@Repository
public interface UserinfoDao {
List<Userinfo> selectAll();
Integer add(Userinfo u);
}


<?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">
<!-- namespace不能乱写,必须写成UserinfoDao接口的全路径 -->
<mapper namespace="com.SSHC.dao.UserinfoDao">
<resultMap type="Userinfo" id="rmUserinfo">
<id property="id" column="ID"/>
<result property="act" column="ACT"/>
<result property="pwd" column="PWD"/>
<result property="birth" column="BIRTH"/>
</resultMap>
<select id="selectAll" resultMap="rmUserinfo">
select * from userinfo
</select>
<!-- public Integer add(Userinfo u) -->
<insert id="add" parameterType="Userinfo">
insert into userinfo values
(seq_userinfo.nextval,#{act},#{pwd},#{birth})
</insert>
</mapper>



package com.SSHC.service;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.SSHC.bean.Userinfo;
import com.SSHC.dao.UserinfoDao;
@Service
public class PubService {
//属性名就是接口名的首字母改成小写
@Resource
private UserinfoDao userinfoDao;
public void testSv(){
List<Userinfo>list = userinfoDao.selectAll();
for(Userinfo u : list) {
System.out.println(u.getAct());
}
}
}

package com.SSHC.test;
import java.io.IOException;
import java.io.Reader;
import java.util.Date;
import java.util.List;
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 com.SSHC.bean.Userinfo;
import com.SSHC.dao.UserinfoDao;
public class Test {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Reader reader = Resources.getResourceAsReader("mybatis.xml");
SqlSessionFactory factory =
new SqlSessionFactoryBuilder().build(reader);
SqlSession session = factory.openSession();
UserinfoDao userinfoDao =
session.getMapper(UserinfoDao.class);
// List<Userinfo>list = userinfoDao.selectAll();
// for(Userinfo u : list) {
// System.out.println(u.getAct());
// }
Userinfo user = new Userinfo();
user.setAct("诗书画唱");
user.setPwd("666666");
user.setBirth(new Date());
Integer count = userinfoDao.add(user);
System.out.println(count);
session.commit();
}
}


package com.SSHC.test;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.SSHC.bean.Userinfo;
import com.SSHC.dao.UserinfoDao;
public class TestBean {
@Autowired
/*wired:有线的。
英 [ˈwaɪəd]美 [ˈwaɪərd]
adj.
联网的;利用计算机收发信息的;焦虑的;紧张的;
不安的;有线的;受毒品(或酒精)影响的;吸了毒的;喝醉了的
*/private UserinfoDao userinfoDao;
public void say(){
List<Userinfo>list = userinfoDao.selectAll();
for(Userinfo u : list) {
System.out.println(u.getAct());
}
}
}


package com.SSHC.test;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* Servlet implementation class TestServlet
*/
@WebServlet("/ts")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//获取spring容器
ServletContext sc = this.getServletContext();
WebApplicationContext wac = WebApplicationContextUtils
.getWebApplicationContext(sc);
TestBean tb = (TestBean) wac.getBean("tb");
tb.say();
}
}


oracle_drivername=oracle.jdbc.driver.OracleDriver
oracle_url=jdbc:oracle:thin:@localhost:1521:orcl
oracle_username=X
oracle_password=sshcPwd


log4j.rootLogger=DEBUG,Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d[%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG


<?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>
<typeAliases>
<!-- Aliases:别名[ˈeɪlɪæsɪz]
configuration
英[kənˌfɪɡəˈreɪʃn]
美[kənˌfɪɡjəˈreɪʃn]
n. 布局; 结构; 【构造】;
格局; 形状; (计算机的)配置
注:【】中的内容是我认为有目前我要知道的重要意思之一。-->
<package name="com.SSHC.bean"/>
</typeAliases>
</configuration>


<?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:mvc="http://www.springframework.org/schema/mvc"
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-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<bean id="tb" class="com.SSHC.test.TestBean"></bean>
<!-- 引入db.properties文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:db.properties"/>
</bean>
<!--数据库连接池配置-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${oracle_drivername}"/>
<property name="url" value="${oracle_url}"/>
<property name="username" value="${oracle_username}"/>
<property name="password" value="${oracle_password}"/>
</bean>
<!-- 创建sqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定数据源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 指定mybatis框架主配置文件的位置 -->
<property name="configLocation" value="classpath:mybatis.xml"/>
<!-- 自动扫描mapping.xml文件,**表示迭代查找 ,,也可在mybatis.xml中单独指定xml文件 -->
<property name="mapperLocations" value="classpath:com/SSHC/dao/*.xml"/>
</bean>
<!-- 自动扫描com/SSHC/dao下的所有dao接口,并实现这些接口,
可直接在程序中使用dao接口,不用再获取sqlsession对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- basePackage 属性是映射器接口文件的包路径。
你可以使用分号或逗号 作为分隔符设置多于一个的包路径-->
<property name="basePackage" value="com/SSHC/dao"/>
<!-- 因为会自动装配 SqlSessionFactory和SqlSessionTemplate
所以没有必要去指定SqlSessionFactory或 SqlSessionTemplate
因此可省略不配置;
但是,如果你使用了一个以上的 DataSource,那么自动装配可能会失效。
这种情况下,你可以使用sqlSessionFactoryBeanName或sqlSessionTemplateBeanName属性
来设置正确的 bean名称来使用 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
</beans>

<?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: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-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<!-- 扫描@Controller注解 -->
<context:component-scan base-package="com.SSHC.dao,com.SSHC.service,com.SSHC.controller"/>
<!-- 默认注册RequestMappingHandlerMapping和RequestMappingHandlerAdapter类 -->
<mvc:annotation-driven />
<!-- jsp引用外部js,css等静态资源的解决方法(和上面的标签必须同时出现,否则无法访问url) -->
<mvc:default-servlet-handler />
<!-- 配置视图名称解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- 前缀 -->
<!-- 将所有的jsp文件存放在/WEB-INF/my/目录下 -->
<property name="prefix" value="/WEB-INF/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
<!-- 优先级设定 -->
<property name="order" value="10"></property>
</bean>
</beans>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base hreff="<%=basePath%>">
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<h1>测试成功</h1>
</body>
</html>


<?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>SSM1</display-name>
<!-- springcore框架配置 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- controller中文乱码处理,注意一点:要配置在所有过滤器的前面 -->
<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>/*</url-pattern>
</filter-mapping>
<!-- springmvc框架配置 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>





例子记录的Oracle数据库部分:
--drop table Userinfo
create table Userinfo(
id number primary key,
act varchar2(30) not null,
pwd varchar2(30) not null,
birth date
);
--drop sequence seq_Userinfo
create sequence seq_Userinfo
start with 1 --起始值是1
increment by 1 --增长的值
maxvalue 999999999 --序列号的最大值
minvalue 1 --序列号的最小值
nocycle --是否循环
cache 10; --预存
insert into Userinfo values(seq_Userinfo.nextval,'黑黑','pwd1',to_date('2020-06-06','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'红红','pwd2',to_date('2020-06-07','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'蓝蓝','pwd3',to_date('2020-06-08','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'666','pwd4',to_date('2020-06-06','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'999','pwd5',to_date('2020-06-10','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'888','pwd6',to_date('2020-06-11','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'诗书画唱','pwd4',to_date('2020-06-06','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'三连','pwd5',to_date('2020-06-10','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'关注','pwd6',to_date('2020-06-11','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'诗书画唱1','pwd4',to_date('2020-06-06','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'诗书画唱2','pwd4',to_date('2020-06-06','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'诗书画唱3','pwd4',to_date('2020-06-06','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'诗书画唱4','pwd4',to_date('2020-06-06','yyyy-mm-dd'));
insert into Userinfo values(seq_Userinfo.nextval,'诗书画唱5','pwd4',to_date('2020-06-06','yyyy-mm-dd'));
--select * from Userinfo
运行项目的方法:

