336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
REST 사용방법
http://192.168.0.3:8182/books
http://192.168.0.3:8182/books/where/OReilly
http://192.168.0.3:8182/books/
insert/"제목"/"저자"/"가격'
REST 서버
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.restlet.Application;
import org.restlet.Request;
import org.restlet.Response;
import org.restlet.Restlet;
import org.restlet.Server;
import org.restlet.data.MediaType;
import org.restlet.data.Protocol;
import org.restlet.routing.Router;
public class test extends Application {
public static Connection makeConnection() {
String url = "jdbc:mysql://localhost:3307/book_db";
String id = "root";
String password = "green";
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("드라이버 적재 성공");
con = DriverManager.getConnection(url, id, password);
System.out.println("데이터베이스 연결 성공");
} catch (ClassNotFoundException e) {
System.out.println("드라이버를 찾을 수 없습니다.");
} catch (SQLException e) {
System.out.println("연결에 실패하였습니다.");
}
return con;
}
public static Statement stmt;
public static void main(String[] args) throws Exception {
Connection con = makeConnection();
stmt = con.createStatement();
Server server = new Server(Protocol.HTTP, 8182);
server.setNext(new test());
server.start();
}
public static String selectBooks(Statement stmt) throws SQLException {
ResultSet rs = stmt.executeQuery("SELECT * FROM books");
String result = "";
while (rs.next()) {
int id = rs.getInt("book_id");
String title = rs.getString("title");
String publisher = rs.getString("publisher");
String year = rs.getString("year");
if (title != null) {
result += id + " " + title + " " + publisher + " " + year
+ "\n";
}
}
return result;
}
public static String selectBooks(Statement stmt, String name)
throws SQLException {
ResultSet rs = stmt
.executeQuery("SELECT * FROM books WHERE publisher = '" + name
+ "'");
String result = "";
while (rs.next()) {
int id = rs.getInt("book_id");
String title = rs.getString("title");
String publisher = rs.getString("publisher");
String year = rs.getString("year");
if (title != null) {
result += id + " " + title + " " + publisher + " " + year
+ "\n";
}
}
return result;
}
@Override
public Restlet createInboundRoot() {
Router router = new Router();
router.attach("http://localhost:8182/books", restlet1);
router.attach("http://localhost:8182/books/where/{name}", restlet2);
router.attach(
"http://localhost:8182/books/insert/{title}/{publisher}/{year}/{price}",
restlet3);
router.attach("http://localhost:8182/datas/{year}/{month}/{day}",
restlet4);
router.attach("http://192.168.0.3:8182/books", restlet1);
router.attach("http://192.168.0.3:8182/books/where/{name}", restlet2);
router.attach(
"http://192.168.0.3:8182/books/insert/{title}/{publisher}/{year}/{price}",
restlet3);
router.attach("http://192.168.0.3:8182/datas/{year}/{month}/{day}",
restlet4);
// (title, publisher, year, price)
return router;
}
public Restlet restlet4 = new Restlet(getContext()) {
@Override
public void handle(Request request, Response response) {
// Print the user name of the requested orders
String year = (String) request.getAttributes().get("year");
String month = (String) request.getAttributes().get("month");
String day = (String) request.getAttributes().get("day");
String message = "";
try {
message += selectDatas(stmt, year, month, day);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setEntity(message, MediaType.TEXT_PLAIN);
}
};
public static String selectDatas(Statement stmt, String year, String month,
String day) throws SQLException {
ResultSet rs = stmt.executeQuery("SELECT * FROM datas WHERE year = "
+ year + " && month =" + month + "&& day=" + day + ";");
String result = "";
while (rs.next()) {
int id = rs.getInt("data_id");
String contents = rs.getString("contents");
if (contents != null) {
result += id + " " + year + " " + month + " " + day + " "
+ contents + "\n";
}
}
return result;
}
public Restlet restlet3 = new Restlet(getContext()) {
@Override
public void handle(Request request, Response response) {
// Print the user name of the requested orders
String title = (String) request.getAttributes().get("title");
String publisher = (String) request.getAttributes()
.get("publisher");
String year = (String) request.getAttributes().get("year");
String price = (String) request.getAttributes().get("price");
try {
insertBooks(stmt, title, publisher, year, price);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String message = "";
try {
message += selectBooks(stmt);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setEntity(message, MediaType.TEXT_PLAIN);
}
private void insertBooks(Statement stmt, String title,
String publisher, String year, String price)
throws SQLException {
// TODO Auto-generated method stub
// INSERT INTO books (title, publisher, year, price)
// VALUES('Operating System Concepts', 'Wiley', '2003', 30700);
stmt.execute("INSERT INTO books (title, publisher, year, price)"
+ "VALUES('" + title + "','" + publisher + "','" + year
+ "'," + price + ");");
}
};
public Restlet restlet2 = new Restlet(getContext()) {
@Override
public void handle(Request request, Response response) {
// Print the user name of the requested orders
String name = (String) request.getAttributes().get("name");
String message = "";
try {
message += selectBooks(stmt, name);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setEntity(message, MediaType.TEXT_PLAIN);
}
};
public Restlet restlet1 = new Restlet() {
public void handle(Request request, Response response) {
String message = "";
try {
message += selectBooks(stmt);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setEntity(message, MediaType.TEXT_PLAIN);
}
};
}