maven各种类的基本写法

一、model类

专业类:(专业类和学校类做了多对多映射)

package com.cqvie.model;

import java.sql.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;

@Table(name = "major")
@Entity
public class Major {
	private int majorID;// 专业ID
	private int majorCode;// 专业代码
	private String majorName;// 专业名称
	private Date createDate;// 创建时间
	private Set<School> schools =new HashSet<School>();

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "majorID", nullable = false, length = 10)
	public int getMajorID() {
		return majorID;
	}

	public void setMajorID(int majorID) {
		this.majorID = majorID;
	}

	@Column(name = "majorCode", nullable = false, length = 10)
	public int getMajorCode() {
		return majorCode;
	}

	public void setMajorCode(int majorCode) {
		this.majorCode = majorCode;
	}

	@Column(name = "majorName", nullable = false, length = 20)
	public String getMajorName() {
		return majorName;
	}

	public void setMajorName(String majorName) {
		this.majorName = majorName;
	}

	@Column(name = "createDate", nullable = false, length = 10)
	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	@ManyToMany(mappedBy = "majors")
	@JsonIgnore
	public Set<School> getSchools() {
		return schools;
	}

	public void setSchools(Set<School> schools) {
		this.schools = schools;
	}

	@Override
	public String toString() {
		return "Major [majorID=" + majorID + ", majorCode=" + majorCode + ", majorName=" + majorName + ", createDate="
				+ createDate + "]";
	}

}

  


学校类:

package com.cqvie.model;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

@Entity
@Table(name = "school")
public class School {
	private int schoolID;// 高校ID
	private String schName;// 高校名称
	private String category;// 高校类别,专科或者本科
	private String position;// 地址
	private String web;// 高校官网
	private List<Major> majors = new ArrayList<Major>();// 学校对应的专业

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "schoolID", nullable = false, length = 10)
	public int getSchoolID() {
		return schoolID;
	}

	public void setSchoolID(int schoolID) {
		this.schoolID = schoolID;
	}

	@Column(name = "schoolName", nullable = true, length = 10)
	public String getSchName() {
		return schName;
	}

	public void setSchName(String schName) {
		this.schName = schName;
	}

	@Column(name = "category", nullable = false, length = 20)
	public String getCategory() {
		return category;
	}

	public void setCategory(String category) {
		this.category = category;
	}

	@Column(name = "position", nullable = false, length = 9)
	public String getPosition() {
		return position;
	}

	public void setPosition(String position) {
		this.position = position;
	}

	@Column(name = "web", nullable = false, length = 50)
	public String getWeb() {
		return web;
	}

	public void setWeb(String web) {
		this.web = web;
	}

	@ManyToMany(cascade = CascadeType.ALL)
	@JoinTable(name = "school_major", joinColumns = { @JoinColumn(name = "schoolID") }, inverseJoinColumns = {
			@JoinColumn(name = "MajorId") })
	public List<Major> getMajors() {
		return majors;
	}

	public void setMajors(List<Major> majors) {
		this.majors = majors;
	}

	@Override
	public String toString() {
		return "School [schoolID=" + schoolID + ", schName=" + schName + ", category=" + category + ", position="
				+ position + ", web=" + web + ", majors=" + majors + "]";
	}

}

  

二、Dao层类:

(一)类名前加注解:@Repository("xxx")作为调用该类的ID

(二)激活sessionFactory:得到当前线程

     @Resource
	protected SessionFactory sessionFactory;

(三)方法内部通过sessionFactory获得session

	Session session = sessionFactory.getCurrentSession();

实例:

package com.cqvie.dao;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.cqvie.model.Major;

@Repository("majorDao")
public class MajorDao {
	@Resource
	protected SessionFactory sessionFactory;

	// 关键字模糊查询
	public List<Major> fuzzyQuery(String keyword) {
		Session session = sessionFactory.getCurrentSession();
		String sql = "from Major where majorName like ? ";
		Query query = session.createQuery(sql);
		query.setString(0, "%" + keyword + "%");
		List<Major> majors = query.list();
		return majors;
	}
}

  

三、service层类

(一)、类名前加注解:@Transactional   声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。 
                                            @Service("xxx)  service唯一标识

(二)、激活需要使用的dao层类:@Resource
                                                    private MajorDao majorDao;

实例:

package com.cqvie.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.cqvie.dao.MajorDao;
import com.cqvie.model.Major;
import com.cqvie.model.School;

@Transactional
@Service("majorService")
public class MajorService {
	@Resource
	private MajorDao majorDao;

	// 关键字模糊查询
	public List<Major> fuzzyQuery(String keyword) {
		return majorDao.fuzzyQuery(keyword);
	}

	// 关键字模糊查询并获得最多5个数据
	public List<Major> fuzzyQueryMaxFive(String keyword) {
		List<Major> majors = majorDao.fuzzyQuery(keyword);
		List<Major> retMajors;
		// 如果查询出的数据大于5,截取前5个数据,反之,直接获取全部
		retMajors = majors.size() > 5 ? majors.subList(0, 4) : majors;
		return retMajors;
	}

}

  

四、控制层类

(一)、类名前加注释:

@Controller
                @RequestMapping("xxx")
 
    (二)、激活需要使用的service类

@Resource
      private MajorService majorService;

实例:

package com.cqvie.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cqvie.model.Major;
import com.cqvie.model.School;
import com.cqvie.service.MajorService;
import com.cqvie.service.SchoolService;

@Controller
@RequestMapping("/major")
public class MajorController {
	@Resource
	private MajorService majorService;

	// 模糊查询
	@ResponseBody
	@RequestMapping(value = "/fuzzyQueryMajor")
	public List<Major> fuzzyQuerySchool(String keyword) {
		return majorService.fuzzyQuery(keyword);
	}

	// 输入框的模糊匹配
	@ResponseBody
	@RequestMapping("/inputFuzzyQuery")
	public List<Major> inputFuzzyQuery(String keyword) {
		return majorService.fuzzyQueryMaxFive(keyword);
	}
}

  

时间: 2024-10-08 01:19:23

maven各种类的基本写法的相关文章

maven项目中的pom.xml

需要配置的内容 1.配置头(自动生成) 2.maven项目的坐标(自动生成) <modelVersion>4.0.0</modelVersion> <groupId>com.sxt</groupId> <artifactId>ssm-1107</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>

maven核心功能

1.仓库的种类和彼此的关系 maven仓库种类:1.本地仓库 2.远程仓库(也就是日常所说的私服) 3.中央仓库 maven仓库彼此之间的关系: 项目构建的时候 首先会从本地仓库寻找jar包,如果未找到,则从中央仓库寻找jar包(如果有私服,则先从私服查找,如果没有再去中央仓库寻找jar包) 2.maven标准目录结构 src/main/java java源代码 src/main/resources 配置资源文件 src/test/java 测试源代码 src/test/resources 测试

java字节码忍者禁术

Java语言本身是由Java语言规格说明(JLS)所定义的,而Java虚拟机的可执行字节码则是由一个完全独立的标准,即Java虚拟机规格说明(通常也被称为VMSpec)所定义的. JVM字节码是通过javac对Java源代码文件进行编译后生成的,生成的字节码与原本的Java语言存在着很大的不同.比方说,在Java语言中为人熟知的一些高级特性,在编译过程中会被移除,在字节码中完全不见踪影. 这方面最明显的一个例子莫过于Java中的各种循环关键字了(for.while等等),这些关键字在编译过程中会

浅析java基本程序

1.包 package package语法:包名.类名 ;包名的写法规范:所有字母需小写. 当然也可以采用静态导入  例如 import static java.lang.Math.* 有包的对象不能使用默认包的对象. import java.lang  包是java虚拟机自动导入的包,在使用java.lang包时我们可以不需要导包:例如:Thread类,Exception类,System类,String类等,可以相应的查看Api. java.util.*  这里的*表示java.util下的所

Zxing 的集成 ---- Maven 对应 Gradle 的写法

刚刚想耍耍二维码,想到了zxing和zbar,又想到zxing是Google老爹的,想想就算了吧,虽然zbar快但是识别错误率也高不少.随手Google了下*zxing 集成*好像都是说什么拷贝项目到自己的工程中,我不信Gradle集成这么方便了为何不用.于是我来到zxing的 Github 主页 ,在README的引导下来到Get Start页面,里面有如下说明: Maven core/, javase/, android-integration and zxingorg can be use

第七章(插件的使用和写法)(7.6 编写 jQuery 插件)

7.6.1 插件的种类 编写插件的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率. jQuery 的插件主要分为3种类型. 1 封装对象方法的插件 这种插件是将对象方法封装起来,用于对通过选择器获取的 jQuery 对象进行操作,是最常见的一种插件. 据不完全统计,95%以上的 jQuery 插件都是封装对象方法的插件,此类插件可以发挥出 jQuery 选择器的强大优势.有相当一部分的 jQuery 的方法,都是在 jQuery 脚本库内部通过这种

错误:在maven install是抛出 “1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符”

Maven默认用的是JDK1.5去编译 diamond运算符,有的书翻译为菱形,有的书写的是钻石语法,指的是JDK1.7的一个新特性 List<String> list = new ArrayList<String>(); // 老版本写法 List<String> list = new ArrayList<>(); // JDK1.7写法 所以Maven默认使用JDK1.5去编译肯定是不认识这个东西的 你可以在pom.xml中加入下面的东西即可 <p

Spring+SpringMVC+MyBatis+LogBack+C3P0+Maven+Git小结(转)

摘要 出于兴趣,想要搭建一个自己的小站点,目前正在积极的准备环境,利用Spring+SpringMVC+MyBatis+LogBack+C3P0+Maven+Git,这里总结下最近遇到的一些问题及解决办法,后续慢慢的继续补~ 目录[-] 一:建立一个Maven结构的Web工程 二:Spring.SpringMVC重复加载bean对象问题. 三:实现自个的数据缓存机制 2种缓存数据简介及其数据结构分析 2中缓存数据加载实现流程介绍 三:通过Spring自定义标签形式实现配置项类型数据的缓存数据结构

Maven学习总结

转载至:http://www.cnblogs.com/xdp-gacl/p/3498271.html 一 入门 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1.项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目]这几个步骤,这六个步骤就是一个项目的完整构建过程. 理想的项目构建是高度自动化,跨平台