java与数据库MySQL的学习

衔接前天:

package com.lifeng.batch;

import java.sql.Connection;

import java.sql.Statement;

import com.lifeng.jdbc.JdbcUtil;

public class BatchDemo extends JdbcUtil{

public static void main(String[] args) {

try{

Connection conn = getConnection();

 

String sql1 = "drop table if exists school";

String sql2 = "create table school (id int primary key,schoolname varchar(20))";

String sql3 = "insert into school values(2,'华商')";

String sql4 = "update school set id = 1";

Statement stmt = conn.createStatement();

stmt.addBatch(sql1);

stmt.addBatch(sql2);

stmt.addBatch(sql3);

stmt.addBatch(sql4);

stmt.executeBatch();

 

closeAll(conn,stmt,null);

}catch(Exception e){

e.printStackTrace();}}}

package com.lifeng.batch;

import java.sql.Connection;

import java.sql.PreparedStatement;

import com.lifeng.jdbc.JdbcUtil;

public class BatchDemo02 extends JdbcUtil{

public static void main(String[] args) {

try{

Connection conn = getConnection();

 

String sql = "insert into school values(?,?)";

PreparedStatement pstmt = conn.prepareStatement(sql);

for(int i = 0;i < 100;i++) {

pstmt.setInt(1, i+1);

pstmt.setString(2, "深大"+i);

pstmt.addBatch();

}

pstmt.executeBatch();

closeAll(conn,pstmt,null);

}catch(Exception e){

e.printStackTrace();}}}

 

package com.lifeng.increment;

import java.sql.Connection;

import java.sql.Statement;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import com.lifeng.jdbc.JdbcUtil;

public class Demo01 extends JdbcUtil {

public static void main(String[] args) {

try{

Connection conn = getConnection();

 

String sql = "insert into dept(name) values(?)";

PreparedStatement pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

pstmt.setString(1, "人事部");

pstmt.executeUpdate();

 

ResultSet rs = pstmt.getGeneratedKeys();

int deptno = 0;

if(rs.next()) {

deptno = rs.getInt(1);

}

 

 

String sql2 = "insert into emp values(?,?,?,?,?,?,?,?)";

pstmt = conn.prepareStatement(sql2);

pstmt.setInt(1, 7940);

pstmt.setString(2, "aaa");

pstmt.setString(3, "cleaner");

pstmt.setInt(4, 7902);

pstmt.setDate(5, new java.sql.Date(System.currentTimeMillis()));

pstmt.setDouble(6, 2000.00);

pstmt.setDouble(7,200.00);

pstmt.setInt(8, deptno);

pstmt.executeUpdate();

 

closeAll(conn,pstmt,null);

}catch(Exception e){

e.printStackTrace();}}}

package com.lifeng.increment;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import com.lifeng.jdbc.JdbcUtil;

import com.mysql.jdbc.Statement;

import oracle.net.aso.p;

public class Demo02 {

public static void main(String[] args) {

JdbcUtil bd = new JdbcUtil();

Connection conn = null;

ResultSet rs = null;

PreparedStatement pstmt = null;

try{

conn = bd.getConnection();

String deptSql = "insert into dept(name) values(?)";

String empSql = "insert into emp(ename,deptno)  values(?,?)";

/*

* 如何获取自增长的值

* 1.设置是否可以返回自增长的值

* RETURN_GENERATED_KEYS: 可以返回自动增长值

* NO_GENERATED_KEYS:不能返回自动增长的值

*/

//参数赋值

pstmt  = conn.prepareStatement(deptSql,Statement.RETURN_GENERATED_KEYS);

pstmt.setString(1,"人事部");

pstmt.executeUpdate();

 

/*

* 获取增长的值

* 注意:该ResultSet 只包含了增长的字段

*/

rs = pstmt.getGeneratedKeys();

int deptId = 0;

if(rs.next()) {

deptId = rs.getInt(1);

}

 

pstmt = conn.prepareStatement(empSql);

pstmt.setString(1,"李四");

pstmt.setInt(2,deptId);

//执行插入员工的sql

pstmt.executeUpdate();

System.out.println("为该部门添加员工成功");

}catch(Exception e) {

e.printStackTrace();

}finally {}}}

package com.lifeng.lob;

import java.io.FileWriter;

import java.io.Reader;

import java.sql.Clob;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import com.lifeng.jdbc.JdbcUtil;

public class ClobDemo01 extends JdbcUtil{

public static void main(String[] args) {

ReadClob();

 

}

private static void ReadClob() {

Connection conn = null;

ResultSet rs = null;

PreparedStatement pstmt = null;

try {

conn = getConnection();

String sql = "select * from news where id = 1";

pstmt = conn.prepareStatement(sql);

//执行查询

rs = pstmt.executeQuery();

//读取结果集

if(rs.next()) {

//获取text·字段

//1.可以吧text字段内容当做普通字符串读取

// String content = rs.getString("content");

//System.out.println(content);

 

//MySQL  text ,Oracle clob

//2.可以把text字段当做输入流读取

Clob clob = rs.getClob("content");

//通过clob字段读取输入流

Reader reader = clob.getCharacterStream();

char [] buf = new char[1024];

//把输入流输出到文件中

FileWriter writer = new FileWriter("d:/abc.txt");

int len = 0;

while((len = reader.read(buf)) != -1) {

//边读边写出

writer.write(buf,0,len);

}

writer.close();

reader.close();

}

 

}catch(Exception e) {

e.printStackTrace();

}finally {}}}

package com.lifeng.lob;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.InputStream;

import java.io.Reader;

import java.sql.Blob;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import com.lifeng.jdbc.JdbcUtil;

public class ClobDemo03 extends JdbcUtil{

public static void main(String[] args) {

ReadJpg();

 

}

private static void ReadJpg() {

Connection conn = null;

ResultSet rs = null;

PreparedStatement pstmt = null;

try {

conn = getConnection();

String sql = "select * from news where id = 1";

pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

if(rs.next()) {

Blob blob = rs.getBlob("attachment");

InputStream ins = blob.getBinaryStream();

byte[] buf = new byte[1024];

FileOutputStream fos = new FileOutputStream("d:/1.jpg");

nt len = 0;

while((len = ins.read(buf)) != -1) {

//边写边读

fos.write(buf);

 

}

ins.close();

fos.close();

}

 

 

}catch(Exception e) {

e.printStackTrace();

}finally {

closeAll(conn,pstmt,null);}}}

package com.lifeng.storedproc;

/*

 * DELIMITER $$

USE `mydb`$$

DROP PROCEDURE IF EXISTS `sp_emp5`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_emp5`(IN dno INT,OUT counts INT)

BEGIN

SELECT COUNT(*) INTO counts FROM emp WHERE deptno=dno;

END$$

DELIMITER ;

*/

import java.io.FileOutputStream;

import java.io.InputStream;

import java.sql.Blob;

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import com.lifeng.jdbc.JdbcUtil;

public class StoreProcDemo01 extends JdbcUtil{

//在存入数据库时读取数据

public static void main(String[] args) {

Connection conn = null;

ResultSet rs = null;

CallableStatement pstmt = null;

try {

conn = getConnection();

String sql = "call sp_emp5(?,?)";

pstmt = conn.prepareCall(sql);

   pstmt.setInt(1, 10);

   /*

    * 1)设置输出参数

    * sqlType:就是存储过程中输出参数的数据类型

    */

 

pstmt.registerOutParameter(2,java.sql.Types.INTEGER);

pstmt.executeQuery();

/*

* 2)从输出参数中获取数据,获取方法getXXX()方法

* 注意:

* ResultSet的getXXX()方法为了获取列的值

* CallableStatement的getXXX()方法为了获取输出参数的值

*/

//结果在输出参数中,从输出参数中看结果

//这里的参数和设置输出参数的位置保持一致的

int count = pstmt.getInt(2);

System.out.println("10号部门的人数是:"+count);

 

}catch(Exception e) {

e.printStackTrace();

 

}finally {

closeAll(conn,pstmt,null);}}}

今天学习了如何把文件写入数据库MySQL和读取数据库文件,一些基本的方法,内容较多,有待消化,继续加油

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值