您的位置:首页 > 数据库 > MySQL

mysql相关知识

2013-08-05 10:07 99 查看
1.mysql无法启动可以尝试的操作

"开始"-->"运行"-->regedit-->HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services-->把mysql的对应服务那项全部删除掉
然后在cmd窗口执行://即进入mysql安装目录下的bin目录,为了执行mysqld.exe文件

cd D:/MySQL/MySQL Server 5.1/bin

接着再执行: //目的是为了写入注册表

mysqld --install mysql --defaults-file="D:/MySQL/MySQL Server 5.1/my.ini"

然后启动服务:

net start mysql

2.mysql代码编写

2.1.mysql建表与所学的sql server 2000基本一样,例如:

create table 表名

(

一属性 int primary key auto_increment,//定义主键及自动升序排序

二属性 varchar(13),

三属性 varchar(13)

foreign key (...) references 某表(某属性)//外键定义

);

2.2.插入数据:insert into 表名 values(一属性值,二属性值,...);

2.3.分页程序:select * from 表名 order by 属性名 desc或asc limit 3,1;//表示查找降序或升序排列的第三条后面的一条数据

2.4.查询时间:select now();
2.5.自定义时间格式输出:select date_format(now(),'%Y任意符号%m 任意符号 %d
%H 任意符号%i 任意符号 %s' );

2.6.查看表:desc 表名;

2.7.直接执行带有代码的文件生成表,使用\.,例如\. c:\\mysql\\mydata.sql;
3.eclipse相关联

3.1.下载lomboz,一般选择全部下载,压缩包中包含eclipse,最新版本显示database explorer与旧版本有点区别,是在data source explorer出设置,new新的connection,其中注意db路径及名称的正确,否则将导致连接数据库失败,ping error。

*3.2.jdbc编程步骤

规则基本固定例如:

ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
try {
Class.forName("mysql.jdbc.driver.OracleDriver");
//new oracle.jdbc.driver.OracleDriver();
//mysql写法
Class.forName("com.mysql.jdbc.Driver");//第一步new出驱动,路径看jar包
//第二步连接,ip地址+端口+SXT指对外提供的名字
conn = DriverManager.getConnection("jdbc:mysql:thin:@192.168.0.1:1521:SXT", "scott", "tiger");
mysql的话是:
//三个参数,1.数据库的连接字符串2.用户名3.密码
conn = DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=wan");
第三步execute the sql
stmt = conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
String sql = "insert into dept2 values (98, 'GAME', 'BJ')";//字符串插入,用单引号
stmt.executeUpdate(sql);//第三步
rs = stmt.executeQuery("select * from dept");//第三步;rs好比游标,指在第一条记录的上面,所以一开始要rs.next()
while(rs.next()) {//第四步查询,让游标移下一步,指向记录,用while进行遍历
//第五步显示
System.out.println(rs.getString("deptno"));//以字符串形式拿出来
System.out.println(rs.getInt("deptno"));//以int形式拿出来
}
} catch (ClassNotFoundException e) {//大型项目最好将这些错误记录日志内,方便查找
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {//编程要规范,try-catch防止异常导致conn,stmt,rs没关闭
try {//内部关闭再写try-catch
//第六步关闭
if(rs != null) {//后打开的先关
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}

*3.3运用PreparedStatement可以灵活指定sql中的变量,通过如下形式输入,例如:

pstmt = conn.prepareStatement("insert into dept2 values (?, ?, ?)");//这样无需记住啥地方用单引号,啥地方不用
pstmt.setInt(1, deptno);//确定第一个问号的值,是int,值为deptno
pstmt.setString(2, dname);//deptno为整型变量,dname和loc为字符串变量
pstmt.setString(3, loc);
pstmt.executeUpdate();

3.4存储过程类CallableStatement,核心方法如下:

CallableStatement cstmt = conn.prepareCall("{call 存储过程名(?, ?, ?, ?)}");//问号表示参数

cstmt.registerOutParameter(3, Types.INTEGER);//注册第三个是输出参数,Types是输出类型参数

3.5批处理方法,例如:

stmt.addBatch("insert into 表名 values (..., '...', '...')");//stmt为Statement类型

stmt.addBatch("insert into 表名 values (..., '...', '...')");

stmt.executeBatch();//一次性提交,不需要写一次提交一次execute

*3.6Transaction,核心步骤:

3.6.1conn.setAutoCommit(false);//不让其自动提交,防止提交了一条之后出错数据不一致

3.6.2进行一系列对表操作

3.6.3stmt.executeBatch();//将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。

3.6.4conn.commit();//手动提交给数据库

3.6.5conn.setAutoCommit(true);//再将自动提交改回来
3.7.滚动,例如:

Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,//对滚动不敏感,即你可以随意滚动
ResultSet.CONCUR_READ_ONLY);//只能够读

System.out.println(rs.isAfterLast());//是不是最后一条的下一条
System.out.println(rs.getRow());//当前是第几条记录
rs.previous();//往前一条
System.out.println(rs.getString(1));
rs.absolute(6);//直接定位到第六条

3.8.DataSource很方便实现连接池及分布式,也能拿到数据库的连接。

RowSet从ResultSet继承,接受图形化接口,支持断开结果集,支持JavaBean标准。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: