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进行批处理:
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定义] 定义 ...
随机推荐
- dispatch_once单例初始化
static GHCache *instance = nil; /** * 单例,静态初始化方法 * * @return 返回一个单例 */ + (GHCache*)shareCache{ sta ...
- leetcode–jump game II
1.题目描述 Given an array of non-negative integers, you are initially positioned at the first index of t ...
- 为operamasks增加HTML扩展方式的组件调用
#为operamasks增加HTML扩展方式的组件调用 ##背景 之前的[博文](http://www.cnblogs.com/p2227/p/3540858.html)中有提及到,发现easyui中 ...
- geeksforgeeks@ Largest Number formed from an Array
http://www.practice.geeksforgeeks.org/problem-page.php?pid=380 Largest Number formed from an Array G ...
- pku3663 Costume Party
http://poj.org/problem?id=3663 二分查找 #include <stdio.h> #include <stdlib.h> ]; int bs(int ...
- cocos2dx android版本移植时的Error format not a string literal and no format arguments解决方案
原文地址 : http://www.cnblogs.com/hhuang2012/p/3336911.html cocos2dx android版本移植时的Error format not a str ...
- 【128】Word中的VBA
通过查找关键字,然后删除整段文字的实现! Sub 删除查找含关键词的行() Dim KeyWord As String KeyWord = InputBox("请输入关键词(词长不限,中英均 ...
- FullCalendar应用——读取JSON数据
开发者可以使用FullCalendar创建强大的日历日程应用,FullCalendar提供了丰富的选项设置和方法调用,使得开发者可以轻松的创建各种功能的日历程序.本文将结合实例使用PHP读取MySQl ...
- memcached在windows7上的安装问题
memcached在windows7上的安装问题 错误: 通过cmd命令行进入到C:\memcached(下载后的解压目录) 运行 memcached.exe -d install 报错“ f ...
- StringBuffer与StringBuilder的异同
一. 相同之处 1.均是可变字符序列,可以随机的改变字符串,如追加操作或插入操作 2. 均使用了内部缓冲区,并且当内部缓冲区溢出后均会自动增大 二. 不同之处 1. Stri ...