Java学习笔记之中文字符初步解决方案的内容分析

Java学习笔记之中文字符初步解决方案的内容分析

前言:一提起数据库偶就心血来潮温故了下以前的东西。记得以前就被一个数据库写入读取时候遇到的中文字节编码的问题给懵了半天,后来以我三天打鱼两天晒网的生活习惯,我就放那里没理他了,反正也没什么要我急于解决的。最近要弄那个密码和ID的验证,必须用到数据库了这次,本来也是,不准备放用户名的,但是后来玩着玩着感觉这样全输入英文的太不爽了,当然就要解决这个问题来了,不过稍微看了下,基本程序能用了,就是老要转换编码很是麻烦。

这个是临时我没事做了个测试用的JFrame,老单独设置蛮麻烦的,于是就独立一个出来,以后测试都用它就行了,呵呵。

Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析/*
Java学习笔记之中文字符初步解决方案的内容分析*一个窗口的公共类
Java学习笔记之中文字符初步解决方案的内容分析*
Java学习笔记之中文字符初步解决方案的内容分析
*/

Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析importjava.awt.
*;
Java学习笔记之中文字符初步解决方案的内容分析importjavax.swing.
*;
Java学习笔记之中文字符初步解决方案的内容分析importjava.awt.
event.*;
Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicclassSosoFrameextendsJFrame{
Java学习笔记之中文字符初步解决方案的内容分析
privateJTextAreajta=null;
Java学习笔记之中文字符初步解决方案的内容分析
privateJTextFieldjtf=null;
Java学习笔记之中文字符初步解决方案的内容分析
privateJButtonjbOK=null;
Java学习笔记之中文字符初步解决方案的内容分析
privateJButtonjbCancel=null;
Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicSosoFrame(Stringname){
Java学习笔记之中文字符初步解决方案的内容分析super(name);
Java学习笔记之中文字符初步解决方案的内容分析jbOK
=newJButton("确定");
Java学习笔记之中文字符初步解决方案的内容分析jbCancel
=newJButton("取消");
Java学习笔记之中文字符初步解决方案的内容分析JPaneljpSouth
=newJPanel(newFlowLayout());
Java学习笔记之中文字符初步解决方案的内容分析jta
=newJTextArea();
Java学习笔记之中文字符初步解决方案的内容分析jta.setRows(
5);
Java学习笔记之中文字符初步解决方案的内容分析jta.setEditable(
false);
Java学习笔记之中文字符初步解决方案的内容分析jtf
=newJTextField(20);
Java学习笔记之中文字符初步解决方案的内容分析jpSouth.add(jtf);
Java学习笔记之中文字符初步解决方案的内容分析jpSouth.add(jbOK);
Java学习笔记之中文字符初步解决方案的内容分析jpSouth.add(jbCancel);
Java学习笔记之中文字符初步解决方案的内容分析JScrollPanejsp
=newJScrollPane(jta);
Java学习笔记之中文字符初步解决方案的内容分析
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Java学习笔记之中文字符初步解决方案的内容分析
this.add(newJLabel("Soso'sFrame"),BorderLayout.NORTH);
Java学习笔记之中文字符初步解决方案的内容分析
this.add(jsp,BorderLayout.CENTER);
Java学习笔记之中文字符初步解决方案的内容分析
this.add(jpSouth,BorderLayout.SOUTH);
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicvoiddisplay(booleanshow){
Java学习笔记之中文字符初步解决方案的内容分析
this.pack();
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
if(show){
Java学习笔记之中文字符初步解决方案的内容分析
this.setVisible(true);
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析else{
Java学习笔记之中文字符初步解决方案的内容分析
this.setVisible(false);
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicJTextFieldgetTextField(){
Java学习笔记之中文字符初步解决方案的内容分析
returnjtf;
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicJTextAreagetTextArea(){
Java学习笔记之中文字符初步解决方案的内容分析
returnjta;
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicJButtongetButtons(intc){
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
switch(c){
Java学习笔记之中文字符初步解决方案的内容分析
case1:
Java学习笔记之中文字符初步解决方案的内容分析
returnthis.jbOK;
Java学习笔记之中文字符初步解决方案的内容分析
case2:
Java学习笔记之中文字符初步解决方案的内容分析
returnthis.jbCancel;
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析returnnull;
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicvoidjtaAppend(Stringcontent){
Java学习笔记之中文字符初步解决方案的内容分析jta.append(content
+" ");
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析}

下面是个数据库的连接显示文件:

Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析/*
Java学习笔记之中文字符初步解决方案的内容分析*MySql数据库的中文输入问题
Java学习笔记之中文字符初步解决方案的内容分析*
Java学习笔记之中文字符初步解决方案的内容分析
*/

Java学习笔记之中文字符初步解决方案的内容分析importjava.sql.*;
Java学习笔记之中文字符初步解决方案的内容分析
importjava.io.*;
Java学习笔记之中文字符初步解决方案的内容分析
importjava.awt.event.*;
Java学习笔记之中文字符初步解决方案的内容分析
importjavax.swing.*;
Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
classMySQLDB{
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicstaticConnectiongetConnection()throwsSQLException,java.lang.ClassNotFoundException{
Java学习笔记之中文字符初步解决方案的内容分析
//数据库名称
Java学习笔记之中文字符初步解决方案的内容分析Stringdbname="test";
Java学习笔记之中文字符初步解决方案的内容分析
//取得连接的url
Java学习笔记之中文字符初步解决方案的内容分析Stringurl="jdbc:mysql://localhost:3306/"+dbname;
Java学习笔记之中文字符初步解决方案的内容分析
//加载MySQL的jdbc驱动
Java学习笔记之中文字符初步解决方案的内容分析Class.forName("org.gjt.mm.mysql.Driver");
Java学习笔记之中文字符初步解决方案的内容分析
//使用能访问MySQL数据库的用户名root
Java学习笔记之中文字符初步解决方案的内容分析StringuserName="root";
Java学习笔记之中文字符初步解决方案的内容分析
//使用口令
Java学习笔记之中文字符初步解决方案的内容分析Stringpassword="admin";
Java学习笔记之中文字符初步解决方案的内容分析
//打开数据库连接
Java学习笔记之中文字符初步解决方案的内容分析Connectioncon=DriverManager.getConnection(url,userName,password);
Java学习笔记之中文字符初步解决方案的内容分析
returncon;
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicstaticvoidmain(String[]args){
Java学习笔记之中文字符初步解决方案的内容分析
finalSosoFrameframe=newSosoFrame("数据库测试");
Java学习笔记之中文字符初步解决方案的内容分析frame.jtaAppend(
"数据库测试,这里是显示区域");
Java学习笔记之中文字符初步解决方案的内容分析
finalJButtonjbCancel=frame.getButtons(2);
Java学习笔记之中文字符初步解决方案的内容分析
finalJButtonjbOK=frame.getButtons(1);
Java学习笔记之中文字符初步解决方案的内容分析jbCancel.addActionListener(
newActionListener()
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
{
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicvoidactionPerformed(ActionEvente){
Java学习笔记之中文字符初步解决方案的内容分析System.exit(
0);
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析);
Java学习笔记之中文字符初步解决方案的内容分析jbOK.addActionListener(
newActionListener()
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
{
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicvoidactionPerformed(ActionEvente){
Java学习笔记之中文字符初步解决方案的内容分析
//System.exit(0);
Java学习笔记之中文字符初步解决方案的内容分析
//读取数据库!
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析if(!frame.getTextField().getText().trim().equals("")){
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析);
Java学习笔记之中文字符初步解决方案的内容分析frame.display(
true);
Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
try{
Java学习笔记之中文字符初步解决方案的内容分析
//BufferedReaderbuffReader=null;
Java学习笔记之中文字符初步解决方案的内容分析Connectioncon=getConnection();
Java学习笔记之中文字符初步解决方案的内容分析Statementstmt
=con.createStatement();
Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Stringsql
=newString("insertintotest(name)values('丁丁')");
Java学习笔记之中文字符初步解决方案的内容分析sql
=newString(sql.getBytes("GBK"),"8859_1");
Java学习笔记之中文字符初步解决方案的内容分析stmt.executeUpdate(sql);
Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析ResultSetrs
=stmt.executeQuery("select*fromtest");
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
while(rs.next()){
Java学习笔记之中文字符初步解决方案的内容分析
intid=rs.getInt(1);
Java学习笔记之中文字符初步解决方案的内容分析Stringname
=newString(rs.getString(2).getBytes("8859_1"),"GBK");
Java学习笔记之中文字符初步解决方案的内容分析frame.jtaAppend(id
+""+name);
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析rs.close();
Java学习笔记之中文字符初步解决方案的内容分析stmt.close();
Java学习笔记之中文字符初步解决方案的内容分析con.close();
Java学习笔记之中文字符初步解决方案的内容分析
//buffReader.close();
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析catch(Exceptione){
Java学习笔记之中文字符初步解决方案的内容分析e.printStackTrace();
Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析}

Java学习笔记之中文字符初步解决方案的内容分析}

做了些基本的,也就插插读读的。读出来的时候一定要以8859_1的格式读入,并且转换成GBK的,当然如果是中文操作系统就默认是GBK的,写入的时候要指定写入流为8859_1的,不然是乱码,也就只能麻烦自己手一点了,哎~苦命那……

昨天太急匆匆了,忘记说了,我用的是MYSQL4.1,装好后是用utf8编码格式的。

后参考了个很爽的地方:http://imysql.cn/,里面东西蛮全蛮多的,呵呵,关心MySQL的朋友不妨去看看,会有很大帮助的。说实话,最近看了好多关于编码集的文章,脑子里面着实有点乱!!

经过不容易的修改,终于把最后的方案定下来了(只是这个测试用的方案,嘿嘿)

Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析/*
Java学习笔记之中文字符初步解决方案的内容分析*MySql数据库的中文输入问题
Java学习笔记之中文字符初步解决方案的内容分析*
Java学习笔记之中文字符初步解决方案的内容分析
*/

Java学习笔记之中文字符初步解决方案的内容分析importjava.sql.*;
Java学习笔记之中文字符初步解决方案的内容分析
importjava.io.*;
Java学习笔记之中文字符初步解决方案的内容分析
importjava.awt.event.*;
Java学习笔记之中文字符初步解决方案的内容分析
importjavax.swing.*;
Java学习笔记之中文字符初步解决方案的内容分析
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
classMySQLDB{
Java学习笔记之中文字符初步解决方案的内容分析Java学习笔记之中文字符初步解决方案的内容分析
publicstaticConnectiongetConnection()throwsSQLException,java.lang.ClassNotFoundException{
Java学习笔记之中文字符初步解决方案的内容分析
//数据库名称
Java学习笔记之中文字符初步解决方案的内容分析Stringdbname="latin";
Java学习笔记之中文字符初步解决方案的内容分析
//取得连接的url
Java学习笔记之中文字符初步解决方案的内容分析Stringurl="jdbc:mysql://localhost:3306/"+dbname;
Java学习笔记之中文字符初步解决方案的内容分析
//加载MySQL的jdbc驱动
Java学习笔记之中文字符初步解决方案的内容分析Class.forName("org.gjt.mm.mysql.Driver");
Java学习笔记之中文字符初步解决方案的内容分析
//使用能访问MySQL数据库的用户名root
Java学习笔记之中文字符初步解决方案的内容分析StringuserName="root";
Java学习笔记之中文字符初步解决方案的内容分析
//使用口令
Java学习笔记之中文字符初步解决方案的内容分析Stringpassword="admin";