构建个人博客系统二(连接mysql数据库)

更正上文数据表设计细节不当,外键不能为NULL。

  1. CREATE TABLE `article` (
  2.   `id` INTEGER(11) NOT NULL AUTO_INCREMENT,
  3.   `title` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
  4.   `content` TEXT COLLATE utf8_general_ci,
  5.   `categoryid` INTEGER(11) NOT NULL,
  6.   `createtime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  7.   `userid` INTEGER(11) NOT NULL,
  8.   PRIMARY KEY (`id`),
  9.   KEY `userid` (`userid`),
  10.   KEY `article_fk1` (`categoryid`),
  11.   CONSTRAINT `article_fk` FOREIGN KEY (`userid`) REFERENCES `user` (`id`),
  12.   CONSTRAINT `article_fk1` FOREIGN KEY (`categoryid`) REFERENCES `category` (`id`)
  13. )ENGINE=InnoDB
  14. AUTO_INCREMENT=4 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
  15. COMMENT='InnoDB free: 4096 kB; (`userid`) REFER `sclblog/user`(`id`); (`categoryid`) REFE';

然后建立javabean,用来连接数据库。

 

  1. package com.mycompany.db;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. public class DBUtil {
  8.     public static Connection getConnection() {
  9.         Connection conn = null;
  10.         try {
  11.             Class.forName("com.mysql.jdbc.Driver");
  12.             conn = DriverManager
  13.                     .getConnection("jdbc:mysql://localhost:3306/sclBlog?user=root&password=root");
  14.         } catch (ClassNotFoundException e) {
  15.             e.printStackTrace();
  16.         } catch (SQLException e) {
  17.             e.printStackTrace();
  18.         }
  19.         return conn;
  20.     }
  21.     public static Statement getStatement(Connection conn) {
  22.         Statement stmt = null;
  23.         try {
  24.             if (conn != null) {
  25.                 stmt = conn.createStatement();
  26.             }
  27.         } catch (SQLException e) {
  28.             e.printStackTrace();
  29.         }
  30.         return stmt;
  31.     }
  32.     public static ResultSet getResultSet(Statement stmt, String sql) {
  33.         ResultSet rs = null;
  34.         try {
  35.             if (stmt != null) {
  36.                 rs = stmt.executeQuery(sql);
  37.             }
  38.         } catch (SQLException e) {
  39.             e.printStackTrace();
  40.         }
  41.         return rs;
  42.     }
  43.     public static void close(Statement stmt) {
  44.         if (stmt != null) {
  45.             try {
  46.                 stmt.close();
  47.                 stmt = null;
  48.             } catch (SQLException e) {
  49.                 e.printStackTrace();
  50.             }
  51.         }
  52.     }
  53.     public static void close(Connection conn) {
  54.         if (conn != null) {
  55.             try {
  56.                 conn.close();
  57.                 conn = null;
  58.             } catch (SQLException e) {
  59.                 e.printStackTrace();
  60.             }
  61.         }
  62.     }
  63.     public static void close(ResultSet rs) {
  64.         if (rs != null) {
  65.             try {
  66.                 rs.close();
  67.                 rs = null;
  68.             } catch (SQLException e) {
  69.                 e.printStackTrace();
  70.             }
  71.         }
  72.     }
  73. }

建立一个servlet,测试

  1. package com.mycompany.db;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.Connection;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. public class TestDb extends HttpServlet {
  13.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  14.             throws ServletException, IOException {
  15.         resp.setContentType("text/html;charset=gb2312");
  16.         PrintWriter out = resp.getWriter();
  17.         out.println("<table border=1>");
  18.         out.println("<tr><td>Content:</td></tr>");
  19.         Connection conn = DBUtil.getConnection();
  20.         Statement stmt = DBUtil.getStatement(conn);
  21.         String sql = "select * from article";
  22.         ResultSet rs = DBUtil.getResultSet(stmt, sql);
  23.         try {
  24.             while (rs.next()) {
  25.                 out.println("<tr>");
  26.                 out.println("<td>" + rs.getString("title") + "</td>");
  27.                 out.println("</tr>");
  28.             }
  29.             out.println("</table>");
  30.         } catch (SQLException e) {
  31.             e.printStackTrace();
  32.         } finally {
  33.             DBUtil.close(rs);
  34.             DBUtil.close(stmt);
  35.             DBUtil.close(conn);
  36.         }
  37.     }
  38. }

web.xml 设置这个servlet。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  5.     <servlet>
  6.         <servlet-name>testDb</servlet-name>
  7.         <servlet-class>com.mycompany.db.TestDb</servlet-class>
  8.     </servlet>
  9.     <servlet-mapping>
  10.       <servlet-name>testDb</servlet-name>
  11.       <url-pattern>/testDb</url-pattern>
  12.     </servlet-mapping>
  13.     <welcome-file-list>
  14.         <welcome-file>index.jsp</welcome-file>
  15.     </welcome-file-list>
  16. </web-app>

测试url:

http://localhost:8080/sclBlog/testDb

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值