文章目录

  • 一、创建所需文件夹target、java、resource等如图(一)所示
  • 二、代码
    • 2.1pojo.Paper:
    • 2.2dao.PaperDao:
    • 2.3service.PaperService(与dao层唯一不同的点是注解不同这里是@service,dao层是@component):
    • 2.4service.impl.PaperServiceImpl:
    • 2.5db.properties(实现jdbc的一层封装,性能优化写在Mybatis中包括连接池的数量,缓存的数量,最大连接数量,最小连接数量,超时等待等等)
    • 2.6log4j.properties(日志文件为了避免Mybatis报错)
    • 2.7spring-dao.xml(文件头部在其他项目中都是一样发的):
    • 2.8spring-service.xml(取service):
    • 2.9mybatis-config.xml(固定写法,控制mybatis产生作用。识别mapper文件并取到sqlSesstionFactory)
    • 3.0PaperMapper.xml(映射文件,操作交给mybatis即dao层,一个dao对应一个map文件,相当于impl,区别只写sql语句)

一、创建所需文件夹target、java、resource等如图(一)所示


         图(一)

二、代码

2.1pojo.Paper:

package com.ssm.pojo;public class Paper {private int paperId;private String paperName;private int paperNum;private String paperDetail;public int getPaperId() {return paperId;}public void setPaperId(int paperId) {this.paperId = paperId;}public String getPaperName() {return paperName;}public void setPaperName(String paperName) {this.paperName = paperName;}public int getPaperNum() {return paperNum;}public void setPaperNum(int paperNum) {this.paperNum = paperNum;}public String getPaperDetail() {return paperDetail;}public void setPaperDetail(String paperDetail) {this.paperDetail = paperDetail;}public Paper() {}public Paper(int paperId, String paperName, int paperNum, String paperDetail) {this.paperId = paperId;this.paperName = paperName;this.paperNum = paperNum;this.paperDetail = paperDetail;}public Paper(String paperName, int paperNum, String paperDetail) {this.paperName = paperName;this.paperNum = paperNum;this.paperDetail = paperDetail;}@Overridepublic String toString() {return "Paper{" +"paperId=" + paperId +", paperName='" + paperName + '\'' +", paperNum=" + paperNum +", paperDetail='" + paperDetail + '\'' +'}';}
}

2.2dao.PaperDao:

package com.ssm.dao;import com.ssm.pojo.Paper;
import org.springframework.stereotype.Component;import java.util.List;@Component//spring框架注入jdbc
public interface PaperDao {// 1. 新增论文的持久层int insertPaper(Paper paper);// 2. 删除论文的持久层(根据paperid来删除)int deletePaper(int paperId);// 3. 修改论文的持久层(先把原来的数据paper进行加载,才可以修改,修改完之后保存 )int updatePaper(Paper paper);// 4. 通过固定条件查询(单查,这里是根据paperid查询,返回的是paper)Paper findPaperById(int paperId);// 5. 全查(返回的是List集合)List<Paper> findPapersByAll();// 6. 模糊查询(返回的也是List类型的集合体)List<Paper> findPapersByLike(String paperName);
}

2.3service.PaperService(与dao层唯一不同的点是注解不同这里是@service,dao层是@component):

package com.ssm.service;import com.ssm.pojo.Paper;
import org.springframework.stereotype.Service;import java.util.List;@Service
public interface PaperService {// 1. 新增论文的持久层int insertPaper(Paper paper);// 2. 删除论文的持久层int deletePaper(int paperId);// 3. 修改论文的持久层int updatePaper(Paper paper);// 4. 通过固定条件查询Paper findPaperById(int paperId);// 5. 全查List<Paper> findPapersByAll();// 6. 模糊查询List<Paper> findPapersByLike(String paperName);
}

2.4service.impl.PaperServiceImpl:

package com.ssm.service.impl;import com.ssm.dao.PaperDao;
import com.ssm.pojo.Paper;
import com.ssm.service.PaperService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class PaperServiceImpl implements PaperService {@Autowired//面向切面Aspect Oriented Programming(AOP),,注入dao层private PaperDao paperDao;public void setPaperDao(PaperDao paperDao) {this.paperDao = paperDao;}@Overridepublic int insertPaper(Paper paper) {return 0;}@Overridepublic int deletePaper(int paperId) {return 0;}@Overridepublic int updatePaper(Paper paper) {return 0;}@Overridepublic Paper findPaperById(int paperId) {return null;}@Overridepublic List<Paper> findPapersByAll() {return null;}@Overridepublic List<Paper> findPapersByLike(String paperName) {return null;}
}

2.5db.properties(实现jdbc的一层封装,性能优化写在Mybatis中包括连接池的数量,缓存的数量,最大连接数量,最小连接数量,超时等待等等)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/db_java1ssm?useSSL=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

2.6log4j.properties(日志文件为了避免Mybatis报错)

log4j.rootLogger=ERROR,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

2.7spring-dao.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 1.获取db.properties文件获取参数 --><context:property-placeholder location="classpath:db.properties" /><!-- 2.获取dataSource数据源对象 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">//毁灭方法,自动关闭连接池<!-- 2.1配置连接池参数 --><property name="driverClass" value="${jdbc.driver}" /><property name="jdbcUrl" value="${jdbc.url}" /><property name="user" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!-- 2.2优化连接池参数 --><property name="maxPoolSize" value="30" />//最大连接数量30<property name="minPoolSize" value="10" />//最小连接数量10<!-- 关闭数据库连接后不自动提交 (手动提交作业)--><property name="autoCommitOnClose" value="false" /><property name="checkoutTimeout" value="10000" />//超时等待,10之后跳出类似此网页不存在<property name="acquireRetryAttempts" value="3" />//没有响应之后,可在连接3次</bean><!-- 3.整合Mybatis : 为了获取sqlSessionFactory对象(会话工厂) (spring是扫描器获取impl)--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 3.1注入数据库连接池 --><property name="dataSource" ref="dataSource" /><!-- 3.2获取mybatis配置文件:mybatis-config.xml --><property name="configLocation" value="classpath:mybatis-config.xml" /><!-- 3.3扫描包,使用别名 返回的是pojo对象--><property name="typeAliasesPackage" value="com.ssm.pojo" /><!-- 3.4获取mapper文件 --><property name="mapperLocations" value="classpath:mapper/*.xml" /></bean><!-- 4.获取paperDao对象 : dao要与数据库打交道, --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />//流程:mybatis融到dao层里面,把dao层扫描出来放到service里面操作<property name="basePackage" value="com.ssm.dao" /></bean></beans>

2.8spring-service.xml(取service):

<?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:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 1.扫描service包下的所有注解,让注解产生功能 --><context:component-scan base-package="com.ssm.service" /><!-- 2.生成一个事务管理器对象产生事务管理transactionManager --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" />//此处要添加依赖</bean><!-- 3.事务管理操作 --><tx:annotation-driven transaction-manager="transactionManager" /><!-- 4.生成service对象 --><bean id="paperService" class="com.ssm.service.impl.PaperServiceImpl" /></beans>

2.9mybatis-config.xml(固定写法,控制mybatis产生作用。识别mapper文件并取到sqlSesstionFactory)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><!-- 1.表字段自动增长列:自动增长 --><setting name="useGeneratedKeys" value="true"/><!-- 2.使用别名替换列名: 默认为true --><setting name="useColumnLabel" value="true" /><!-- 3.命名规则定义为小驼峰法则 --><setting name="mapUnderscoreToCamelCase" value="true" /></settings></configuration>

3.0PaperMapper.xml(映射文件,操作交给mybatis即dao层,一个dao对应一个map文件,相当于impl,区别只写sql语句)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.ssm.dao.PaperDao"><!-- 1.实现新增 --><insert id="insertPaper" parameterType="Paper">insert into tb_paper(papername,papernum,paperdetail) values(#{paperName},#{paperNum},#{paperDetail})</insert><!-- 2.实现删除 --><delete id="deletePaper" parameterType="int">delete from tb_paper where paperid=#{paperId}</delete><!-- 3.实现修改 --><update id="updatePaper" parameterType="Paper">update tb_paper set papername=#{paperName},papernum=#{paperNum},paperdetail=#{paperDetail} where paperid=#{paperId}</update><!-- 4.实现单查 --><select id="findPaperById" parameterType="int" resultType="Paper">select papername as paperName,papernum as paperNum,paperdetail as paperDetail from tb_paper where paperid=#{paperId}</select><!-- 5.实现全查 --><select id="findPapersByAll" resultMap="paperResultMap">select * from tb_paper</select><!-- 6.模糊查询 --><select id="findPapersByLike" parameterType="String" resultMap="paperResultMap">select * from tb_paper where papername like '%${value}%'</select><!-- 告诉mybatis返回数据应该是这样的 --><resultMap id="paperResultMap" type="Paper"><id property="paperId" column="paperid" /><result property="paperName" column="papername" /><result property="paperNum" column="papernum" /><result property="paperDetail" column="paperdetail" /></resultMap></mapper>

ssm框架之papersystem论文系统搭建(一)(图文)相关推荐

  1. 软件工程课程设计·SOA架构搭建SSM框架的网上商城系统

    软件工程课程设计·SOA架构搭建SSM框架的网上商城系统 项目简介 本系统利用SSM框架.Dubbo框架.Maven模块化开发等技术开发的一个网上商城项目,主要包括订单系统模块.购物车系统模块.搜索系 ...

  2. 基于SSM框架的OA办公系统

    在线OA办公系统,毕设项目 基于SSM框架的OA办公系统,毕设项目 软件功能说明 环境搭建 开发环境 组件描述 源代码.资源及数据清单 源代码与数据导入 安装包及数据清单 用户操作说明 项目演示视频 ...

  3. 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM框架的中医养生系统i9830系统+程序+源码+lw+远程部署 本源码技术栈: ...

  4. 基于SSM框架的服饰商城系统的设计与实现(文末附源码)

    摘要 现如今我们处于大数据时代,我们对网上商城的概念并不感到生疏,随着互联网科技的发展,网络在人们生活中的运用越来越广泛,网上购物已经成为了现代购物的主流趋势.网上购物具有多种选择.性价比高等优势,网 ...

  5. 基于SSM框架的外卖订餐系统

    基于SSM框架的外卖订餐系统(Bug已修复) 本系统是基于SSM框架的外卖订餐系统,前端使用JSP页面,BootStrap框架,JQuery框架,后端使用SSM框架进行设计,数据库使用MySQL数据库 ...

  6. SSM框架实例——在线考试系统

    2019.10.13更新提示 这个项目是2017年写的,之前有不少小伙伴联系我,询问这个项目的事情,在此说声抱歉,虽然项目主要由我负责,但是本项目确实问题很多,基于XML配置的SSM框架,对初学者来说 ...

  7. 基于SSM框架的健身房会员系统

    基于SSM框架的健身房会员系统 本系统是基于SSM框架的健身房会员系统,前端使用HTML页面,BootStrap框架,JQuery框架, 后端使用SSM框架,数据库使用MySQL数据库,用户实现课程查 ...

  8. 视频教程-spring+springMVC+mybatis(ssm框架)在线考试系统实战开发教程-Java

    spring+springMVC+mybatis(ssm框架)在线考试系统实战开发教程 软件工程硕士毕业,目前就职于上海电信研究院,有三年Java开发经验,五年PHP开发经验. 李礼强 ¥368.00 ...

  9. java基于SSM框架的洗车店预约系统的设计与实现

    基于SSM框架的洗车店预约系统的设计与实现 #### 开发工具(eclipse/idea): eclipse4.5/4.8或者idea2018,jdk1.8 * * * 洗车店预约系统设计了注册会员和 ...

最新文章

  1. 八年级计算机网络公开课,计算机网络公开课教案.doc
  2. hive 表的常用操作
  3. Caffe 运行平台支持DenseNet模型
  4. 潜意识微笑,与钱无关——博客获奖有感
  5. C语言 经典编程100
  6. 2.5 网络中的网络及1x1卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  7. Spring Remoting: Burlap--转
  8. Servlet映射路径中的通配符
  9. python 计算累计人数_免费Python入门课程,看到就是赚到~
  10. Java中String.split和StringUtils.split性能比较
  11. eja智能压力变送器工作原理_压力变送器的原理、接线和安装方法
  12. [Head First设计模式]生活中学设计模式——组合模式
  13. GAMP学习-函数流程图调用(部分)(一)
  14. linux软连接与环境变量
  15. word公式编辑器出错及交叉引用问题
  16. 印刷业ERP系统解决方案
  17. Qt文档阅读笔记-trimmed()与simplified()官方解析与实例
  18. 超详细如何配置将WAN接入
  19. word中每页后面的空白怎么删掉
  20. 神经网络epoch和batch的粗浅理解

热门文章

  1. 银行数字化转型导师坚鹏:数字化时代BLM银行网点转型解决方案
  2. 什么?都快过年了,你还没有买鞭炮
  3. 基于K-means算法的数码迷彩生成——python实现
  4. 自然地理学——学习笔记
  5. jira 系统管理员操作说明
  6. libGDX游戏开发之修改游戏帧数FPS(十三)
  7. 了解docker build 命令后点号( . )的意思
  8. pandas.Series函数用法
  9. 笑脸html5,8款给力HTML5/CSS3应用插件 可爱的HTML5笑脸
  10. 实现科汛CMS在标签中调用作者【已解决】