
17.11.2008, 21:48
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 413
С нами:
9655526
Репутация:
1334
|
|
Сообщение от N19hTW0lF
Как поменять Кодировку уже таблицы
как сделать поиск по бд
1 Поменять кодировку уже существующей таблицы можно с помощью SQL-запросов, отправляемых из приложения, или с помощью phpMyAdmin.
Вот пример получающего данные от клиента в кодировке CP1251 и сохраняющего их в таблицу с кодировкой UTF-8:
Код:
import java.io.*;
import java.sql.*;
import java.util.Properties;
import javax.servlet.*;
import javax.servlet.http.*;
/*
Для работы этого примера требуется предварительно создать таблицу с помощью следующего SQL-запроса:
CREATE TABLE test (id INT AUTO_INCREMENT PRIMARY KEY, value VARCHAR(255)) CHARACTER SET utf8
*/
public class DBServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//указываем кодировку для HTML-страницы, отправляемой клиенту
response.setContentType("text/html; charset=windows-1251");
//указываем кодировку для данных полученых от клиента
request.setCharacterEncoding("CP1251");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>DBServlet</title></head>");
out.println("<body>");
out.println("<form method=\"post\" action=\"dbservlet\">");
out.println("<input type=\"text\" name=\"t1\">");
out.println("<input type=\"submit\">");
out.println("</form>");
out.println("<hr>");
try{
Connection connection=getDBConnection();
Statement statement=connection.createStatement();
if(request.getMethod().equals("POST")){
String t1=(request.getParameter("t1")!=null)?request.getParameter("t1").trim():"";
if(t1.length()>0){
statement.executeUpdate("INSERT INTO test ( value ) VALUES ('"+t1+"')");
}
}
ResultSet result=statement.executeQuery("SELECT id, value FROM test ORDER BY id DESC");
out.println("<table border=\"1\">");
out.println("<tr><th>id</th><th>value</th></tr>");
while(result.next()){
out.println("<tr>");
out.println("<td>"+result.getString("id")+"</td>");
out.println("<td>"+result.getString("value")+"</td>");
out.println("</tr>");
}
out.println("</table>");
connection.close();
}catch(Exception e){
log(e.toString());
}
out.println("</body>");
out.println("</html>");
}
/*
Не самый лучший метод для получения соединения с базой данных.
Для повышения производительности при работе с базами данных использовать
пулы соединений.
*/
protected Connection getDBConnection()throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Properties properties=new Properties();
properties.setProperty("user","логин");
properties.setProperty("password","пароль");
/*
настройки указывающие о необходимости конвертировать данные из Unicode в UTF-8,
который используется в таблице для хранения данных
*/
properties.setProperty("useUnicode","true");
properties.setProperty("characterEncoding","UTF-8");
return(DriverManager.getConnection("jdbc:mysql://localhost:3306/имяБазы", properties));
}
}
Последний раз редактировалось cash$$$; 17.11.2008 в 22:01..
|
|
|