JAVA运用sqlite数据库的like语句查询失败而且中文是乱码
JAVA使用sqlite数据库的like语句查询失败,而且中文是乱码。
在Windows7里,用Java7和sqlite3,想写一个图书管理程序,但是使用sqlite的like查询语句没有查到相关的结果,而在命令行下用sqlite3.exe命令执行相同的查询语句却有结果。详细代码如下:
Java里面的相关代码:
//用书名查询书籍信息
private void QueryByName()throws Exception
{
// TODO Auto-generated method stub
String name;
System.out.print( 请输入要查找的书名: );
Scanner scanner = new Scanner(System.in);
name = scanner.next();
String querySql = select
book.BookID,book.BookName,book.BookPage,author.Author,author.Translater,type.Typ
eName
+ from book,author,type where book.BookName like \ %
+ name + %\ and author.BookID = book.BookID and
+ book.TypeID = type.TypeID; ;
System.out.println(querySql);
System.in.read();
ResultSet rs = null;
DataBase database = null;
try
{
database = new DataBase();
database.InitDatabase( book.db );
rs = database.RunQuery(querySql);
if (!rs.next())
{
System.out.println( 没有结果...... );
System.in.read();
}
int n = 0;
while (rs.next())
{
System.out.println( 书籍ID: + rs.getInt( BookID ));
System.out.println( 书籍名称: + rs.getString( BookName ));
System.out.println( 书籍页数: + rs.getInt( BookPage ));
System.out.println( 作者: + rs.getString( Author ));
System.out.println( 译者: + rs.getString( Translater ));
System.out.println( 书籍分类: + rs.getString( TypeName ));
n++;
}
System.out.println( 共有 + n + 项结果。 );
System.out.println( 查询结果输出完毕,按回车键继续...... );
System.in.read();
System.in.read();
}
catch (Exception e)
{
System.out.println( 查询书籍信息出错~详细信息: + e.getMessage() +
请按回车键继续...... );
System.in.read();
System.in.read();
return;
}
finally
{
if (rs != null)
{
rs.close();
}
database.CloseDatabase();
}
}
其中RunQuery是另一个类里的成员函数
public ResultSet RunQuery(String sql)throws Exception
{
ResultSet rs;
rs = state.executeQuery(sql);
return rs;
}
程序的插入数据的功能已经完成,并通过该功能插入了一些测试数据,下面是在Windows7命令行下执行sqlite3.exe book.db的结果:
sqlite .schema
CREATE TABLE [author] (
[BookID] INTEGER PRIMARY KEY,
[Translater] VARCHAR(100),
[Author] VARCHAR(100) not null);
CREATE TABLE [book] (
[BookID] INTEGER primary key autoincrement,
[BookName] VARCHAR(100) not null,
[BookPage] INTEGER not null,
[TypeID] INTEGER not null);
CREATE TABLE [type] (
[TypeID] INTEGER PRIMARY KEY,
[TypeName] VARCHAR(100) not null);
sqlite select * from book;
2|sdf|34|342
3|sdf|4334|434
4|dsfds|344|545
32|sdfs|43|434
345|鍝堝搱|324|3428
2324|娴嬭瘯|3543|234235
3324|浣犲ソ|323|344323
在命令行下就是有乱码,不是复制上来才有的。
下面执行最前面贴出的那段JAVA代码的功能:
请输入要查找的书名:sdf
本文档为【JAVA运用sqlite数据库的like语句查询失败而且中文是乱码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。