简单的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层接口
public interface ILoginUserDao {
/**
* 增加
* @param loginUser
*/
void save(LoginUser loginUser); /**
* 删除
* @param id
*/
void delete(Integer id); /**
* 更新
* @param loginUser
*/
void update(LoginUser loginUser); /**
* 查询
* @return
*/
List query();
}
2.dao层实现
public class LoginUserDao implements ILoginUserDao {
@Override
public void save(LoginUser loginUser) {
System.out.println("----save----");
// 首先加载jdbc实现类
try {
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.创建链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
// 3.创建编译语句
Statement statement = connection.createStatement();
// 4.执行sql语句
String sql = "INSERT INTO loginuser(username, password) VALUES ('王五', '6666')";
int i = statement.executeUpdate(sql);
// 5.释放资源
statement.close();
connection.close(); } catch (Exception e) {
e.printStackTrace();
}
} @Override
public void delete(Integer id) {
System.out.println("----delete----");
try {
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.创建链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
// 3.创建编译语句
Statement statement = connection.createStatement();
// 4.执行语句
String sql = "DELETE FROM loginuser WHERE id = 2";
int i = statement.executeUpdate(sql);
// 5.释放资源
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public void update(LoginUser loginUser) {
System.out.println("----update----");
try {
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.创建链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
// 3.创建编译语句
Statement statement = connection.createStatement();
// 4.执行sql语句
String sql = "UPDATE loginuser SET username = '王五', password = '55555' WHERE id = 1";
int i = statement.executeUpdate(sql);
// 5.释放资源
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public List query() {
System.out.println("----query----");
// new一个list集合对象
List<LoginUser> list = new ArrayList<>();
try {
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.创建链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
// 3.创建编译语句
Statement statement = connection.createStatement();
// 4.执行sql语句
String sql = "SELECT id, username, password FROM loginuser WHERE id > 4";
ResultSet resultSet = statement.executeQuery(sql);
// 取出查询内容
while (resultSet.next()) {
String username = resultSet.getString("username");
String password = resultSet.getString("password");
// 创建LoginUser对象
LoginUser loginUser = new LoginUser();
loginUser.setUsername(username);
loginUser.setPassword(password);
// 添加到集合
list.add(loginUser);
}
// 5.释放资源
resultSet.close();
statement.close();
connection.close(); } catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
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);
简单的CRUD(一)的更多相关文章
- 8天掌握EF的Code First开发系列之2 简单的CRUD操作
本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...
- spring集成mongodb封装的简单的CRUD
1.什么是mongodb MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB MongoDB是一个介 ...
- Mongodb系列- java客户端简单使用(CRUD)
Mongodb提供了很多的客户端: shell,python, java, node.js...等等. 以 java 为例实现简单的增删改查 pom文件: <dependencies> & ...
- springboot + mybatis 的项目,实现简单的CRUD
以前都是用Springboot+jdbcTemplate实现CRUD 但是趋势是用mybatis,今天稍微修改,创建springboot + mybatis 的项目,实现简单的CRUD 上图是项目的 ...
- 【SSH三大框架】Hibernate基础第五篇:利用Hibernate完毕简单的CRUD操作
这里利用Hibernate操作数据库完毕简单的CRUD操作. 首先,我们须要先写一个javabean: package cn.itcast.domain; import java.util.Date; ...
- 简单的CRUD(二)
一.重构简单的CRUD 1.JDBC工具类 1.因为在crud中都包含一些相同的代码所以可以提取出来,抽取代码重构为工具类. 2.将工具类设置为static静态类,方便调用,不需要new对象. pub ...
- Springboot项目搭建(1)-创建,整合mysql/oracle,druid配置,简单的CRUD
源码地址:https://github.com/VioletSY/article-base 1:创建一个基本项目:https://blog.csdn.net/mousede/article/detai ...
- ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作
前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...
- Mybatis实现简单的CRUD(增删改查)原理及实例分析
Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...
随机推荐
- “全栈2019”Java第七十五章:内部类持有外部类对象
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Redis + Redis-sentinel + keepalived部署过程
1 Redis缓存服务 Redis是一个key-value存储系统.与memcached一样,为了保证效率,数据都是缓存在内存中的.区别的是redis支持周期性的把更新的数据写入磁盘或者把修改操作 ...
- JSR133规范学习
最近在看多线程相关的东西,通过阅读JSR133的faq来加深自己对多线程的理解,里面大部分的内容比较简单(越到后面越难),但是有的部分比较难以理解还没有完全弄懂,所以这里只记录了一下比较简单的阅读笔记 ...
- Python中的正斜杠/与反斜杠\
知识点: 1. "/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠 2. 对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠\. ...
- 求一个n元一次方程的解,Gauss消元
求一个n元一次方程的解,Gauss消元 const Matrix=require('./Matrix.js') /*Gauss 消元 传入一个矩阵,传出结果 */ function Gauss(mat ...
- JavaScript 流程控制器
已知有流程step1.step2.step3.step4.step5 , 如何控制输出下面过程 例如: 1:step1.step2.step3.step2.step3.step4.step5 2:st ...
- python fileinput处理多文件
import fileinput with fileinput.input(files=(path1,path2)) as f: for line in f: print(line)
- 关于halo博客系统的使用踩坑——忘记登录密码
踩坑: halo系统可以直接通过运行jar -jar halo-0.0.3.jar跑起来,也可以通过导入IDE然后运行Application的main方法跑起系统. h2数据库访问路径:http:// ...
- List与IList的区别
在我看一个源程序的时候看到这个例子使用了IList<T>返回类型,因为上午刚刚总结过List<T>的详细用法,突然出现了IList<T>,感觉很奇怪,于是上网搜集了 ...
- (转)centos7.0安装配置DRBD
原文:http://gushiren.blog.51cto.com/3392832/1685207 首先确保两台机器时间同步,配置ssh. 方法一通过yum源安装:yum安装默认路径是/etc/drb ...