通过mybatis读取数据库数据并提供rest接口访问

1 mysql 创建数据库脚本

-- phpMyAdmin SQL Dump
-- version 4.2.11
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: 2016-08-02 18:13:50
-- 服务器版本: 5.6.21
-- PHP Version: 5.6.3

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `mybatis`
--

-- --------------------------------------------------------

--
-- 表的结构 `Student`
--

CREATE TABLE IF NOT EXISTS `Student` (
`id` int(10) NOT NULL,
  `name` varchar(256) NOT NULL,
  `age` int(4) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

--
-- 转存表中的数据 `Student`
--

INSERT INTO `Student` (`id`, `name`, `age`) VALUES
(1, ‘zhansan‘, 20);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `Student`
--
ALTER TABLE `Student`
 ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `Student`
--
ALTER TABLE `Student`
MODIFY `id` int(10) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;

2  创建与数据库表Student对应的pojo类

package com.mtour.mybatis.demo;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Student {
	int id;
	String name;
	int age;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

3  创建映射 studentMapper

<?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.mtour.mybatis.demo.studentMapper">

    <select id="getStudent" parameterType="int"
        resultType="com.mtour.mybatis.demo.Student">
        select * from Student where id=#{id}
    </select>
</mapper>

4.  创建 conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
                <property name="username" value="root" />
                <property name="password" value="" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/mtour/mybatis/demo/studentMapper.xml"/>
    </mappers>

</configuration>

5.  创建 rest 资源

package com.mtour.mybatis.demo;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;  

@Path("/student")
public class demo {  

	static String resource = "conf.xml";
	static InputStream is = demo.class.getClassLoader().getResourceAsStream(resource);
	static SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello() {
        return "hello jersey , first demo" ;
    }  

    @GET
    @Path("/{param}")
    @Produces("text/plain;charset=UTF-8")
    public String sayHelloToUTF8(@PathParam("param") String username) {
        return "Hello " + username;
    }  

    @GET
    @Path("/getstudent/{id}")
    @Produces(MediaType.APPLICATION_JSON)
    public Student getUserJson(@PathParam("id") String id) {  

     Integer studentId = Integer.valueOf(id);

     SqlSession session = sessionFactory.openSession();

     String statement = "com.mtour.mybatis.demo.studentMapper.getStudent";

     Student s = session.selectOne(statement, studentId);

     session.close();

     return s;
    }

}

6. 启动调试

源码下载:

时间: 2024-10-15 20:17:32

通过mybatis读取数据库数据并提供rest接口访问的相关文章

读取数据库数据,并将数据整合成3D饼图在jsp中显示

首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) 1 import java.io.IOException; 2 import java.sql.SQLException; 3 import org.jfree.chart.ChartFactory; 4 import org.jfree.chart.JFreeChart; 5 import org.jfree.data.general.DefaultPieDataset; 6 7 p

python读取数据库数据,读取出的中文乱码问题

最近遇到python读取数据库数据,读取出的中文乱码问题, 网络搜索的基本是: "1. Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)2. MySQL数据库charset=utf-83. Python连接MySQL是加上参数 charset=utf84. 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)" 这些,一一尝试后仍未解决.去数据库查看了下,发现这个出现中文乱码的字段类型是varcha

读取数据库数据填充到缓存的问题,及修复方案一则

业务简述: 为了提高站点性能,部署了一台Redis,把资源从SqlServer数据库中同步到Redis,站点由原来的读取数据库,变更为读取Redis,以利用Redis的高并发提升站点性能目的. 环境说明: 1.假设表名为softs, 记录的更新时间字段名为 updateTime: 2.不考虑数据库的DELETE操作,只考虑INSERT和UPDATE操作: 3.流程中所有时间,都以数据库时间为准,以避免不同服务器之间的时间误差,导致数据遗漏. 4.重要的前提条件:数据库执行INSERT和UPDAT

Java读取数据库数据生成柱状图

此案例是用swing显示数据的.需要引入jfreechart相关包,不同版本可能包不相同,本人用的是 此案例在ssi框架下会报错,不用框架就没问题. Java后台逻辑代码: public class BarChart { ChartPanel frame1; public BarChart() { CategoryDataset dataset = getDataSet(); JFreeChart chart = ChartFactory.createBarChart3D("水果",

C#使用SqlDataReader读取数据库数据时CommandBehavior.CloseConnection参数的作用

主要用在ExecuteReader(c)中,如果想要返回对象前不关闭数据库连接,须要用CommandBehavior.CloseConnection: CloseConnection解决了流读取数据模式下,数据库连接不能有效关闭的情况.当某个XXXDataReader对象在生成时使用了CommandBehavior.CloseConnection,那数据库连接将在XXXDataReader对象关闭时自动关闭. 由于流模式读取数据库的特点,在具体应用时很难确定数据库连接何时才能被关闭,因为读取的动

安装lnmp 时如何修改数据库数据存储地址及默认访问地址

使用lnmp一键安装后,lnmp的安装主要软件及配置文件默认目录如下(lnmp安装): 1:nginx: Nginx 目录: /usr/local/nginx/ Nginx日志目录:/home/wwwlogs/ 添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/ Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf 2:mysql MySQL 目录 : /usr/local/mysql/ MySQL数据库所在

读取数据库数据并在HighCharts上显示

可以看得出,图表里横纵坐标的数据都是静态的几个数据,因此我们只要从数据库读取出我们想要的横纵坐标值,然后动态赋给Chart就行了. X轴: xAxis: {                     categories: ['周一', '周二', '周三', '周四', '周五', '周六', '周日' ], //X轴的坐标值                     title: {text: '周数'},  //X轴坐标标题                 } Y轴: yAxis: {    

nodejs实现,每天定时自动读取数据库数据-生成excel表格-发送给老板邮箱(promise版)

async版:http://blog.csdn.net/zzwwjjdj1/article/details/52129192 写这个版本主要是,promise比较好用,而且,现在已经是nodejs的内置对象了,无须再引用第三方库 -- 需要的工具 数据库    mysql 连接数据库模块 mysql  基本封装: http://blog.csdn.net/zzwwjjdj1/article/details/51991348 自动运行模块   node-schedule 基本使用 : http:/

java 读取数据库数据转化输出XML输出在jsp页面

因为老师实验报告要求,搭建服务端解析XML 下面代码实现转化XML格式也是在网上找的转化代码 输出在jsp页面以便于客户端解析是自己写的 一个类就解决了Test package tests; //三只坚果 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.apache.crimson.tree.XmlDocument; import javax.xml.pars