博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM项目整合--纯代码篇
阅读量:3958 次
发布时间:2019-05-24

本文共 13227 字,大约阅读时间需要 44 分钟。

SSM整合——纯代码篇:

1.基本目录结构 和 配置数据库环境 和 日志

  • jdbc_mysql.prperties

    jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/connectdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMTjdbc.username=rootjdbc.password=Ofuckyou1999
  • log4j.properties

    ### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### root logger option ###hlog4j.rootLogger=warn, stdout### Hibernate logging options ###log4j.logger.net.sf.hibernate=info### log JDBC bind parameters ###log4j.logger.net.sf.hibernate.type=info### log PreparedStatement cache activity ###log4j.logger.net.sf.hibernate.ps.PreparedStatementCache=info
  • pom.xml

    4.0.0
    org.example
    sql_01
    1.0-SNAPSHOT
    jar
    5.2.5.RELEASE
    org.projectlombok
    lombok
    1.18.12
    provided
    mysql
    mysql-connector-java
    8.0.15
    log4j
    log4j
    1.2.17
    org.mybatis
    mybatis
    3.4.5
    junit
    junit
    4.12
    test
    org.springframework
    spring-core
    ${spring.version}
    org.springframework
    spring-beans
    ${spring.version}
    org.springframework
    spring-context
    ${spring.version}
    org.springframework
    spring-jdbc
    ${spring.version}
    org.springframework
    spring-tx
    ${spring.version}
    org.springframework
    spring-web
    ${spring.version}
    org.springframework
    spring-webmvc
    ${spring.version}
    org.springframework
    spring-test
    ${spring.version}
    org.springframework
    spring-context
    ${spring.version}
    org.aspectj
    aspectjweaver
    1.9.5
    org.mybatis
    mybatis-spring
    1.3.1
    org.aspectj
    aspectjrt
    1.9.4
    javax.servlet
    javax.servlet-api
    3.1.0
    javax.servlet
    jstl
    1.2

2.加入mybatis

  • pojo.Student

    package com.lyc.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.apache.ibatis.type.Alias;import java.util.Date;@Data@AllArgsConstructor@NoArgsConstructor@Alias("student")public class Student {
    private Integer sno; private String sname; private Integer sage; private String ssex; private String shobby; private Date sbirth;}
  • dao.StudentMapper

    package com.lyc.dao;import com.lyc.pojo.Student;public interface StudentMapper {
    public Boolean saveS(Student student);}
  • resouces.mybatis-config.xml

  • resources.StudentMapper.xml

    insert into student(sname,sbirth) VALUES (#{sname},now())
  • MybatisTest

    import com.google.protobuf.StringValue;import com.lyc.dao.StudentMapper;import com.lyc.pojo.Student;import com.lyc.util.RandomGet;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 java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.Random;public class MybatisTest {
    public SqlSessionFactory getSqlSessionFactory() throws IOException {
    //获取sqlSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream= Resources.getResourceAsStream(resource); return new SqlSessionFactoryBuilder().build(inputStream); } @org.junit.Test public void test02() throws IOException{
    //1、获取sqlSessionFactory对象 SqlSessionFactory sqlSessionFactory=getSqlSessionFactory(); //2、获取sqlSession对象 SqlSession openSession = sqlSessionFactory.openSession(true); try{
    //3、获取接口的实现类对象 //会为接口自动的创建一个代理对象,代理对象去执行增删改查 StudentMapper mapper = openSession.getMapper(StudentMapper.class); RandomGet randomGet = new RandomGet(); char sname = randomGet.getRandomHan(); Student student = new Student(null, String.valueOf(sname),null,null,null,null); Boolean b=mapper.saveS(student); System.out.println(b); } finally {
    openSession.close(); } }}

3.spring

  • service.StudentService

    package com.lyc.service;import com.lyc.pojo.Student;public interface StudentService {
    public Boolean saveS(Student student);}
  • service.impl.StudentServiceImpl

    package com.lyc.service.impl;import com.lyc.dao.StudentMapper;import com.lyc.pojo.Student;import com.lyc.service.StudentService;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 java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.SQLException;public class StudentServiceImpl implements StudentService {
    public SqlSessionFactory getSqlSessionFactory() throws IOException {
    //获取sqlSessionFactory的方法 String resource = "mybatis-config.xml"; InputStream inputStream= Resources.getResourceAsStream(resource); return new SqlSessionFactoryBuilder().build(inputStream); } //1、获取sqlSessionFactory对象 //2、获取sqlSession对象 //3、获取接口的实现类对象 //会为接口自动的创建一个代理对象,代理对象去执行增删改查 public StudentServiceImpl() {
    } private StudentMapper mapper; public StudentMapper getMapper() {
    return mapper; } public void setMapper(StudentMapper mapper) {
    this.mapper = mapper; } public Boolean saveS(Student student) {
    SqlSessionFactory sqlSessionFactory; SqlSession openSession = null; Boolean b = false; Connection connection = null; try {
    sqlSessionFactory = getSqlSessionFactory(); openSession = sqlSessionFactory.openSession(true); //事务控制获取连接 connection = openSession.getConnection(); connection.setAutoCommit(false); mapper = openSession.getMapper(StudentMapper.class); //插入错误// int n=1/0; b = mapper.saveS(student); connection.commit(); } catch (Exception e) {
    e.printStackTrace(); try {
    connection.rollback(); } catch (SQLException ex) {
    ex.printStackTrace(); } } finally {
    openSession.close(); } return b; }}
  • resources.applicationContext.xml

  • AopTest

    import com.lyc.pojo.Student;import com.lyc.service.StudentService;import com.lyc.util.RandomGet;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class AOPTest {
    public static void main(String[] args) {
    // 1、获取容器 ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");// 2、获取对象 StudentService as = (StudentService)ac.getBean("studentService");// 3、执行方法 RandomGet randomGet = new RandomGet(); char sname = randomGet.getRandomHan(); Student student = new Student(null, String.valueOf(sname),null,null,null,null); System.out.println("是否成功整合AOP: "+as.saveS(student)); }}

4.springMVC

  • index.jsp

    <%--  Created by IntelliJ IDEA.  User: 钰兔大王  Date: 2020/9/2  Time: 16:01  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>    整合springMVC
    sno:
    sname:
  • resources.springmvc.xml

  • controller.TestPojoStudent.java

    package com.lyc.controller;import com.lyc.pojo.Student;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@RequestMapping("/testPojo")@Controllerpublic class TestPojoStudent {
    /** * SpringMVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。 * 支持级联属性,如 address.city,address.city.province 等 * @return */ @RequestMapping(value = "/test") public String test(Student student){
    System.out.println("testStudent: "+student); return "success"; }}
  • web.WEB-INF.pages.success.jsp

    <%--  Created by IntelliJ IDEA.  User: 钰兔大王  Date: 2020/9/2  Time: 16:05  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>    成功执行

    整合成功

5.ssm一起用

controller.StudentController.jave

package com.lyc.controller;import com.lyc.dao.StudentMapper;import com.lyc.pojo.Student;import com.lyc.service.StudentService;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/testStudent")public class StudentController {
public static void main(String[] args) {
//0、配置文件bean.xml 的准备 //1、获取核心容器 ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); //2、根据id获取bean对象 StudentService as=(StudentService)ac.getBean("studentService");// Student student = new Student(null,"东皇",null,null,null,null);// System.out.println("是否成功整合spring和mybatis: "+as.saveS(student)); } @RequestMapping(value = "/test") public String test(Student student){
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); StudentService as=(StudentService)ac.getBean("studentService"); Boolean b = as.saveS(student); System.out.println("是否成功整合ssm: "+b); return "success"; }}

qq_2405310636的博客:引用请注明出处

转载地址:http://ittzi.baihongyu.com/

你可能感兴趣的文章
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Mysql索引
查看>>
OGNL投影查询
查看>>
OGNL投影查询
查看>>
OGNL投影查询
查看>>
Redis之RDB和AOF持久化
查看>>
Redis之RDB和AOF持久化
查看>>
Servlet3.0
查看>>
Servlet3.0
查看>>
Servlet3.0
查看>>
SQL 语句的解析过程
查看>>