1、在数据库中建立表格(table)
简单说说MySQL :一个数据库软件,实质是数据库管理系统(不够准确的表达),作用是可以创建n个数据库,每个数据库里又可以创建n个表
use test;//使用test数据库
create table user_info(//在test数据库中创建一张,名为user_info的表,表中设置id,user_name和password属性
id char(36),
user_name varchar(12) unique,//unique约束user_name字段的唯一性
password varchar(15)
)
//此处需注意char和varchar的区别:都是用于保存字符串;如果表中字段长度始终相同,则使用char类型,否则使用varchar类型。
2、使用JDBC实现查询功能
代码示例如下
public static void main(String[] args) {
//在finally代码块中需要关闭资源[.close()方法],在此处定义变量而不是在try代码块中,目的是提升变量的作用范围,减少重复代码
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
Class.forName("com.mysql.jdbc.Driver");//加载驱动
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");//2、建立连接
statement = connection.createStatement();//创建SQL语句对象
String sql = "select * from user_info";
resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
String id = resultSet.getString("id");
String name = resultSet.getString("user_name");
String password = resultSet.getString("password");
System.out.println(id+","+name+","+password);//使用while循环遍历结果集
}//while循环每执行一次,遍历一条数据
} catch (Exception e) {
e.printStackTrace();
}finally {//释放资源
//注意:此处释放资源的顺序必须为ResultSet、Statement、Connection,因为如果先释放Connection,那么ResultSet和Statement占用的资源就会得不到释放。
try {
if (resultSet!=null) {//此处需要判断对象是否为空,因为如果在赋值之前该对象为空,不加if判断的话,此时会报空指针异常的错误。
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (statement!=null) {
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (connection!=null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3、JDBC实现添加,删除和修改
添加部分代码示例:
Connection connection=null;
Statement statement=null;
ResultSet resultSet=null;
try {
Class.forName("com.mysql.jdbc.Driver");//加载驱动
connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root","root");//建立连接
statement= connection.createStatement();//创建sql语句对象
String sql = "select*from user_info";
resultSet=statement.executeQuery(sql);
while(resultSet.next()) {//"指针"跳一下,判断是否有数据
String id=resultSet.getString("id");
String userName=resultSet.getString("user_name");
String password=resultSet.getString("password");
System.out.println(id+","+userName+","+password);//while循环每执行一次,遍历一条数据
}
} catch (Exception e) {
e.printStackTrace();
}finally {//释放资源 依然要注意顺序
try {
if (resultSet!=null) {
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (statement!=null) {
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (connection!=null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
删除和修改功能的部分代码:
// 实现删除的SQL语句为:
delete * from user_info;//此语句为删除表中所有数据
delete * from user_info where name='tom';//此语句为删除表中姓名是admin的所有数据
// 实现修改的SQL语句为:
update user_info set id='42b56e41-ebcf-47ae-a636-569ce02f7c73',user_name='tom',password='666666';