更正上文数据表设计细节不当,外键不能为NULL。
- CREATE TABLE `article` (
- `id` INTEGER(11) NOT NULL AUTO_INCREMENT,
- `title` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL,
- `content` TEXT COLLATE utf8_general_ci,
- `categoryid` INTEGER(11) NOT NULL,
- `createtime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- `userid` INTEGER(11) NOT NULL,
- PRIMARY KEY (`id`),
- KEY `userid` (`userid`),
- KEY `article_fk1` (`categoryid`),
- CONSTRAINT `article_fk` FOREIGN KEY (`userid`) REFERENCES `user` (`id`),
- CONSTRAINT `article_fk1` FOREIGN KEY (`categoryid`) REFERENCES `category` (`id`)
- )ENGINE=InnoDB
- AUTO_INCREMENT=4 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
- COMMENT='InnoDB free: 4096 kB; (`userid`) REFER `sclblog/user`(`id`); (`categoryid`) REFE';
然后建立javabean,用来连接数据库。
- package com.mycompany.db;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class DBUtil {
- public static Connection getConnection() {
- Connection conn = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- conn = DriverManager
- .getConnection("jdbc:mysql://localhost:3306/sclBlog?user=root&password=root");
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return conn;
- }
- public static Statement getStatement(Connection conn) {
- Statement stmt = null;
- try {
- if (conn != null) {
- stmt = conn.createStatement();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return stmt;
- }
- public static ResultSet getResultSet(Statement stmt, String sql) {
- ResultSet rs = null;
- try {
- if (stmt != null) {
- rs = stmt.executeQuery(sql);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return rs;
- }
- public static void close(Statement stmt) {
- if (stmt != null) {
- try {
- stmt.close();
- stmt = null;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public static void close(Connection conn) {
- if (conn != null) {
- try {
- conn.close();
- conn = null;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public static void close(ResultSet rs) {
- if (rs != null) {
- try {
- rs.close();
- rs = null;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
建立一个servlet,测试
- package com.mycompany.db;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class TestDb extends HttpServlet {
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- resp.setContentType("text/html;charset=gb2312");
- PrintWriter out = resp.getWriter();
- out.println("<table border=1>");
- out.println("<tr><td>Content:</td></tr>");
- Connection conn = DBUtil.getConnection();
- Statement stmt = DBUtil.getStatement(conn);
- String sql = "select * from article";
- ResultSet rs = DBUtil.getResultSet(stmt, sql);
- try {
- while (rs.next()) {
- out.println("<tr>");
- out.println("<td>" + rs.getString("title") + "</td>");
- out.println("</tr>");
- }
- out.println("</table>");
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- DBUtil.close(rs);
- DBUtil.close(stmt);
- DBUtil.close(conn);
- }
- }
- }
web.xml 设置这个servlet。
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <servlet-name>testDb</servlet-name>
- <servlet-class>com.mycompany.db.TestDb</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>testDb</servlet-name>
- <url-pattern>/testDb</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
测试url:
http://localhost:8080/sclBlog/testDb