sqlite mysql_mysql和sqlite的使用总结

mysql安装:

在安装的过程中可能会遇到一些问题,比如出现Error 2003 : Can’t connect to MYSQL server

on

‘localhost’(10061),就是安装到最后一步出现错误。原因可能有两个,一是你之前安装过mysql,但是没有卸载清除干净;二是因为第一次安装,mysql没有启动。

解决方法:

1. 在重复安装mysql时,必须将之前和mysql相关的一切都停止(服务,安装目录,进程,注册表),卸载掉,重启计算机再重新安装,否则在配置时,会报错。或者在每次开启Mysql时都要在管理->服务中找到相应的mysql,开启。在“服务”中停止mysql服务,在控制面板中卸载掉mysql,删除掉mysql的安装目录,在注册表中删除掉mysql的相应目录。然后重新运行Mysql安装程序。在cmd中输入regedit进入注册表,找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MySQL5,删除它。在重新安装的时候可以重新选择MYSQL的名字,选择4或者3什么的,和以前安装的时候用不同的名字。

2. 删除c:\windows下的My.ini;

然后打开c:\mysql\bin\winmysqladmin.exe,输入用户名和密码; 然后在dos下输入mysqld-nt

–remove删除服务,再接着输入mysqld-nt –install,输入mysql,启动成功。可以参考http://wenwen.soso.com/z/q35875881.htm

在命令行中运行mysql各种常见命令

注意每个sql语句命令都要以分号结束。

连接命令:mysql –h[主机地址] –u[用户名] –p[用户密码]

创建数据库: create database [数据库名];

显示所有数据库:show databases;

打开数据库: use [库名];

当前选择的库状态:select database();

创建表: create table [表名]([字段名][字段类型][字段要求][字段参数],……);

显示表字段:describe 表名;

显示所有表格:show tables;

删除库:drop database[库名];

删除表:drop table[表名];

添加:insert into [表名] values(“”,””,……);

查询: select * from [表名] where ([条件]);

删除: delete from [表名] where ([条件]);

查询表的所有约束:show create table [表名];

java 实现mysql的jdbc连接例子

首先在mysql控制台创建数据库;

SQL代码:

Create database test;

Use test;

Create table user(username varchar(15),password

varchar(20));

Insert into user values(‘userone’,’123456’);

Java代码:

package com.dgy.util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class TestJDBC {

static Connection conn =

null;

public static

Connection getConnectionByJDBC() {

//在此处必须用try来检查装载驱动包是否安装正常,可以用mysql-connector-java-5.0.8-bin.jar等版本的包。否则,会报错java.lang.ClassNotFoundException:

com.mysql.jdbc.Driver。

try {

//装载驱动包类

Class.forName(com.mysql.jdbc.Driver");    //加载驱动

}catch(ClassNotFoundException e) {

System.out.println("装载驱动包出现异常!请查正!");

e.printStackTrace();

}

try{

//建立jdbc连接,要注意第一个参数, 如果127.0.0.1出现CommunicationsException异常,可能就需要改为localhost才可以,test是数据库

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");

}catch(SQLException e) {

System.out.println("链接数据库发生异常!");

e.printStackTrace();

}

return conn;

}

public static void test(){

String sql = "select * from user";

getConnectionByJDBC();

try{

//创建一个jdbc声明

Statement stmt = conn.createStatement();

//执行查询

// Statement 用于执行静态 SQL 语句并返回它所生成结果的对象,

在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet

对象。 因此,如果读取一个 ResultSet

对象与读取另一个交叉,则这两个对象必须是由不同的Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet

对象,则Statement 接口中的所有执行方法都会隐式关闭它。ResultSet

表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。ResultSet

对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。next 方法将指针移动到下一行;因为该方法在 ResultSet

对象中没有下一行时返回 false,所以可以在 while 循环中 使用它来迭代结果集。

ResultSet rs = stmt.executeQuery(sql);

while(rs.next()) {

String username = rs.getString("username");

String password= rs.getString("password");

System.out.println(username +""+ password);

}

}catch (SQLException e){

System.out.println(e.getMessage());

e.printStackTrace();

}finally{

//预防性关闭连接(避免异常发生时在try语句块关闭连接没有执行)

try{

if(conn !=

null) conn.close();

} catch(SQLException e){

System.out.println(e.getMessage());

e.printStackTrace();

}

}

}

public static void main(String[] args){

TestJDBC testjdbc = new TestJDBC();

testjdbc.test();

}

}

不过在链接比较频繁时,建议使用数据源链接池的方法,那样比较快

和网址http://java.chinaitlab.com/JDBCJDO/763969.html

程序遇到的问题:

其中数据库名为userifo,表明为table,表中有三个字段:id(自动增量)、username(字符串)、password(字符串)

String name=request.getParameter("name");String

pass=request.getParameter("pass");

String sql="INSERT INTO userinfo.table(username,password) values

(?,?)";

PreparedStatement pstm=conn.prepareStatement(sql);

pstm.setString(1, name);

pstm.setString(2, pass);

pstm.executeUpdate();

运行后报错:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:

You have an error in your SQL syntax;

但是如果把sql改为:String sql="insert into

userinfo.table(username,password)

values('"+name+"','"+pass+"')";

就可以运行。

改为String sql="INSERT INTO userinfo.table(username,password) values

(?,?,?)";然后pstm.setString的类似语句写三次,就是对每个?都进行插入即可。这里插入的序号和values中的?是相对应的。

mysql数据库中文乱码问题

解决乱码最好的方法是在项目设计之初,统一所有的字符集,例如页面、request对象以及数据库等等。

几种常见的乱码现象:

1、页面乱码

单纯的页面乱码是很好解决的,只要修改头部适合的字符集即可,如果页面中文显示乱码,你可以把字符集修改为:gb2312或gbk。

2、页面之间传递的参数是乱码

页面之间传递参数出现的乱码,就要解决页面编码和requset的字符集问题,在参数传进传出时重新设置相应的字符集。比如:request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");

3、数据库乱码(mysql)

在安装数据库的时候有一个默认设置所有字符集为latin1,如果安装的时候没有注意,那么在安装后可以用config

vizard进行重新设置数据库的字符集。选择gbk或者gb2312。

在DOS命令下进入数据库查阅字符集(show variables

like"%char%"; )显示如下:

+--------------------------+---------------+

| Variable_name | Value |

+--------------------------+---------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

+--------------------------+---------------+

+--------------------------+---------------+

|

Variable_name |

Value |

+--------------------------+---------------+

|

character_set_client |

latin1 |

| character_set_connection |

latin1 |

|

character_set_database |

latin1 |

| character_set_filesystem |

binary |

|

character_set_results |

latin1 |

|

character_set_server |

latin1 |

|

character_set_system |

utf8 |

+--------------------------+---------------+

1、修改数据库默认字符集:

打开C:\Program Files\MySQL\MySQL Server 5.0里面的my.ini文件找到这段文字:

# The default character set that will be used when a new schema or

table is

# created and no character set is defined

default-character-set=latin1

把default-character-set=latin1改为default-character-set=gbk

这时候show 一下字符集(重新启动mysql服务,命令:show variables like"%char%";

)显示如下:

+--------------------------+---------------+

| Variable_name | Value |

+--------------------------+---------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | gbk |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

+--------------------------+---------------+

+--------------------------+---------------+

|

Variable_name |

Value |

+--------------------------+---------------+

|

character_set_client |

latin1 |

| character_set_connection |

latin1 |

|

character_set_database |

gbk |

| character_set_filesystem |

binary |

|

character_set_results |

latin1 |

|

character_set_server |

latin1 |

|

character_set_system |

utf8 |

+--------------------------+---------------+

2、如果你是导入的数据库,需要对my.ini做如下修改找到

引用

[client]

port=3306

[mysql]

default-character-set=latin1

把 default-character-set=latin1改为default-character-set=gbk

# SERVER SECTION

#

----------------------------------------------------------------------

#

# The following options will be read by the MySQL Server. Make sure

that

# you have installed the server correctly (see above) so it reads

this

# file.

#

[mysqld]

找到

增加default-character-set=gbk

然后在设置一下你导入的数据库字符集即可:

命令:alter database 你的数据库名 charset = gbk;

重新启动mysql服务,show 一下字符集(,命令:show variables like"%char%"; )显示如下:

+--------------------------+---------------+

| Variable_name | Value |

+--------------------------+---------------+

| character_set_client | gbk |

| character_set_connection | gbk |

| character_set_database | gbk |

| character_set_filesystem | binary |

| character_set_results | gbk |

| character_set_server | gbk |

| character_set_system | utf8 |

+--------------------------+---------------+

+--------------------------+---------------+

|

Variable_name |

Value |

+--------------------------+---------------+

|

character_set_client |

gbk |

| character_set_connection |

gbk |

|

character_set_database |

gbk |

| character_set_filesystem |

binary |

|

character_set_results |

gbk |

|

character_set_server |

gbk |

|

character_set_system |

utf8 |

+--------------------------+---------------+

如果你见到如上内容,数据库字符集问题已解决。

如果你的项目还有字符集问题,那就需要查看一下是否是其他因素导致的乱码了。

比如在创建数据库的时候可以加上对字符集的控制;

Create database [数据库名] character set gbk;

在程序进行数据库连接的时候进行设置,如:

Connection con =

DriverManager.getConnection("jdbc:mysql://localhost:3306/wjl?useUnicode=true&characterEncoding=gbk","root","morgan");

sqlite的使用

在智能手机上系统会自带一个数据库系统sqlite。其使用大概和mysql类似,具体可见网址http://mobile.51cto.com/android-320675.htm。

在cmd下,进入android-sdk-windows/platform-tools,输入adb

shell,进入shell之后可以rm database [库名],也可以cd

data/data/moc.morgan,进入自己数据库所在的包中,输入ls,可以看到自己的数据库,点击sqlite3

[库名],就可以进入数据库。.tables;是显示所有的表格,下面的操作和mysql是相一致的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值