设为首页 加入收藏

TOP

JDBC的介绍与使用(二)
2019-01-27 04:08:25 】 浏览:206
Tags:JDBC 介绍 使用

ection.prepareStatement("insert into book values(1001,'海贼王','尾田一郎')"); stetm2.execute(); //提交 connection.commit(); } catch (SQLException e) { try { //失败后自动回滚 connection.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } }

CLOB操作
用于存储大量的文本数据,大字段的操作常常以流的方式处理。而非一般的字段一次读取即可。
JDBC的介绍与使用

//代码实现:
public class ReadAndWriteClob {
    public static void main(String[] args) {
        //获取数据库连接
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/library",
                    "root",
                    "123456");
            //clob字段插入
            //表:user_info
            //字段:name varchar , introduce  clob
            String sql = "insert into user_info values(,)";
            PreparedStatement prepared1 = conn.prepareStatement(sql);
            //插入数据
            prepared1.setObject(1, "user1");
            //设置插入文本对象,第二个参数是一个输入流,直接读取文件
            prepared1.setClob(2,new BufferedReader(
                    new InputStreamReader(
                            new FileInputStream("src/a.txt"))));
            prepared1.execute();
            //clob字段读取
            sql="select * from user_info";
            PreparedStatement prepared2 =conn.prepareStatement(sql);
            ResultSet resultSet = prepared2.executeQuery();
            while(resultSet.next()){
                Clob introduce = resultSet.getClob("introduce");
                Reader characterStream = introduce.getCharacterStream();
                int temp=0;
                while((temp=characterStream.read())!=-1){
                    System.out.print((char)temp);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

BLOB操作
用于存储大量的二进制数据,二进制可以存入任何类型的文件(音频、视频等等..)。
JDBC的介绍与使用

//代码实现
public class ReadAndWriteClob {
    public static void main(String[] args) {
        //获取数据库连接
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/library",
                    "root",
                    "123456");
            //clob字段插入
            //表:user_info
            //字段:name varchar , headImg  blob
            String sql = "insert into user_info values(,)";
            PreparedStatement prepared1 = conn.prepareStatement(sql);
            //插入数据
            prepared1.setObject(1, "user1");
            //设置插入图片对象,第二个参数是一个基本输入流
            prepared1.setBlob(2,new FileInputStream("src/a.jpg"));
            prepared1.execute();
            //clob字段读取
            sql="select * from user_info";
            PreparedStatement prepared2 =conn.prepareStatement(sql);
            ResultSet resultSet = prepared2.executeQuery();
            while(resultSet.next()){
                Blob headImg = resultSet.getBlob("headImg");
                //获取的是基本的流,
                InputStream binaryStream = headImg.getBinaryStream();
                int len=0;
                byte flush []=new byte [1025];
                OutputStream os=new FileOutputStream(new File("d:\\c.jpg"));
               while((len=binaryStream.read(flush))!=-1){
                   os.write(flush,0,len);
                   os.flush();
               }
                os.close();
                binaryStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

对jdbc的封装
这里需要加载配置文件:
JDBC的介绍与使用
代码实现

public class jdbcUtils {
    private static Properties pro;

    static {
        try {
            pro = new Properties();
            InputStream in = jdbcUtils.class.getClassLoader().getResourceAsStream("dbproperties.properties");
            pro.load(in);
            Class.forName(pro.getProperty("driver"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //建立与  
		
编程开发网
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇记一次数据崩溃无法启动 下一篇MapperScheduler.xml