中软国际(宁波)实习第四天上午学习记录(主要内容:利用IDEA+Maven+SSM框架实现的简单的数据库数据读取并显示)
本文记述今天上午实习所学习的内容:利用IDEA+Maven+SSM框架实现的简单的数据库数据读取并显示
使用的软件:
- IntelliJ IDEA 2018.2.2 x64
- jdk1.8
- apache-tomcat-7.0.94
- apache-maven-3.6.0
- Webyog-SQLyog-Ultimate12.0.8.0
- mysql-5.5.58-winx64
前提:已将Maven项目创建好。
创建数据库:
表的情况如下图
修改项目中的pom.xml文件:
修改内容为修改properties和dependencies,将原文件中的内容替换为下面的内容,这样可以设置号版本号和引用的jar包。需要注意的是:下面的dependencies粘贴之后有可能会报红,出现这个的原因是对应jar包没有下载好,等待它自动下载完毕即可(自动下载好像需要在创建项目后设置好)。
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <!-- spring版本号 --> <spring.version>5.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> <c3p0.version>0.9.5.2</c3p0.version> <taglibs.version>1.1.2</taglibs.version> </properties> <dependencies> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- JSTL标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- 日志文件管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- 数据连接池 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>${c3p0.version}</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>${taglibs.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- 导入servlet-api/jsp --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> <scope>provided</scope> </dependency> </dependencies>
创建java目录:
在main目录下创建java文件和resource文件,将两者分别设置为Rourses Root和Resources Root(设置前者是因为这样设置才可以在它下面创建.java文件,设置后者是因为要把它当作配置文件来读),如下图
接着在名为java的包下面创建组织名目录(abc是我瞎取的),再在下面创建bean、control、dao、service四个包(忽略bean和dao下面的文件,那些是后面才生成的)
接下来在bean中创建UserInfo.class,这个实体类对应了数据库中的记录,所以这个类的数据成员与数据库中userinfo表中的参数相对应。因此创建好文件后,在类中写入数据成员,并用generate生成get、set方法和toString方法即可。
定义对User进行数据库操作的接口
然后在dao文件夹中创建IUserDao.class,在这里面定义对User进行数据库操作的接口。如下图
用UserMapper.xml文件实现IUserDao接口中的方法
接着在resources文件下创建包mapper,接着在mapper中创建包文件UserMapper.xml,接下来将用UserMapper.xml文件实现IUserDao接口中的方法。
在UserMapper中填写如下内容,头和尾是mapper文件需要写的,中间的部分用来实现上面findAll的方法。mapper namespace指定所实现的接口,select id指定实现的方法,resultType指定返回类型,中间部分写的sql语句。
<?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="abc.dao.IUserDao" > <select id="findAll" resultType="abc.bean.UserInfo"> select * from userinfo </select> </mapper>
写配置文件
接下将applicationContext.xml(用来配置数据库),db.properties(用来配置数据库url和username还有password和驱动信息),log4j.properties(一些日志信息)文件粘贴到resource文件夹下(这三个文件老师已经帮我们写好),并将db.propertiss中的username和password改为自己的,再将applicationContext.xml中一些组织名改成自己的。
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: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-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> <!-- 1.配置数据库相关参数properties的属性:${url} --> <context:property-placeholder location="classpath:db.properties"/> <!-- 2.配置数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="maxPoolSize" value="30"/> <property name="minPoolSize" value="2"/> </bean> <!-- 3.配置SqlSessionFactory对象 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入数据库连接池 --> <property name="dataSource" ref="dataSource"/> <!-- 扫描bean包 使用别名 --> <property name="typeAliasesPackage" value="abc.bean"></property> <!--配置加载映射文件 UserMapper.xml--> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!-- 自动生成dao,mapper--> <!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 给出需要扫描Dao接口包 --> <property name="basePackage" value="abc.dao"/> <!-- 注入sqlSessionFactory --> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> <!--自动扫描--> <context:component-scan base-package="abc"/> <!-- 配置事务--> <!-- 5.配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 6.开启事务注解--> <tx:annotation-driven></tx:annotation-driven> </beans>
db.properties文件内容如下
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/idea?useSSL=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=123
log4j.properties文件内容如下
# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
实现Service
接着在service包下新建IUserService.class,用来创建服务接口。如下图
然后在service包下新建一个名为impl的包,并在包中新建一个UserServiceImpl.class文件,用以实现上面的接口类。文件主要内容如下
@Service//将UserServiceImpl存入Spring public class UserServiceImpl implements IUserService { @Autowired//从Spring中取一个对象 IUserDao userDao; @Override public List<UserInfo> findAll() { return userDao.findAll(); } }
@Autowired是Spring的注解,加上之后可以让IUserDao对象从Spring中取,这里可以取,是因为它在UserMapper.xml和applicationContext.xml中有设置。@Service的作用则是将UserServiceImpl类放入Spring中,否则接下来无法把它从Spring中取出。
写页面文件
接着在webapp目录下新建名为jsp的目录,然后将addUser.jsp,allUser.jsp,updateUser.jsp粘贴到此目录下(老师已经帮我们写好了)。这些是接下来的页面文件。
然后在controller目录下创建UserController.class文件,此类用于控制页面的跳转,内容如下,这个类需要注意的比较多,需要说明的我都写在注释上了。
@Controller//用来将此类放入Spring中 @RequestMapping("user")//这个注解用于类上,应该表示可以用“user”来访问此类 public class UserController { @Autowired//由于前面将IUserService放入Spring中了,所以这里可以用这个注解取它 private IUserService userService; @RequestMapping("/findAll.do")////这个注解用于方法上,应该表示可以用“findAll.do”来访问此方法 public ModelAndView findAll()//展示所有数据 { List<UserInfo> userinfos = userService.findAll(); ModelAndView mv = new ModelAndView();//相当于一个容器,放入得到的数据,之后再取出 mv.addObject("ui",userinfos);//这里将得到的数据放入mv。第一个参数名字可以取别的,但是要与后面的对应上 mv.setViewName("allUser");//这个函数决定跳转到哪里,参数即是跳转到的页面 return mv; } }
写spring-mvc.xml文件
接下来将spring-mvc.xml粘贴到resource包中(文件老师已经写好),并改写一些组织名即可
spring-mvc.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:mvc="http://www.springframework.org/schema/mvc" 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-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> <!-- 1.注解扫描位置--> <context:component-scan base-package="abc.controller" /> <!-- 2.配置映射处理和适配器--> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> <!-- 3.视图的解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
到目前为止的部分文件结构如下:
加载tomcat
首先点击菜单run,选中Edit Configuration,如下图
接着点击加号,选中Tomcat Server->Local(找不到Tomcat Server可以选中item more),如下图
接着在Server选项卡中设置Application server,选中自己安装的Tomcat,如下图
接着在Deployment中添加deploy,通过点击加号,之后选择Artifact,接着添加ssm2:war exploded,添加完之后如下图,之后点击OK
接着运行项目,得到如下结果
接着点击”查询所有用户“,页面转换如下图
正确读取数据库中的数据。
- 中软国际(宁波)实习第五天上午学习记录(主要内容:IDEA+Maven+SSM框架实现的登陆功能)
- VUE+SSM 以VUE做项目前端,SSM做后端框架,难点在于数据的传输处理,下面我记录一下一个简单的登录退出功能的实现,如果有缺陷还请大佬指出,个人菜鸟 一个,正在学习当中,以此记录一下自己的学习
- 中软国际(宁波)中软实习第七日上午学习记录(主要内容:权限控制、springSecurity)
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)
- SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- 使用IDEA利用Maven创建SSM项目并且实现简单的注册功能
- xml学习(三)---利用xml文件实现数据岛功能(网页显示xml文件中的内容免C#代码操作xml文件)
- SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- 【原创】SSH开发框架中,实现系统启动加载类,读取数据库常用数据进入内存,利用Spring托管,并完成reload功能
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)
- 详细记录->使用Maven+SSM框架,实现单表简单的增删改查
- (超详细、适合新手入门)IDEA+Maven 整合SSM框架实现简单的增删改查
- IDEA+Maven 整合SSM框架实现简单的查询
- 从数据库中读取出的数据如何在GridView显示成我们所需要的内容?
- Android利用Spinner从数据库中读取数据并实现2级互动
- Html5——indexedDB数据库学习记录5之【利用索引获取数据】
- android学习记录(三)百度地图错误---手机显示只有一个框架,没有地图内容。