简单的CRUD(一)
一、JDBC的概述--(来源于百度)
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。
JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。
JDBC API提供了以下接口和类:
-
DriverManager: 这个类管理数据库驱动程序的列表。确定内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。
-
Driver: 此接口处理与数据库服务器通信。很少直接直接使用驱动程序(Driver)对象,一般使用
DriverManager
中的对象,它用于管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息 -
Connection : 此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过此唯一的连接对象。
-
Statement : 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。
-
ResultSet: 这些对象保存从数据库后,执行使用
Statement
对象的SQL查询中检索数据。它作为一个迭代器,可以通过移动它来检索下一个数据。 -
SQLException: 这个类用于处理发生在数据库应用程序中的任何错误。
二、CRUD
crud是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。
crud主要被用在描述软件系统中数据库或者持久层(dao层)的基本操作功能。
三、实现简单的CRUD
1.实现条件
1、jar包, mysql-connector-java-5.1.26-bin.jar
2、数据库MySQL
2.具体代码
1.dao层接口
1 public interface ILoginUserDao { 2 /** 3 * 增加 4 * @param loginUser 5 */ 6 void save(LoginUser loginUser); 7 8 /** 9 * 删除 10 * @param id 11 */ 12 void delete(Integer id); 13 14 /** 15 * 更新 16 * @param loginUser 17 */ 18 void update(LoginUser loginUser); 19 20 /** 21 * 查询 22 * @return 23 */ 24 List query(); 25 }
2.dao层实现
1 public class LoginUserDao implements ILoginUserDao { 2 @Override 3 public void save(LoginUser loginUser) { 4 System.out.println("----save----"); 5 // 首先加载jdbc实现类 6 try { 7 // 1.加载驱动 8 Class.forName("com.mysql.jdbc.Driver"); 9 // 2.创建链接 10 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 11 // 3.创建编译语句 12 Statement statement = connection.createStatement(); 13 // 4.执行sql语句 14 String sql = "INSERT INTO loginuser(username, password) VALUES ('王五', '6666')"; 15 int i = statement.executeUpdate(sql); 16 // 5.释放资源 17 statement.close(); 18 connection.close(); 19 20 } catch (Exception e) { 21 e.printStackTrace(); 22 } 23 } 24 25 @Override 26 public void delete(Integer id) { 27 System.out.println("----delete----"); 28 try { 29 // 1.加载驱动 30 Class.forName("com.mysql.jdbc.Driver"); 31 // 2.创建链接 32 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 33 // 3.创建编译语句 34 Statement statement = connection.createStatement(); 35 // 4.执行语句 36 String sql = "DELETE FROM loginuser WHERE id = 2"; 37 int i = statement.executeUpdate(sql); 38 // 5.释放资源 39 statement.close(); 40 connection.close(); 41 } catch (Exception e) { 42 e.printStackTrace(); 43 } 44 } 45 46 @Override 47 public void update(LoginUser loginUser) { 48 System.out.println("----update----"); 49 try { 50 // 1.加载驱动 51 Class.forName("com.mysql.jdbc.Driver"); 52 // 2.创建链接 53 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 54 // 3.创建编译语句 55 Statement statement = connection.createStatement(); 56 // 4.执行sql语句 57 String sql = "UPDATE loginuser SET username = '王五', password = '55555' WHERE id = 1"; 58 int i = statement.executeUpdate(sql); 59 // 5.释放资源 60 statement.close(); 61 connection.close(); 62 } catch (Exception e) { 63 e.printStackTrace(); 64 } 65 } 66 67 @Override 68 public List query() { 69 System.out.println("----query----"); 70 // new一个list集合对象 71 List<LoginUser> list = new ArrayList<>(); 72 try { 73 // 1.加载驱动 74 Class.forName("com.mysql.jdbc.Driver"); 75 // 2.创建链接 76 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin"); 77 // 3.创建编译语句 78 Statement statement = connection.createStatement(); 79 // 4.执行sql语句 80 String sql = "SELECT id, username, password FROM loginuser WHERE id > 4"; 81 ResultSet resultSet = statement.executeQuery(sql); 82 // 取出查询内容 83 while (resultSet.next()) { 84 String username = resultSet.getString("username"); 85 String password = resultSet.getString("password"); 86 // 创建LoginUser对象 87 LoginUser loginUser = new LoginUser(); 88 loginUser.setUsername(username); 89 loginUser.setPassword(password); 90 // 添加到集合 91 list.add(loginUser); 92 } 93 // 5.释放资源 94 resultSet.close(); 95 statement.close(); 96 connection.close(); 97 98 } catch (Exception e) { 99 e.printStackTrace(); 100 } 101 return list; 102 } 103 }
3.注意事项
1、使用DriverManager获取连接.
Connection conn = DriverManager.getConnection(String url,String user,String password);
2、增加、删除、修改执行sql语句 statement.executeUpdate(sql) 使用的是 executeUpdate;
而查询使用的是 executeQuery ==》ResultSet resultSet = statement.executeQuery(sql);