栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java高级04:继续搭建springMVC项目至运行

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java高级04:继续搭建springMVC项目至运行

一、src结构解析:

common:公有的代码,需要多次使用的部分,实现高内聚低耦合

controller:前后台数据交互,数据从controller中交给各个业务模块(service)中

mapper:数据库的业务模块(sql语句),对数据库进行操作的

model:映射数据库各个表中的各个字段和业务字段(不在数据库里客户需要的放在这里或者VO里跟model有继承关系)的实体

service:业务模块接口

serviceImpl:业务模块接口的实现类,实现业务(简单的工厂模式)

util:工具类

二、util里放置的自定义工具

 DataSource.java
package com.demo.util;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.ElementType;


@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface DataSource {  
    String value();  
}  
DynamicDataSource.java
package com.demo.util;

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

public class DynamicDataSource extends AbstractRoutingDataSource {

    @Override
    protected Object determineCurrentLookupKey() {
        // 从自定义的位置获取数据源标识
        return DynamicDataSourceHolder.getDataSource();
    }

}
DynamicDataSourceHolder.java
package com.demo.util;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.ElementType;

public class DynamicDataSourceHolder {
    
    private static final ThreadLocal THREAD_DATA_SOURCE = new ThreadLocal();

    public static String getDataSource() {
        return THREAD_DATA_SOURCE.get();
    }

    public static void setDataSource(String dataSource) {
        THREAD_DATA_SOURCE.set(dataSource);
    }

    public static void clearDataSource() {
        THREAD_DATA_SOURCE.remove();
    }

}
三、功能搭建 1.实体的创建

按照数据库表中属性,然后有参无参构造、setget方法、重写tostring,直接用软件创建即可。

之前我的java的初级文章有写,不再重复,可以去翻一下。

2.在mapper里新建一个xml

如果此步没有mapper可以在这两个网址之一学习如何进行引入 :

eclipse 创建mybatis-config.xml 创建mapper.xml文件 | 蓝蓝博客

eclipse 创建mybatis-config.xml、mapper.xml文件 【mybatis入门】 - 灰信网(软件开发博客聚合)

然后直接选finish,完成。

3.mapper里代码书写

企业内书写代码的注意事项:sql里尽量不要使用*通配符!

原因:

1.为了安全,防止黑客使用sql注入的方式来攻击。

2.为了程序能够最大速度运行。

mapper里结构 

StuMapper.xml




	
	
	
	
		select no,name,sex,age,notes from stu
	

StuMapper.java(一个接口)
package com.demo.mapper;

import java.util.List;

import com.demo.model.Student;

public interface StuMapper {
	public List findall();//注意此处方法名和xml里的select的id名字保持一致
    //若对应的xml里没有返回结果类型resultTy,此处也不要有返回类型
}
4.service和serviceImpl文件夹 

StuService.java
package com.demo.service;

import java.util.List;

import com.demo.model.Student;

public interface StuService {
	public List findall();//和mapper里对应的接口保持一致
}
StuServiceImpl.java 
package com.demo.serviceImpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.demo.mapper.StuMapper;
import com.demo.model.Student;
import com.demo.service.StuService;
@Service//注解
public class StuServiceImpl implements StuService{

	@Autowired//注入相当于实例化
	private StuMapper mapper;//相当于容器=实例化,利用框架的功能
	@Override
	public List findall() {
		return mapper.findall();
	}
}
5.controller文件夹

 StuController.java
package com.demo.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.demo.model.Student;
import com.demo.service.StuService;

@Controller
public class StuController {
	@Autowired
	private StuService service;
	@RequestMapping(value = "stu_findall")//调用,value里的名字自起,为了方便记忆可以用数据库表名_功能
	public String stu_findall(HttpServletRequest request){//不一定等于上面的名字,但方便记忆
		List list = service.findall();
		//体现
		request.setAttribute("list", list);//发送到响应界面中
		return "stu_findall";//不用加.jsp因为已经过滤掉了
	}
}
6.界面按照配置文件放在 WEB-INF -> pages 下

 list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>







view


	
			
编号: 姓名: 性别: 年龄: 备注:
${it.no } ${it.name } ${it.sex } ${it.age } ${it.notes }
四、运行

 http://localhost:8080/cc_javaMax_demo/stu_findall.action

运行成功!

(.action前的从controller里的@RequestMapping(value = "stu_findall")里取)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号