由于近期在学习jsm框架实现webservice 网上也是找了许多例子整合了很久才成功 现在谈谈我的经验 希望对和我一样的初学者有用 可以少走一些弯路
开始:
entity层(pojo类)
package com.eda.entity;
import Java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class User implements Serializable {
private int id;
private String username;
private String sex;
private int age;
//由于字数限时get和set自己实现
public User(int id, String username, String sex, int age) {
this.id = id;
this.username = username;
this.sex = sex;
this.age = age;
}
public User() {
}
}
//注意要实现序列化和无参的构造方法
service层
package com.eda.service;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.eda.entity.User;
import com.eda.mapper.UserMapper;
@Service
public class UserService {
@Resource
private UserMapper userMapper;
public List querryUsers()
{
return userMapper.selectAllUser();
}
public User querryUsersbyID(int id)
{
return userMapper.selectUserbyID(id);
}
public void deleteUserbyID(int id){
userMapper.deleteUserbyID(id);
}
}
//使用@Resource可以减少spring的耦合性
mapper层
//注意mapper层实际上是个接口 用来读取mabits的配置
package com.eda.mapper;
import java.util.List;
import com.eda.entity.User;
public interface UserMapper {
List selectAllUser();
User selectUserbyID(int id);
void deleteUserbyID(int id);
}
实现层 也就是resourpackage com.eda.resource;
import java.io.UnsupportedEncodingException;
import java.util.List;
import javax.annotation.Resource;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.springframework.stereotype.Component;
import com.eda.entity.User;
import com.eda.service.UserService;
@Component
@Path(“User”)
public class UserResource {
@Resource
private UserService userService;
@GET
@Path(“getUser”)
@Produces(“application/json”)
public List getUsers() throws UnsupportedEncodingException
{
return userService.querryUsers();
}
@GET
@Path(“getUserbyID/{id}”)
@Produces(“application/json”)
public User getUserbyID(@PathParam(“id”)int id) throws UnsupportedEncodingException
{
return userService.querryUsersbyID(id);
}
@DELETE
@Path(“deleteUser/{id}”)
@Produces(MediaType.APPLICATION_JSON)
public void deleteUser(@PathParam(“id”)int id)
{
userService.deleteUserbyID(id);
}
}是配置文件
需要新建一个source folder 名为config
然后新建一个package名为 MapperImpl
UserMapper.xml(在MapperImpl包里面)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.eda.mapper.UserMapper">
<!-- 作为UserMapper接口的映射 -->
<!-- 查询 -->
<select id="selectAllUser" parameterType="com.eda.entity.User"
resultType="com.eda.entity.User">
select id,username,sex,age
from z_user
</select>
<!-- 根据ID查询 -->
<select id="selectUserbyID" parameterType="com.eda.entity.User"
resultType="com.eda.entity.User">
select id,username,sex,age
from z_user
where id = #{id}
</select>
<!-- 删除 -->
<delete id="deleteUserbyID" parameterType="com.eda.entity.User">
delete
from z_user
where id = #{id}
</delete>
</mapper>
//数据库jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false
username=root
password=root
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000
//spring+mybatis配置文件
ApplicationContext.
<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"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<context:component-scan base-package="com.eda" />
<context:annotation-config/>
<!-- 自动扫描 -->
<!-- 引入数据库配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="${initialSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${maxIdle}"></property>
<!-- 连接池最小空闲 -->
<