第一部分 了解与学习JDBC
一、首先老师介绍了JDBC及SQLyog的使用方法
(一)JDBC百度百科
(二)SQLyog的使用方法
1、创建一个数据库并创建一个新表,如下图所示:
2、打开IEDA并新建一个项目,导入mysql的驱动jar包连接数据库
3、新建一个DBUtil.java以用来驱动连接数据库
package com.zhongruan;
import java.sql.*;
public class DBUtil {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8";
private static String user = "root";
private static String password = "123";
// 1. 获取驱动
static {
try {
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
}
}
// 2. 创建连接
public static Connection get_Conn() throws SQLException {
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功" + conn);
return conn;
}
// 3. 关闭连接
public static void get_CloseConn(ResultSet rs, PreparedStatement pstm, Connection conn) throws SQLException {
if(rs !=null){
rs.close();
}
if(pstm !=null){
pstm.close();
}
if(conn !=null){
conn.close();
}
}
// 都叫白盒测试 / 单元测试
public static void main(String[] args) {
try {
get_Conn();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4、创建TestUser.java文件实现对数据库的查询功能
package com.zhongruan;
import java.sql.*;
public class TestUser {
// 测试增加
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
// 1. 获取驱动 ,万能键 Alt + enter
// 自动补全返回值: Ctrl + Alt + V
Class.forName("com.mysql.jdbc.Driver");
// 2. 创建连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8" +
"&user=root&password=123");
System.out.println("数据库连接成功" + conn);
// 3. 编写sql, 注释的快捷键:Ctrl + /
// String sql = "insert into tb_user(username,password) values(?,?)";
String sql = "select * from tb_user";
// 4. 获取存放sql的对象
pstm = conn.prepareStatement(sql);
// 5. 去执行SQL语句 并得到结果
// executeUpdate: 给我们返回的是int类型的值(增删改), executeQuery: 给我们返回的是结果集(查询);
// int i = pstm.executeUpdate();
rs = pstm.executeQuery();
// 6. 遍历结果
while (rs.next()){
System.out.println("用户ID:"+rs.getInt(1));
System.out.println("用户名:"+rs.getString(2));
System.out.println("用户密码:"+rs.getString(3));
}
} catch (Exception e) {
} finally {
if(rs !=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else if(pstm !=null){
try {
pstm.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}else if(conn != null){
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
}
第二部分 完善功能,实现对数据库的增删改查功能并编写菜单
主函数如下:
public static void main(String[] args) {
System.out.println("请选择操作:" +
"1:查询" +
" 2:添加" +
" 3:删除" +
" 4:更改");
Scanner in =new Scanner(System.in);
int number=in.nextInt();
TestUser2 t2 = new TestUser2();
//User user = new User("李思虎","789789");
switch(number){
case 1: t2.selectUser();
break;
case 2: t2.addUser();
break;
case 3: t2.delUser();
break;
case 4: t2.updateUser();
break;
}
}
}
增加功能:
// 测试增加
public void addUser(){
try {
// 1. 获取连接
conn = DBUtil.get_Conn();
// 2. 获取存放sql语句的对象
//获取用户输入的账号和密码
Scanner input = new Scanner(System.in);
// System.out.print("请输入用户名ID:");
//int id= input.nextInt();
int id=0;
System.out.print("请输入用户名:");
String username = input.next();
System.out.print("请输入密码:");
String password = input.next();
User user = new User(id,username,password);
pstm = conn.prepareStatement("insert into tb_user(username, password) values(?,?) ");
// 3. 填坑
pstm.setString(1,user.getUsername());
pstm.setString(2,user.getPassword());
// 4. 执行sql并得到结果
int i = pstm.executeUpdate();
// 5. 处理结果
if(i > 0 ){
System.out.println("增加成功");
}else {
System.out.println("增加失败");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 6. 关闭连接
try {
DBUtil.get_CloseConn(null, pstm, conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
删除功能:
public void delUser(){
try {
// 1. 获取连接
conn = DBUtil.get_Conn();
// 2. 获取存放sql语句的对象
Scanner input = new Scanner(System.in);
// System.out.print("请输入用户名ID:");
//int id= input.nextInt();
int id=0;
System.out.print("请输入用户名:");
String username = input.next();
System.out.print("请输入密码:");
String password = input.next();
User user = new User(id,username,password);
pstm = conn.prepareStatement("delete from tb_user where username=? ");
// 3. 填坑
pstm.setString(1,user.getUsername());
//pstm.setString(2,user.getPassword());
// 4. 执行sql并得到结果
int i = pstm.executeUpdate();
// 5. 处理结果
if(i > 0 ){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 6. 关闭连接
try {
DBUtil.get_CloseConn(null, pstm, conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
修改功能尚未成功,会报错。
第三部分 总结及心得
今天跟着老师学习JDBC连接mysql,并对数据库进行增删改查的功能的实现,重拾了许多以前学过的知识,也了解学习了很多新的知识,收获颇多。