SSM框架的使用(上)
使用准备
1. 新建一个实体类
构造方法除了一个无参数的构造之外,我又创建了一个
总成绩可以算出来,排名也不用自己赋值,getter和setter方法暂时没有特殊要求(其实还有一些细节但影响不大)
2. 根据实体类在数据库中创建表项
记住自己创建的数据库名(下面会用到),表名student ,studnet表中属性名尽量与实体类的名字一致,不一致的话后面可以自己建立映射关系,但类型必须一致。
弄完之后向里面添加一条数据。
3. 引入相应的jar包
一共27个,在此对jar包的引入就不说明了,把jar包放在WEB-INF的lib目录下就行了。
它们的作用介绍
4. 编写配置文件
在项目中新建一个resources资源目录,这个目录放入配置文件
- application-jdbc.xml 这个是spring配置信息
- database.properties 这个是数据库信息
- log4j.properties 这个是日志输出的信息,你要不使用日志输出可以不弄,但建议使用
- mybatis-config.xml 这个是Mybats中的配置信息
- springmvc-servlet.xml 这个是springmvc的配置信息
先从简单的走起:
4.1 database.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/studentscoremanager?useUnicode=true&characterEncoding=utf-8
user=root
password=123456
studentscoremanager 这个是我的数据库名(在mysql中建立数据库的名字)
我的用户名为root,mysql的密码是123456,这几个都需要改成自己的。
4.2. log4j.properties
这个也很固定,有的话就不用改了(日志能正常输出)
log4j.rootLogger=DEBUG,CONSOLE,file
log4j.logger.org.mybatis=DEBUG
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.java.sql.ResultSet=debug
log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=error
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=error
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n
log4j.logger.com.opensymphony.xwork2=error
4.3 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>
<!--类型别名 -->
<typeAliases>
<package name="cn.studentManager.pojo"/>
</typeAliases>
</configuration>
就是在cn.studentManager.pojo路径下的类(我的实体类Student就在这里)我直接可以使用类名,就不用再添加路径了(在Mapper文件sql语句中)
4.4 aplication-jdbc.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:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- 读取数据库配置文件-->
<context:property-placeholder location="classpath:database.properties"/>
<!-- JNDI获取数据源(使用dbcp连接池) -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${user}" />
<property name="password" value="${password}" />
</bean>
<!-- 配置SqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 引用数据源组件 -->
<property name="dataSource" ref="dataSource" />
<!-- 引用MyBatis配置文件中的配置 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<!-- 这下面的内容需要等到写完 dao 和 service 之后再加入-->
<!-- 自动查找Mapper,自动注册对应的MapperFactoryBean对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.studentManager.dao"/>
</bean>
<!-- 配置扫描注解定义 -->
<!-- 让spring扫描指定包下的所有类,如果扫描到 @Component、@Service、、@Repository等这些注解的类,则自动把这些类标注为Bean组件 -->
<!-- <context:component-scan base-package="cn.student.dao"/> -->
<context:component-scan base-package="cn.studentManager.service"/>
</beans>
5. 开始使用
springmvc-servlet.xml等到以后的时候我们再进行说明
在StudentMapper.java中我定义了一个接口,这个接口是用来查找所有的学生信息
在StudentMapper.xml中接口实现,注意xml文件名和接口名必须一样
在StudentService.java中我定义了一个接口
在StudentServiceImp.java中我遵从这个接口,然后在这里面调用StudentMapper中的查询方法,并将查询到的数据进行返回。
【 注意】在类上面有@Service的注解,会被Spring注册成Bean组件
6. 测试
在StudentTest中编写测试代码,并运行
结果:
出现这样的结果就证明可以了,后续我会涉及Spring mvc的部分。如果以上代码或内容有错误请提醒一下我,我会继续订正,谢谢!