JDBC- exercise-2 通过htttp 访问 数据库,返回一个JSON格式的相应信息

来源:互联网 发布:程序员新工作第一天 编辑:程序博客网 时间:2024/06/05 20:06

http://127.0.0.1:8080/weibo/user.do?id=1
{
“User”:[
{“u_id:”1,”name:”小白,”email:”xiaobai@qq.com,”birth:”1992-03-22}
]
}
通过htttp 访问 数据库,返回一个JSON格式的相应信息。
实现方式:
1、用maven创建一个web项目,导入mysql的jar包
2、创建类:
com.dang.control.UserController.java
com.dang.dao.UserDAO.java
com.dang.dao.impl.JDBCTools.java
com.dang.dao.impl.UserDAOImpl.java
com.dang.modelUser.java
com.dang.service.UserService.java
com.dang.service.impl.UserServiceImpl.java
①UserController继承HttpServlet类,重写doGet方法。

protected void doGet(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {        System. out.println(request .getParameter("id"));        UserService us = new UserServiceImpl();        String parameter = request.getParameter("id" );        Long l = Long. parseLong(parameter);         byte[] b =us.getUserById(l ).inFo().getBytes();       response.getOutputStream().write(b );    }

②在UserDao中编写响应客户请求的方法。
利用JDBC访问数据库,取得相应数据。

public User getUserById(Long id ) {        User u = new User();        Connection conn = null ;        Statement statement = null ;        ResultSet rs = null;         try {             conn = JDBCTools.getConnection();            System. out.println(conn );             statement = conn .createStatement();            System. out.println(statement );            String sql = "SELECT u_id, name, email, birth FROM Users "                    + "where u_id="+id ;             rs = statement.executeQuery(sql );             while (rs .next()) {                 u.setId(( long) rs .getInt(1));                 u.setName( rs.getString( "name"));                 u.setEmail( rs.getString(3));                 u.setBirth( rs.getDate(4).toString());            }        } catch (Exception e ) {             e.printStackTrace();        } finally {            JDBCTools. release(rs, statement, conn);        }         return u ;    }

上边用到的
JDBCTools 工具类 代码:

public class JDBCTools {    public static void release(ResultSet rs, Statement statement,            Connection conn) {        if (rs != null) {            try {                rs.close();            } catch (SQLException e) {                e.printStackTrace();            }        }        if (statement != null) {            try {                statement.close();            } catch (Exception e2) {                e2.printStackTrace();            }        }        if (conn != null) {            try {                conn.close();            } catch (Exception e2) {                e2.printStackTrace();            }        }    }    public static void release(Statement statement, Connection conn) {        if (statement != null) {            try {                statement.close();            } catch (Exception e2) {                e2.printStackTrace();            }        }        if (conn != null) {            try {                conn.close();            } catch (Exception e2) {                e2.printStackTrace();            }        }    }public static Connection getConnection() throws ExceptiString driver="com.mysql.jdbc.Driver";String jdbcUrl="jdbc:mysql://localhost:3306/php"; String user="root";String  password="111111";Class.forName(driver);return DriverManager.getConnection(jdbcUrl, user, password);    }}

③配置web.xml文件

 <servlet >         <servlet-name> UserController</servlet-name >         <servlet-class> com.dang.control.UserController</servlet-class >    </servlet >    <servlet-mapping >         <servlet-name> UserController</servlet-name >         <url-pattern> /user.do</url-pattern >    </servlet-mapping >

④在浏览器中输入
http://127.0.0.1:8080/weibo/user.do?id=1

返回 数据库中 users表中 u_id =1 的 数据信息。

0 0
原创粉丝点击