一、获取数据库连接

  要对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数据库的增删改查操作的更多相关文章

  1. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  2. 【转载】通过JDBC对MySQL数据库的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  3. 【C#】使用NHibernate连接MySQL数据库及增删改查

    学习资料 http://www.sikiedu.com/course/51/task/891/show https://www.codeproject.com/Articles/26123/NHibe ...

  4. 使用NHibernate连接MySQL数据库及增删改查

    学习资料 http://www.sikiedu.com/course/51/task/891/show https://www.codeproject.com/Articles/26123/NHibe ...

  5. C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

  6. 使用nodejs连接mysql数据库实现增删改查

      首先要有数据库 使用xampp 或者 phpstudy 可以傻瓜式安装 新建一个项目文件夹 之后在这个目录下初始化package.json (npm init) 先在项目中安装mysql 和 ex ...

  7. 连接mysql数据库实现增删改查(一)

    在python中我们通过pymysql来连接数据库,具体实现如下 ''' 连接mysql数据库 此类进行封装了一些基础的操作数据库方法 ''' import pymysql from Homework ...

  8. php 连接mysql数据库以及增删改查

    php 连接数据库 一般是用面向对象的方法,需要先创建一个对象,即造一个连接对象,然后再写sql语句,(增改查删),最后执行sql语句 其中在创建连接对象时 我们用到的是MySQLI  是不区分大小写 ...

  9. php之PDO连接mysql数据库,增删改查等等操作实例

    我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严就有SQL注入风险,导致网站被攻击. 虽然可以用mysql_real_escape_string ...

随机推荐

  1. R语言的学习笔记 (持续更新.....)

    1. DATE 处理 1.1 日期格式一个是as.Date(XXX) 和strptime(XXX),前者为Date格式,后者为POSIXlt格式 1.2 用法:as.Date(XXX,"%Y ...

  2. Python习题-统计日志中访问次数超过限制的IP

    #1.1分钟之内ip访问次数超过200次的,就给他的ip加入黑名单#需求分析: #1.读日志,1分钟读一次 #2.获取这1分钟之内所有访问的ip #3.判断ip出现的次数,如果出现200次,那么就加入 ...

  3. 【Educational Codeforces Round 38】D. Buy a Ticket 堆优化Dijkstra

    题意 给定一张无向图,对每个点$i\in S$求$\min_{j\in S} {2\times d(i,j)+a_j}$ 考虑多源多汇最短路会超时,换个角度考虑每个$j$,如果$j=i$,那么答案为$ ...

  4. bzoj 3727: Final Zadanie 思维题

    题目: Description 吉丽YY了一道神题,题面是这样的: "一棵n个点的树,每条边长度为1,第i个结点居住着a[i]个人.假设在i结点举行会议,所有人都从原住址沿着最短路径来到i结 ...

  5. bzoj 3916: friends 瞎搞

    题目: 有三个好朋友喜欢在一起玩游戏,A君写下一个字符串S,B君将其复制一遍得到T,C君在T的任意位置(包括首尾)插入一个字符得到U.现在你得到了U,请你找出S. 题解: 发现字符串的长度一定为奇数. ...

  6. bzoj 2460: 元素 线性基

    题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=2460 题解: RT 线性基裸题 #include <cstdio> #inc ...

  7. bzoj 3012: [Usaco2012 Dec]First! Trie+拓扑排序

    题目大意: 给定n个总长不超过m的互不相同的字符串,现在你可以任意指定字符之间的大小关系.问有多少个串可能成为字典序最小的串,并输出这些串.n <= 30,000 , m <= 300,0 ...

  8. 汇编题目:在屏幕中间显示a-z的所有字母,按ESC键改变字符颜色

    在屏幕中显示a-z字母,按ESC键改变字符颜色. ;程序功能:在屏幕中间同一点显示a-z的所有字符 ; 1.使用cpu循环空运行实现延迟 ; 2.按ESC键改变正在循环显示的字符的颜色 ; 3.程序完 ...

  9. android开发 服务器端访问MySQL数据库,并把数据库中的某张表解析成xml格式输出到浏览器

    我们此时只要写一个Servlet就可以了: public class UpdateMenuServlet extends HttpServlet { /** * */ private static f ...

  10. GrayCode for state machine

    How & Why use Gray Code A gray counter is a binary counter where only one bit changes at a time. ...