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定义] 定义 ...
随机推荐
- shell 中awk、if while 例子
1.if while命令写在一行中while read a b;do echo $a $b;done < aa.txt12 13 14cat aa.txt12 13 14if [[ $i -eq ...
- R工作空间
工作空间,指的是你现有的R语言工作环境,它包括了任何一个用户定义的对象,比如:向量,矩阵,数据结构,列表,方法等.在一个R会话结束的时候,你可以保存现有的工作空间的映像,在下一次R启动的时候,该工作空 ...
- Strider 持续集成(gitlab)
Strider安装后运行: Mac: strider Ubuntu: bin/strider 本地运行时浏览器访问: http://127.0.0.1:3000 其他服务器:服务器地址 + 端口号(3 ...
- 第三百五十一天 how can I 坚持
是应该喜欢还是厌烦这种状态,犹豫不定,毫无目标. 人不贪,谁信,我嘴上说我不贪,可是内心已经把我出卖了,要不怎么股票会被套呢. 别人贪婪时我恐惧,别人恐惧时我贪婪,我成了什么,别人贪婪时,我狂妄,别人 ...
- CameraComponent Quality
CameraComponent1.Quality := TVideoCaptureQuality.HighQuality; procedure TCameraComponentForm.Set720p ...
- C++ __int64用法(转)
在做ACM题时,经常都会遇到一些比较大的整数.而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647.而unsig ...
- shell常见语法
#!/bin/bashecho "**********argument**********"echo script name: $0echo first argument $1ec ...
- easyui combobox筛选(拼音)
1.combobox本身的筛选 $('#cc').combobox({ filter: function(q, row){ var opts = $(this).combobox('options') ...
- CriminalIntent程序中Fragment相关内容
Activity中托管UI fragment有两种方式: 添加fragment到acitivity中 在activity代码中添加fragment 第一种方法即将fragment添加到acitivit ...
- Objective-C运行时编程 - 方法混写 Method Swizzling
摘要: 本文描述方法混写对实例.类.父类.不存在的方法等情况处理,属于Objective-C(oc)运行时(runtime)编程范围. 编程环境:Xcode 6.1.1, Yosemite,iOS 8 ...