JavaEE系列之(三)JDBC操作MySQL数据库
一、JDBC简介
ResultSet rs = st.executeQuery(sql);

- //查询操作
- Statement st = conn.createStatement();
- String sql = “select * from user where id=1;
- ResultSet rs = st.executeQuery(sql);
- while(rs.next()){
- //根据获取列的数据类型,分别调用rs的相应方法
- //映射到java对象中
- }
- //插入操作
- String sql = "insert into user(….) values(…..) ";
- int num = st.executeUpdate(sql);
- if(num>0){
- System.out.println("插入成功!!!");
- }
- //修改操作
- String sql = “update user set name=‘’ where name=‘’";
- int num = st.executeUpdate(sql);
- if(num>0){
- System.out.println("修改成功!!!");
- }
- //删除操作
- String sql = “delete from user where id=1;
- int num = st.executeUpdate(sql);
- if(num>0){
- System.out.println("删除成功!!!");
- }
7、PreparedSatement类详解:
- String insertString = "insert into users values(?,?,?,?);";
- //id, name, password, email
- PreparedStatement preparedStatement= connection.prepareStatement(insertString);
- preparedStatement.setInt(1, 1);
- preparedStatement.setString(2, "zhangsan");
- preparedStatement.setString(3, "123456");
- preparedStatement.setString(4, "zhansan@sina.com");
- preparedStatement.execute();
8、使用JDBC处理大文本和大二进制数据:
- //把一个文件里的内容保存到 text 列中
- File file = new File("1.txt");
- FileReader fileReader = new FileReader(file);
- String insertsString ="insert into lobtest values(?,?)";
- PreparedStatement ps = connection.prepareStatement(insertsString);
- /* void setCharacterStream(int parameterIndex, Reader reader)
- 将指定参数设置为给定 Reader 对象。
- //mysql 仅支持这个方法
- void setCharacterStream(int parameterIndex, Reader reader, int length)
- 将给定参数设置为给定 Reader 对象,该对象具有给定字符数长度。
- void setCharacterStream(int parameterIndex, Reader reader, long length)
- 将指定参数设置为给定 Reader 对象,该对象具有给定字符数长度。
- */
- ps.setInt(1, 1);
- ps.setCharacterStream(2,fileReader,(int)file.length());
- ps.execute();
- //把一个text列中的内容存储到一个文件中
- File file = new File("2.txt");
- FileWriter fileWriter = new FileWriter(file);
- String queryString ="select content from lobtest where id = ?";
- PreparedStatement ps = connection.prepareStatement(queryString);
- ps.setInt(1, 1);
- ps.execute();
- rs=ps.getResultSet();
- rs.next();
- Reader reader = rs.getCharacterStream(1);
- char[] ch = new char[1024];
- int len = 0;
- while ((len=reader.read(ch, 0, 1024))!=-1) {
- fileWriter.write(ch, 0, len);
- }
- reader.close();
- fileWriter.close();
- //先将一张图片放入到数据库中
- String insertString = "insert into lobtest2 values(?,?);";
- PreparedStatement prepareStatement = connection.prepareStatement(insertString)
- File file = new File("zixia.jpg");
- FileInputStream fis= new FileInputStream(file);
- prepareStatement.setInt(1, 2);
- prepareStatement.setBinaryStream(2, fis,(int)file.length());
- prepareStatement.execute();
- //在从数据库中读出一张照片到文件中
- String qureyString ="select context from lobtest2 where id = ?";
- PreparedStatement prepareStatement = connection.prepareStatement(qureyString);
- prepareStatement.setInt(1, 2);
- prepareStatement.execute();
- ResultSet resultSet = prepareStatement.getResultSet();
- resultSet.next();
- InputStream stream = resultSet.getBinaryStream(1);
- FileOutputStream fos = new FileOutputStream("mm.jpg");
- byte[] b=new byte[1024];
- int len=0;
- while ((len=stream.read(b, 0, 1024))!=-1) {
- fos.write(b, 0, len);
- }
- fos.close();
- stream.close();
9、使用JDBC进行批处理:
- //把一个文件里的内容保存到 text 列中
- conn = JdbcUtil.getConnection();
- String sql = "insert into user(name,password,email,birthday) values(?,?,?,?)";
- st = conn.prepareStatement(sql);
- for(int i=0;i<50000;i++){
- st.setString(1, "aaa" + i);
- st.setString(2, "123" + i);
- st.setString(3, "aaa" + i + "@sina.com");
- st.setDate(4,new Date(1980, 10, 10));
- st.addBatch();
- if(i%1000==0){
- st.executeBatch();
- st.clearBatch();
- }
- }
- st.executeBatch();
优点:发送的是预编译后的SQL语句,执行效率高。
- CallableStatement cStmt = conn.prepareCall("{call demoSp(?, ?)}");
- cStmt.setString(1, "abcdefg");
- cStmt.registerOutParameter(2, Types.VARCHAR);
- cStmt.execute();
- System.out.println(cStmt.getString(2));
JavaEE系列之(三)JDBC操作MySQL数据库的更多相关文章
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- JDBC操作MySQL数据库案例
JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- 原生Jdbc操作Mysql数据库开发步骤
原生Jdbc操作Mysql数据库开发步骤 原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作. 下面是开发步骤: 1.导入数据库驱动包 ...
- java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据
package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...
- 使用JDBC操作MySQL数据库
一.JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组 ...
- Java第三十五天,用JDBC操作MySQL数据库(一),基础入门
一.JDBC的概念 Java DataBase Connectivity 从字面意思我们也不难理解,就是用Java语言连接数据库的意思 JDBC定义了Java语言操作所有关系型数据库的规则(接口).即 ...
- JavaWeb用Jdbc操作MySql数据库(一)
一.添加开发包.在JavaWeb中用jdbc操作数据库,使用方法与java一样,但是在处理开发包的问题上有点差别.JavaWeb不能将mysql-connector-java-5.1.7-bin.ja ...
- 原生jdbc操作mysql数据库详解
首先给大家说一下使用JDBC链接数据库的步骤 1.加载链接数据库驱动 2.建立数据库链接 3.创建数据库操作对象 4.编写sql语句,执行sql语句 5.获取结果集 6.释放资源 我这边采用的是mav ...
- Java学习笔记(十一)——通过JDBC操作mysql数据库
[前面的话] 时间总是好快,每次都感觉还没有怎么好好去过,对于好多事情,希望自己可以做的更多一点.心情能够好一点,平淡一点就行了. 学习过程中的知识点总结,基础知识,选择阅读. [JDBC定义] 定义 ...
随机推荐
- 游戏BI,起步了。
思索许久,终于决定自己的发展将会是游戏的BI. 即说即做,本文是我未来BI工作的开端. 传统的游戏BI,只是将运营的工作数据化,流量的变现指标化.和网站类似,无外乎用户导入,流失,保有,付费,回访等等 ...
- <javascript搞基程序设计>笔记2015-9-25
1.一元加减 var a=28; alert(--a); //27,先减后用 alert(a--); //27,先用后减 alert(a); //26, 2.位操作符 按位非(NOT):按位取反:符号 ...
- Guidelines for clock
用两个256x16的基本存储器构成512x16的数据存储器,因为256x16的基本存储器读写时序不太符合MCU的要求,于是改写之.利用下降沿控制输入,作为基本存储器控制时钟,而上升沿控制数据输出寄存器 ...
- 55个高质量的Magento主题,助你构建电子商务站点
Magento是一个功能丰富的开源电子商务平台(译者注:基于PHP的Zend Framework开发),在网店的外观.商品管理以及其它功能上,它给商家提供了前所未有的灵活和易用性.通过挑选一个合适的M ...
- air开发中的requestedDisplayResolution 扫盲
app.xml里面requestedDisplayResolution 取值可以为high/standard, 如果为high表示设备跟ios声明它需要使用高清屏(其实就是需要最大分辨率) 这里我猜测 ...
- 纯JS Web在线可拖拽的流程设计器
F2工作流引擎之-纯JS Web在线可拖拽的流程设计器 Web纯JS流程设计器无需编程,完全是通过鼠标拖.拉.拽的方式来完成,支持串行.并行.分支.异或分支.M取N路分支.会签.聚合.多重聚合.退回. ...
- 【132】iPad使用相关问题
1.想iPad中导入音乐文件,保留原音乐文件名称 [方法]需要删除音乐文件中的“标题”和“参与创作的艺术家”,直接删除的话,效率比较低,需要借助一款软件——foobar2000,选中导入的文件,然后属 ...
- MYSQL数据库性能调优之六:备份
增量备份
- C++11初始化列表
[C++11之初始化列表] 在C++03中,在严格遵守POD的定义和限制条件的结构及类型上可以使用初始化列表(initializer list),构想是结构或是数组能够依据成员在该结构内定义的顺序通过 ...
- LeetCode104: Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...