通过jdbc连接MySql数据库的增删改查操作
一、获取数据库连接
要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接
JDBC:Java中连接数据库方式
具体操作如下:
获取数据库连接的步骤:
1、先定义好四个参数
String username="root"; //连接数据库的用户名
String password="root"; //连接数据库的密码
//连接MySql数据库的url,不同数据库url不同,语法:jdbc:子协议:厂商内容
String url="jdbc:mysql://localhost:3306/MyBookStore";
//数据库驱动程序的全类名,加载相应数据库的jar包,在Web App Libraries中找到driver.class复制其全类名即可
String driver="com.mysql.jdbc.Driver";
2、加载驱动类
Class.forName(driver);
3、获取数据库连接,对数据库的一切操作都是从Connection连接开始的
Connection connection=DriverManager.getConnection(url, username, password);
4.Statement由connection对象创建,然后通过Statement执行具体的sql语句
(在实际开发中,由于Statement存在漏洞,容易发生sql注入,通常使用PreparedStatement来操作sql语句)
Statement statement = connection.createStatement();
二、数据库的增删改查操作
1、增加数据
String sql1="insert into dept values(null,'财务部门')";
int i = statement.executeUpdate(sql1);
//executeUpdate()是执行增删改操作的方法,返回值为int类型,返回数据库中受到影响的行数
System.out.println(i);
2、删除数据
String sql2="delete from dept where id=2";
int i2=statement.executeUpdate(sql2);
System.out.println(i2);
3、修改数据
String sql3="update dept set dept_name='人事部门' where id=4";
int i3=statement.executeUpdate(sql3);
System.out.println(i3);
4、查询数据
String sql4="select id,dept_name from dept";
ResultSet resultSet=statement.executeQuery(sql4);
//executeQuery()是执行查询操作的方法,返回值为ResultSet类型,返回查询的结果集,相当于一个虚拟的表格
while (resultSet.next()) {
int id=resultSet.getInt("id");
String deptName=resultSet.getString("dept_name");
System.out.println(id+":"+deptName);
}
5、通过对象封装结果集,并利用集合存储对象
String sql4="select id,dept_name from dept";
ResultSet resultSet=statement.executeQuery(sql4);
List<Department> list=new ArrayList<Department>();
while (resultSet.next()) {
int id=resultSet.getInt("id");
String deptName=resultSet.getString("dept_name");
Department department=new Department(); //创建用来封装结果集记录的对象
department.setId(id);
department.setDeptName(deptName);
list.add(department); //将封装好的对象添加到list集合中
}
//Department类中重写了toString()方法,使该方法返回对象中的某些属性,而不是地址
//System.out.println()输出list中的内容时,会调用list内存储的Department对象的toString()方法
System.out.println(list);
注意:通过PreparedStatement执行sql语句时,示例如下:
PreparedStatement需要对sql语句进行预编译,因此需要先将sql语句字符串传递给PreparedStatement对象,这样就避免了Statament的sql注入漏洞
PreparedStatement preparedStatement=null;
ResultSet rs=null; String sql="select id,dept_name from dept where id=? "; //?为占位符
preparedStatement=connection.prepareStatement(sql); //此处需要给prepareStatement()方法传递参数(sql语句)
preparedStatement.setInt(1,5); //参数表示为第一个占位符赋值
rs=preparedStatement.executeQuery(); //此处执行无参的executeQuery()方法
通过jdbc连接MySql数据库的增删改查操作的更多相关文章
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- 【C#】使用NHibernate连接MySQL数据库及增删改查
学习资料 http://www.sikiedu.com/course/51/task/891/show https://www.codeproject.com/Articles/26123/NHibe ...
- 使用NHibernate连接MySQL数据库及增删改查
学习资料 http://www.sikiedu.com/course/51/task/891/show https://www.codeproject.com/Articles/26123/NHibe ...
- C++ API方式连接mysql数据库实现增删改查
这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...
- 使用nodejs连接mysql数据库实现增删改查
首先要有数据库 使用xampp 或者 phpstudy 可以傻瓜式安装 新建一个项目文件夹 之后在这个目录下初始化package.json (npm init) 先在项目中安装mysql 和 ex ...
- 连接mysql数据库实现增删改查(一)
在python中我们通过pymysql来连接数据库,具体实现如下 ''' 连接mysql数据库 此类进行封装了一些基础的操作数据库方法 ''' import pymysql from Homework ...
- php 连接mysql数据库以及增删改查
php 连接数据库 一般是用面向对象的方法,需要先创建一个对象,即造一个连接对象,然后再写sql语句,(增改查删),最后执行sql语句 其中在创建连接对象时 我们用到的是MySQLI 是不区分大小写 ...
- php之PDO连接mysql数据库,增删改查等等操作实例
我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严就有SQL注入风险,导致网站被攻击. 虽然可以用mysql_real_escape_string ...
随机推荐
- Idea_学习_03_IDEA中使自定义类型的文件进行代码高亮识别
如果你只是想用xml的编辑模式来编辑*.screen文件的话,可以在 Settings->Editor->File Types 中,在Recognized File Types选中XML, ...
- Linux-NoSQL之Redis(二)
一.Redis配置文件详解 1.通用配置 daemonize no # 默认情况下,redis并不是以daemon形式来运行的.通过daemonize配置项可以控制redis的运行形式 pidfil ...
- Java 使用itext生成pdf以及下载
使用方法: 1.需要两个jar包: iText-5.0.6.jar //必须使用该版本,否则缺少相关的方法 TextAsian.jar //是为了文档中正常显示中文所必须引用的包 TextAsi ...
- list dict set comprehension 列表推导式 (字典推导式,集合推导式)
从一个list生成新的list [ word.upper() for word in 'hellO worlD!' ] 简单的语法,如果不用list comprehension, 则要用更长的代码. ...
- 制作SD卡img文件,并扩容
/********************************************************************************** * raspi-config E ...
- freeMarker(十六)——FAQ
学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 1.JSP 和 FreeMarker ? 我们比较 FreeMarke ...
- bzoj 2178 圆的面积并 —— 辛普森积分
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 先看到这篇博客:https://www.cnblogs.com/heisenberg- ...
- 机器学习:scikit-learn中算法的调用、封装并使用自己所写的算法
一.scikit-learn库中的kNN算法 scikit-learn库中,所有机器学习算法都是以面向对象的形式进行包装的: 所有scikit-learn库中机器学习算法的使用过程:调用.实例化.fi ...
- 影响Scala语言设计的因素列表
Scala语言设计概述 Scala的设计受许多编程语言和研究思想的影响.事实上,仅很少的Scala的特点是全新的:大多数都已经被以另外的形式用在其他语言中了.Scala的革新主要来源于它是如何构造并放 ...
- nginx与apache 限制ip连接数和带宽方法
今天有个人问我,nginx怎么限制ip连接数,突然想不起来了,年龄大了,脑子不怎么好使了.还要看一下配置才想起了.那个人又问我,你测试过的吗?一下子把我问蒙了,我真没测试过了,也不知道启作用了没有. ...