文档章节

使用 WebServlet 注解构建JAVA WEB应用(二)

r
 ritchielei
发布于 2016/03/21 14:51
字数 424
阅读 10
收藏 0

在上一节的基础上,本节我们来添加 关联真实数据库。


一、添加相关依赖

group 'org.happy'
version '1.0'

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'

sourceCompatibility = 1.5

repositories {
    //mavenCentral()
    maven { url 'http://maven.oschina.net/content/groups/public/' }
}

dependencies {

    providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
    providedCompile 'javax.servlet.jsp:jsp-api:2.2'
    runtime 'javax.servlet:jstl:1.2'
    compile 'org.slf4j:slf4j-log4j12:1.7.7'
    runtime 'mysql:mysql-connector-java:5.1.33'

    testCompile group: 'junit', name: 'junit', version: '4.11'
}


   二、创建 user 表

    

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `passwd` varchar(50) DEFAULT NULL,
  `dept` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

  三、改写 UserService 

package org.happy.webdemo.service;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.sql.DriverManager;
import org.happy.webdemo.model.User;

public class UserService {
    private static final Logger LOGGER = LoggerFactory.getLogger(UserService.class);

    private static final String DRV = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/jeedemo";
    private static final String USR = "root";
    private static final String PWD = "f3r3o2m527";

    static {

        try {
            Class.forName(DRV);
        } catch (ClassNotFoundException e) {
            LOGGER.error("can not load jdbc driver", e);
        }

    }

    public List<User> getUserList() {
        Connection conn = null;
        List<User> userList = new ArrayList<User>();

        try {
            String sql = "SELECT * from user";
            conn = DriverManager.getConnection(URL, USR, PWD);
            PreparedStatement stmt = conn.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getLong("id"));
                user.setName(rs.getString("name"));
                user.setPasswd(rs.getString("passwd"));
                user.setDept(rs.getString("dept"));
                userList.add(user);
            }

        } catch (SQLException e) {
            LOGGER.error("execute sql failed", e);
        } finally {
            if (conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    LOGGER.error("close connection failed", e);
                }
            }
        }

        return userList;
    }

    /*
    public List<User> getUserList() {
        String sql = "SELECT * FROM user";

        List<User> ul = new ArrayList<User>();

        User user = new User();
        user.setDept("Sales");
        user.setName("David");
        user.setPasswd("8888");
        user.setId((long) 1);
        ul.add(user);

        User user2 = new User();
        user2.setDept("Research");
        user2.setName("Tom");
        user2.setPasswd("7777");
        user2.setId((long) 2);
        ul.add(user2);

        User user3 = new User();
        user3.setDept("Fin");
        user3.setName("Kitty");
        user3.setPasswd("6666");
        user3.setId((long) 3);
        ul.add(user3);

        return ul;
    }
    */
}

 四、测试

    使用MYSQL 客户端往表格中写入一些数据,然后运行该程序 (http://localhost:8080/webdemo-1.0/users)。它应该能取到你刚刚在数据库中添加的用户信息了。


© 著作权归作者所有

r
粉丝 3
博文 6
码字总数 5475
作品 0
普陀
私信 提问
Servlet3.0引入的新特性续

@WebInitParam 可以使用@WebInitParam注解来制定Servlet或filter的初始参数。当然我们也可以使用@WebServlet或@WebFileter的initParam属性来指定初始参数。下面是使用@WebInitParam的例子: ...

长平狐
2012/09/03
132
0
Spring Boot 注册 Servlet 的三种方法,真是太有用了!

本文栈长教你如何在 Spring Boot 注册 Servlet、Filter、Listener。 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 2 种方式 Spring Boot 自动配置...

Java技术栈
05/07
42
0
魂牵梦绕迷之@webservlet 问题?

魂牵梦绕迷之@webservlet 今天学车的时候无聊中想到一个问题,那就是@webservlet。大家都知道Servlet3.0有个新特性就是支持@webservlet注解,再也不用在web.xml注册了。 根据我个人的理解若在...

哎呦-又忘了
2017/03/11
107
2
SpringBoot 学习:(一)快速搭建项目

一、简介 从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boot 的作用在于创建和启动新的基于 Spring 框架的项目。它的目的是帮助开发人员很容易的创建出独立运行和产品级别的基于 Sp...

Element0506
2015/07/25
547
0
迷你版Spring MVC 实现

迷你版Spring MVC 实现 本文参考自 写出我的第一个框架:迷你版Spring MVC ,写这篇文章用于个人学习的记录。 项目建立 首先,建立一个空Maven项目,在java目录下,建立以下包结构。 接下来,...

旺仔没馒头
01/29
23
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
6
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部