作者:血红中国心_686 | 来源:互联网 | 2018-05-27 00:38
要在java对数据库做任何操作,第一件事当然是获取数据库连接,笔者是通过配置文件的形式加载数据库信息的,配置文件名为db.properties,内容如下drivercom.mysql.jdbc.Driverurljdbc:mysql:localhost:3306customermanageusernamerootpasswordroot
要在java对数据库做任何操作,第一件事当然是获取数据库连接,笔者是通过配置文件的形式加载数据库信息的,配置文件名为db.properties,内容如下 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/customermanage username=root password=root
要在java对数据库做任何操作,第一件事当然是获取数据库连接,笔者是通过配置文件的形式加载数据库信息的,配置文件名为db.properties,内容如下
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/customermanage
username=root
password=root
ps:properties中的内容均为键值对形式,不需要用到引号
接下来是DBUtil类,获取配置,得到连接
package com.cherry.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.util.ResourceBundle;
public class DBUtils {
static String driver;
static String url;
static String username;
static String password;
static {
try {
ResourceBundle rb = ResourceBundle.getBundle("db");
driver = rb.getString("driver");
Class.forName(driver);
url = rb.getString("url");
username = rb.getString("username");
password = rb.getString("password");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
public static void releaseRes(ResultSet rs, PreparedStatement ps,
Connection conn) throws SQLException {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
}
}
先说说批处理操作类
package com.cherry.batch
import java.sql.Connection
import java.sql.PreparedStatement
import java.sql.SQLException
import com.cherry.utils.DBUtils
public class BatchSQL {
public static void main(String[] args) throws SQLException {
Connection cOnn= DBUtils.getConn()
String sql="insert into des value(?,?)"
PreparedStatement ps=conn.prepareStatement(sql)
for ( int i=0
ps.setString(1, "name"+i)
ps.setString(2, "des"+i)
ps.addBatch()
if(i%100==0){
ps.executeBatch()
ps.clearBatch()
}
}
}
}
再看大文本或图片类型的存储
package com.cherry.batch
import java.io.File
import java.io.FileInputStream
import java.io.FileReader
import java.io.Reader
import java.sql.Connection
import java.sql.PreparedStatement
import java.util.UUID
import com.cherry.utils.DBUtils
public class TextSQL {
public static void main(String[] args) {
try {
Connection cOnnection= DBUtils.getConn()
String sql = "insert into des values(?,?)"
PreparedStatement ps = connection.prepareStatement(sql)
ps.setString(1, UUID.randomUUID().toString())
File file = new File("f://test.txt")
Reader reader = new FileReader(file)
//这里不一定要强转,看你的mysql驱动版本,总之不转不行就转个试试
ps.setCharacterStream(2, reader, (int)file.length())
ps.executeUpdate()
} catch (Exception e) {
e.printStackTrace()
}
}
}
另外,注意导包,这里所有的数据库操作类所导的都是java.sql下的,想想也知道,面向接口编程的Java君,肯定是使用sql包的(普适性),因为mysql/sqlserver/orcale这些都是实现类,用他们肯定不合适。