一、常见问题
1.安装mysql卡在最后start service一步:没有删除干净。删除注册表里所有的mysql相关就可以了。
2.execute、executeUpdate、executeQuery三者的区别(及返回值)
executeQuery | executeUpdate(String sql) | execute(String sql) |
执行SQL查询,并返回ResultSet 对象 | 可执行增,删,改,返回执行受到影响的行数 | 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet |
ResultSet rs = prst.executeQuery(); while (rs.next()) {...} | 返回int | 返回boolean |
二、配置MySQL
以前安装过MySQL的,再次安装会遇到问题,这时候要看是否将MySQL删除干净了。
1.卸载软件,通过控制面板 2.删除文件夹,在安装目录和C:\ProgramData隐藏文件夹下 3.删除注册表中的mysql相关内容
删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹 删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL文件夹。 删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL的文件夹。
参考文章:https://www.cnblogs.com/jpfss/p/6652701.html
三、连接数据库
1.项目目录:
2.导入jar包,这里我用的是mysql-connector-java-5.1.30.jar,在官网找半天没有下载成功,最后是在这个网站下载的:http://maven.outofmemory.cn/mysql/mysql-connector-java/5.1.30/
3.连接数据库
4.数据库中建表 我在test数据库中建立了student表格,随意输入了两条信息作为测试数据,如下图:
5.测试代码 DBTest中:
package com.dgd.test;
import java.sql.*;
/**
* @author Dgd
* @create 2017-10-16-21:25
* 测试数据库
*/
public class DBTest {
//mysql驱动包名
private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
//数据库连接地址
private static final String URL = "jdbc:mysql://localhost:3306/test";
//用户名
private static final String USER_NAME = "root";
//密码
private static final String PASSWORD = "123456";
public static void main(String[] args){
Connection connection = null;
try {
//加载mysql的驱动类
Class.forName(DRIVER_NAME);
//获取数据库连接
connection = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
//mysql查询语句
String sql = "SELECT Sname FROM student";
PreparedStatement prst = connection.prepareStatement(sql);
//结果集
ResultSet rs = prst.executeQuery();
while (rs.next()) {
System.out.println("用户名:" + rs.getString("Sname"));
}
rs.close();
prst.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
6.测试成功,显示测试用例
7.删除一条数据
修改代码如下:
Statement stmt = connection.createStatement();
String sql = "DELETE FROM student WHERE Sname='李'"; //mysql查询语句
stmt.executeUpdate(sql);
System.out.println("成功删除");
String sql2 = "SELECT * FROM student";
PreparedStatement prst = connection.prepareStatement(sql2);
ResultSet rs = prst.executeQuery();//结果集
结果如下:
7.添加多条数据
修改之前的代码,变为
String sql = "INSERT INTO student VALUES (111,'王'),(222,'钱')";
结果如下:
8.修改多条数据
修改代码如下:
Statement stmt = connection.createStatement();
//String sql = "DELETE FROM student WHERE Sname='李'"; //mysql查询语句
String sql = "UPDATE student SET Sname = CASE id " +
" WHEN 111 THEN '刘' " +
" WHEN 222 THEN '孙' " +
" END " +
" WHERE id IN (111,222) ";
stmt.executeUpdate(sql);
System.out.println("成功修改");
结果如图所示: