您的位置:首页 > 数据库

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

2015-04-27 08:32 387 查看
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 Excepti
String 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 的 数据信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐