Задавайте вопросы, мы ответим
Вы не зашли.
Мой тейбл не принимает русские буквы.
Хелп.
Код:
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.Properties;
import java.util.Vector;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
public class All_battles {
All_battles(){
final JFrame frame = new JFrame("Список баттлів_1");
JMenuBar Menu = new JMenuBar();
Font font = new Font("Arial",Font.PLAIN,14);
frame.setJMenuBar(Menu);
JMenu File = new JMenu("Файл");
File.setFont(font);
Menu.add(File);
JMenuItem main = new JMenuItem("Головна");
main.setFont(font);
File.add(main);
main.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Main_form();
frame.setVisible(false);
}
});
JMenuItem About = new JMenuItem("Про розробника");
About.setFont(font);
File.add(About);
About.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new About();
}});
JMenuItem Exit = new JMenuItem("Вихід");
Exit.setFont(font);
File.add(Exit);
Exit.addActionListener(new ActionListener (){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
JMenu BD = new JMenu("База даних");
BD.setFont(font);
Menu.add(BD);
JMenuItem Round = new JMenuItem("Раунд");
Round.setFont(font);
BD.add(Round);
Round.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Round();
frame.setVisible(false);}});
JMenuItem Ocinku = new JMenuItem("Оцінки суддів");
Ocinku.setFont(font);
BD.add(Ocinku);
Ocinku.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Ocinku();
frame.setVisible(false);}});
JMenu Tables = new JMenu("Таблиця");
Tables.setFont(font);
Menu.add(Tables);
JMenuItem Indabattle2 = new JMenuItem("Indabattle 2");
Indabattle2.setFont(font);
Tables.add(Indabattle2);
Indabattle2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Indabattle2();
frame.setVisible(false);}});
JMenuItem battle8 = new JMenuItem("Восьмий офіціальний баттл");
battle8.setFont(font);
Tables.add(battle8);
battle8.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new battle8();
frame.setVisible(false);}});
JMenu help = new JMenu("Довідка");
help.setFont(font);
Menu.add(help);
JMenuItem battle = new JMenuItem("Баттл");
battle.setFont(font);
help.add(battle);
//////////////////////////////////////
GridLayout extrakt5Layout = new GridLayout(1,2,5,5);
JPanel panel2 = new JPanel();
panel2.setLayout(extrakt5Layout);
frame.add(panel2);
JButton button6=new JButton ("Видалити");
panel2.add(button6);
JButton button10=new JButton ("Редагувати");
panel2.add(button10);
panel2.setVisible(true);
//////////////////////
GridLayout extrakt4Layout = new GridLayout(1,1,5,5);
JPanel panel1 = new JPanel();
panel1.setLayout(extrakt4Layout);
frame.add(panel1);
final JTextField edit8 = new JTextField();
panel1.add(edit8);
JButton button7=new JButton ("Пошук");
panel1.setVisible(true);
panel1.add(button7);
///////////////////////////////
frame.setLayout(new FlowLayout());
GridLayout extrakt3Layout = new GridLayout(8,2,2,2);
JPanel panel = new JPanel();
panel.setLayout(extrakt3Layout);
frame.add(panel);
JLabel label7 = new JLabel("Код");
panel.add(label7);
final JTextField edit7 = new JTextField(10);
panel.add(edit7);
JLabel label1 = new JLabel("Назва баттлу");
panel.add(label1);
final JTextField edit1 = new JTextField(10);
panel.add(edit1);
JLabel label2 = new JLabel("Рік");
panel.add(label2);
final JTextField edit2 = new JTextField(10);
panel.add(edit2);
JLabel label3 = new JLabel("К-сть раундів");
panel.add(label3);
final JTextField edit3 = new JTextField(10);
panel.add(edit3);
JLabel label4 = new JLabel("К-ість учасників");
panel.add(label4);
final JTextField edit4 = new JTextField(10);
panel.add(edit4);
JLabel label5 = new JLabel("Призовий фонд");
panel.add(label5);
final JTextField edit5 = new JTextField(10);
panel.add(edit5);
JLabel label6 = new JLabel("Переможець");
panel.add(label6);
final JTextField edit6 = new JTextField(10);
panel.add(edit6);
JButton button1=new JButton ("Додати");
button1.addActionListener(new ActionListener(){
private Component table1;
public void actionPerformed(ActionEvent e){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
} catch (IllegalAccessException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
} catch (ClassNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
Connection con = null;
try {
// con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "pit", "");
Properties properties=new Properties();
properties.setProperty("user","root");
properties.setProperty("password","764669");
/*
настройки указывающие о необходимости конвертировать данные из Unicode
в UTF-8, который используется в нашей таблице для хранения данных
*/
String url = "jdbc:mysql://localhost:3306/test" + "?characterEncoding=cp1251";
con = DriverManager.getConnection( url, properties );
//properties.setProperty("useUnicode","true");
//properties.setProperty("characterEncoding","Cp1251");
// con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",properties);
} catch (SQLException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
PreparedStatement s;
Statement st = null;
try {
st = con.createStatement();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int KOD = 0,PIK,ROUNDS,MC;
String NAME,WINNER;
double MONEY;
//date Data;
KOD=Integer.parseInt(edit7.getText());
NAME=edit1.getText();
PIK=Integer.parseInt(edit2.getText());
ROUNDS=Integer.parseInt(edit3.getText());
MC=Integer.parseInt(edit4.getText());
MONEY=Double.parseDouble(edit5.getText());
WINNER=edit6.getText();
//cina=Double.parseDouble(edit2.getText());
//Kilkist_ludey=Integer.parseInt(edit8.getText());
try {
ResultSet result = st.executeQuery("set names cp1251");
st.executeUpdate(
// "INSERT INTO test.tovar(kod,nazva, kilkist) VALUES(67,'One',33)");
// "INSERT INTO test.tovar(kod,nazva, kilkist) VALUES("+Integer.parseInt(edit3.getText())+",'"+edit2.getText()+"',"+Integer.parseInt(edit4.getText())+")");
"INSERT INTO test.all_battles(KOD,NAME,PIK,ROUNDS,MC,MONEY,WINNER) VALUES("+KOD+",'"+NAME+"',"+PIK+","+ROUNDS+","+MC+","+MONEY+",'"+WINNER+"')");
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ResultSet result = null;
try {
result = st.executeQuery("select * from test.all_battles");
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
System.out.println("SQL query executed.");
new All_battles_1();
}
});
//Додати
button7.addActionListener(new ActionListener(){
private Component table1;
public void actionPerformed(ActionEvent e){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
} catch (IllegalAccessException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
} catch (ClassNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
Connection con = null;
try {
// con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "pit", "");
Properties properties=new Properties();
properties.setProperty("user","root");
properties.setProperty("password","764669");
/*
настройки указывающие о необходимости конвертировать данные из Unicode
в UTF-8, который используется в нашей таблице для хранения данных
*/
String url = "jdbc:mysql://localhost:3306/test" + "?characterEncoding=Cp1251";
con = DriverManager.getConnection( url, properties );
//properties.setProperty("useUnicode","true");
//properties.setProperty("characterEncoding","Cp1251");
// con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",properties);
} catch (SQLException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
PreparedStatement s;
Statement st = null;
try {
st = con.createStatement();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
ResultSet result = st.executeQuery("set names cp1251");
result = st.executeQuery("select * from test.all_battles Where NAME='"+edit8.getText()+"'");
while (result.next()) {
// System.out.printf("%s\t%s\t%s\t%s%n",
edit7.setText(result.getString("KOD"));
edit1.setText(result.getString("NAME"));
edit2.setText(result.getString("PIK"));
edit3.setText(result.getString("ROUNDS"));
edit4.setText(result.getString("MC"));
edit5.setText(result.getString("MONEY"));
edit6.setText(result.getString("WINNER"));
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ResultSet result = null;
try {
result = st.executeQuery("select * from test.all_battles");
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
System.out.println("SQL query executed.");
}
});
button6.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Properties properties=new Properties();
properties.setProperty("user","root");
properties.setProperty("password","764669");
properties.setProperty("useUnicode","true");
properties.setProperty("characterEncoding","cp1251");
String url = "jdbc:mysql://localhost:3306/test" + "?characterEncoding=cp1251";
Connection con = DriverManager.getConnection( url, properties );
if(!con.isClosed()){
System.out.print("good");
}
System.out.println("Connection established.");
Statement st = con.createStatement();
// ResultSet result = st.executeQuery("select * from test.sanatorij");
ResultSet result = st.executeQuery("select * from test.all_battles");
System.out.println("SQL query executed.");
// result = st.executeQuery("set names cp1251");
ResultSetMetaData md = result.getMetaData();
int columnCount = md.getColumnCount();
Vector columns = new Vector(columnCount);
for(int i=1; i<=columnCount; i++)
columns.add(md.getColumnName(i));
Vector data = new Vector();
Vector row;
while(result.next())
{
row = new Vector(columnCount);
for(int i=1; i<=columnCount; i++)
{
row.add(result.getString(i));
}
data.add(row);
}
JTable table2 = new JTable(data, columns);
frame.add(table2);
int r=table2.getSelectedRow();
Object k= table2.getValueAt(1,0);
System.out.print("r="+r);
System.out.print("k="+k);
int id = Integer.parseInt(edit7.getText());
String sql = "DELETE FROM all_battles WHERE KOD = "+id;
PreparedStatement statement = con.prepareStatement(sql);
int rows = statement.executeUpdate();
result = st.executeQuery("select * from test.all_battles");
System.out.println("SQL query executed.");
// result = st.executeQuery("set names cp1251");
}
catch (ClassNotFoundException e1) {
System.out.println("Driver not found");
return;
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
new All_battles();
}
});
button10.addActionListener(new ActionListener(){
private Component table1;
public void actionPerformed(ActionEvent e){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
} catch (IllegalAccessException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
} catch (ClassNotFoundException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
Connection con = null;
try {
// con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "pit", "");
Properties properties=new Properties();
properties.setProperty("user","root");
properties.setProperty("password","764669");
/*
настройки указывающие о необходимости конвертировать данные из Unicode
в UTF-8, который используется в нашей таблице для хранения данных
*/
String url = "jdbc:mysql://localhost:3306/test" + "?characterEncoding=cp1251";
con = DriverManager.getConnection( url, properties );
//properties.setProperty("useUnicode","true");
//properties.setProperty("characterEncoding","Cp1251");
// con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",properties);
} catch (SQLException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
PreparedStatement s;
Statement st = null;
try {
st = con.createStatement();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int KOD = 0,PIK,ROUNDS,MC;
String NAME,WINNER;
double MONEY;
//date Data;
KOD=Integer.parseInt(edit7.getText());
NAME=edit1.getText();
PIK=Integer.parseInt(edit2.getText());
ROUNDS=Integer.parseInt(edit3.getText());
MC=Integer.parseInt(edit4.getText());
MONEY=Double.parseDouble(edit5.getText());
WINNER=edit6.getText();
try {
ResultSet result = st.executeQuery("set names cp1251");
st.executeUpdate(
// "INSERT INTO test.tovar(kod,nazva, kilkist) VALUES(67,'One',33)");
// "INSERT INTO test.tovar(kod,nazva, kilkist) VALUES("+Integer.parseInt(edit3.getText())+",'"+edit2.getText()+"',"+Integer.parseInt(edit4.getText())+")");
//"INSERT INTO test.tovar( ,nazva,cina, kilkist) VALUES("+a+",'"+nazva+"',"+cina+","+kilkist+")");
"UPDATE all_battles Set NAME='"+NAME+"',PIK="+PIK+",ROUNDS="+ROUNDS+",MC="+MC+",MONEY="+MONEY+",WINNER='"+WINNER+"' Where KOD="+KOD+"");
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ResultSet result = null;
try {
result = st.executeQuery("select * from test.all_battles");
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
System.out.println("SQL query executed.");
new All_battles_1();
}
});
frame.setVisible(true);
panel.add(button1);
///////////////////////////////////////////////////
try {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
} catch (IllegalAccessException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
// Connection con = DriverManager.getConnection("com.mysql.jdbc:mysql://localhost:3306/test", "pit", "");
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "764669");
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
try {
if(!con.isClosed()){
System.out.print("good");
}
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
System.out.println("Connection established.");
Statement st = null;
try {
st = con.createStatement();
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
//ResultSet result = st.executeQuery("select * from tovar");
ResultSet result = null;
try {
result = st.executeQuery("select * from test.all_battles");
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
System.out.println("SQL query executed.");
ResultSetMetaData md = null;
try {
md = result.getMetaData();
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
int columnCount = 0;
try {
columnCount = md.getColumnCount();
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
Vector columns = new Vector(columnCount);
//store column names
for(int i=1; i<=columnCount; i++)
try {
columns.add(md.getColumnName(i));
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Vector data = new Vector();
Vector row;
//store row data
try {
while(result.next())
{
row = new Vector(columnCount);
for(int i=1; i<=columnCount; i++)
{
row.add(result.getString(i));
}
data.add(row);
}
} catch (SQLException e7) {
// TODO Auto-generated catch block
e7.printStackTrace();
}
final JTable table = new JTable(data, columns);
JPanel p1= new JPanel();
p1.add(table);
JScrollPane scrollBar = new JScrollPane
(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
frame.add(scrollBar);
frame.add(p1);
}
catch (ClassNotFoundException e) {
System.out.println("Driver not found");
return;
};
frame.add(panel2);
frame.setPreferredSize(new Dimension(950, 700));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
// JFrame.setDefaultLookAndFeelDecorated(true);
new All_battles();
}
});
}
public void setVisible(boolean b) {
// TODO Auto-generated method stub
}
}
Ошибка:
Код:
view source
print?
Incorrect string value: '\xFB\xFB' for column 'NAME' at row 1
Неактивен
1. Почему Вы не используете автоматическую экранировку? Это удобно, это
безопасно, и это избавляет Вас от необходимости преобразовывать кодировки
(то, что Вы не делаете).
2. Выполнять SET NAMES в Java не нужно, в ней прекрасно работает автоопре-
деление кодировки.
3. Если явно указываете characterEncoding, то нужно указывать кодировку
с правильным регистром букв (Cp1251).
По поводу первого пункта можно посмотреть статью: http://sqlinfo.ru/articles/info/13.html
По поводу второго и третьего — в документацию MySQL: http://dev.mysql.com/doc/refman/5.0/en/ … rsets.html
Неактивен
paulus написал:
1. Почему Вы не используете автоматическую экранировку? Это удобно, это
безопасно, и это избавляет Вас от необходимости преобразовывать кодировки
(то, что Вы не делаете).
2. Выполнять SET NAMES в Java не нужно, в ней прекрасно работает автоопре-
деление кодировки.
3. Если явно указываете characterEncoding, то нужно указывать кодировку
с правильным регистром букв (Cp1251).
По поводу первого пункта можно посмотреть статью: http://sqlinfo.ru/articles/info/13.html
По поводу второго и третьего — в документацию MySQL: http://dev.mysql.com/doc/refman/5.0/en/ … rsets.html
Всеравно не рабоатет, если исправить регистр.
А если убрать сет неймз, то и латынь н ечитает.
Неактивен
Вы правда усложняете себе жизнь
Неактивен