package com.company;
import javax.sql.rowset.CachedRowSet;
import javax.sql.rowset.RowSetFactory;
import javax.sql.rowset.RowSetProvider;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
/**
* using Statement and PreparedStatement
*/
public class JDBCUtils1 {
static String driver;
static String url;
static String user;
static String password;
static Statement statement = null;
static PreparedStatement preparedStatement = null;
static Connection coon = null;
static PreparedStatement insert = null;
static
{
String propPath = "resources/mysql.properties";
Properties prop = new Properties();
try {
prop.load(new FileInputStream(propPath));
} catch (IOException e) {
e.printStackTrace();
}
driver = prop.getProperty("driver");
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("password");
try {
Class.forName(driver);
prop.load(new FileInputStream(propPath));
coon = DriverManager.getConnection(url,user,password);
statement = coon.createStatement();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void createTable()
{
try {
this.statement.executeUpdate("create table jdbc_test "+
" (jdbc_id int auto_increment primary key, "+
" jdbc_name varchar(255), "+
" jdbc_desc text);");
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 注意这里每一列都要加'',否则报错
* @param jdbc_name
* @param jdbc_desc
*/
public void insertDataUseStat(String jdbc_name,String jdbc_desc)
{
String sql = "insert into jdbc_test(jdbc_name,jdbc_desc) values (" + "'" + jdbc_name + "'," + "'" + jdbc_desc +"');";
System.out.println(sql);
try {
statement.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 使用PreparedStatement插入数据
* @param jdbc_name
* @param jdbc_desc
*/
public void insertDataUsePreparedStat(String jdbc_name,String jdbc_desc)
{
String sql = "insert into jdbc_test(jdbc_name,jdbc_desc) values (" + "'" + jdbc_name + "'," + "'" + jdbc_desc +"');";
System.out.println(sql);
try {
preparedStatement = coon.prepareStatement("insert into jdbc_test(jdbc_name,jdbc_desc) values (?,?)");
preparedStatement.setString(1,jdbc_name);
preparedStatement.setString(2,jdbc_desc);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void queryAll()
{
try {
ResultSet resultSet = statement.executeQuery("select * from jdbc_test;");
while (resultSet.next())
{
System.out.println(resultSet.getString("jdbc_id"));
System.out.println(resultSet.getString("jdbc_name"));
System.out.println(resultSet.getString("jdbc_desc"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void queryOneByID(int jdbc_id)
{
try {
ResultSet resultSet = statement.executeQuery("select * from jdbc_test where jdbc_id = " + jdbc_id +";");
while (resultSet.next())
{
System.out.println(resultSet.getString("jdbc_id"));
System.out.println(resultSet.getString("jdbc_name"));
System.out.println(resultSet.getString("jdbc_desc"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 判断表是否存在
* @param tableName
* @return
*/
public boolean hasTable(String tableName)
{
boolean result = false;
try {
DatabaseMetaData metaData = coon.getMetaData();
ResultSet tableSet =metaData.getTables(null,null,tableName,null);
if (tableSet.next())
{
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
public void createImgTable()
{
try {
this.statement.executeUpdate("create table img_table "+
" (img_id int auto_increment primary key, "+
" img_name varchar(255), "+
" img_data mediumblob);");
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 用PreparedStatement setBinaryStream,将图片存入数据库
* @param fileName
*/
public void insertImg(String fileName)
{
String imgName = fileName.substring(fileName.lastIndexOf('\\')+1,fileName.lastIndexOf('.'));
File file = new File(fileName);
int affect;
try {
FileInputStream inputStream = new FileInputStream(file);
insert = coon.prepareStatement("insert into img_table values (null,?,?);",Statement.RETURN_GENERATED_KEYS);
insert.setString(1,imgName);
insert.setBinaryStream(2,inputStream,(int)file.length());
affect = insert.executeUpdate();
if(affect == 1)
{
System.out.println("insert img successfully.");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void queryRowSet()
{
CachedRowSet rowSet = null;
try {
PreparedStatement preparedStatement = coon.prepareStatement("select * from jdbc_test");
ResultSet resultSet = preparedStatement.executeQuery();
RowSetFactory factory = RowSetProvider.newFactory();
rowSet = factory.createCachedRowSet();
//给rowset里装填resultSet,之后就可用rowSet操作结果
rowSet.populate(resultSet);
//把指针移动到最后一行之后
rowSet.afterLast();
//从后往前遍历
while (rowSet.previous())
{
System.out.println(rowSet.getString(1)+"\t"+rowSet.getString(2)+"\t"+rowSet.getString(3));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void queryRowSetByPage()
{
CachedRowSet rowSet = null;
try {
PreparedStatement preparedStatement = coon.prepareStatement("select * from jdbc_test");
ResultSet resultSet = preparedStatement.executeQuery();
RowSetFactory factory = RowSetProvider.newFactory();
rowSet = factory.createCachedRowSet();
rowSet.setPageSize(3);
//给rowset里装填resultSet时,指定起始行号
rowSet.populate(resultSet,1);
//遍历所有页的所有行
do {
while(rowSet.next())
{
System.out.println(rowSet.getString(1)+"\t"+rowSet.getString(2)+"\t"+rowSet.getString(3));
}
}
while (rowSet.nextPage());
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// write your code here
JDBCUtils1 jdbcUtil = new JDBCUtils1();
//------------------------------------------------------------------------------
//建表
jdbcUtil.createTable();
//用statement插入
jdbcUtil.insertDataUseStat("kobe","two times mvp");
//PreparedStatement插入数据
jdbcUtil.insertDataUsePreparedStat("mcgrady","two times defenwang");
jdbcUtil.queryOneByID(1);
jdbcUtil.queryAll();
//------------------------------------存IMG------------------------------------------
if(!jdbcUtil.hasTable("img_table"))
{
jdbcUtil.createImgTable();
}
jdbcUtil.insertImg("F:\\Test\\Swmm Page.png");
//------------------------------------RowSet--------------------------------------------
jdbcUtil.queryRowSet();
//------------------------------------RowSet 分页--------------------------------------------
jdbcUtil.queryRowSetByPage();
}
}
JDBC增删改查——用Statement 和PreparedStatement实现
猜你喜欢
转载自blog.csdn.net/qq_22339269/article/details/83478339
今日推荐
周排行