//-------------------
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/bbs?user=root&password=****";
Connection conn = DriverManager.getConnection(url);
//------------------------
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:dataBase")
//--------------------
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "url=jdbc:oracle:thin:@localhost:1521:XE";
Connection conn = DriverManager.getConnection(url,username,pwd);
//-----------------------
//Batch;;;数据库,专门大量数插;;
public void method3(){
Connection conn = null;
PreparedStatement stmt = null;
DBHelper db = null;
long start = System.currentTimeMillis();
try {
db = new DBHelper();
conn = db.getConn();
//jdbc默认自动提交;;;insert commit
// 下面这句可别创建for
conn.setAutoCommit(false);
String sql = "insert into t_sal values(?,'kaka',?)";
stmt = conn.prepareStatement(sql);
for (int i = 1; i < 1000; i++) {
stmt.setInt(1, i);
stmt.setInt(2, i*100);
stmt.addBatch();
if(i % 100 == 0){
stmt.executeBatch();
conn.commit();
stmt.clearBatch();
}
//stmt.executeUpdate();
}
//conn.commit();
//提交方式,改原来自动提交,,一句一提交..
conn.setAutoCommit(true);
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} finally {
db.close(null, stmt, conn);
}
long end = System.currentTimeMillis();
//ps bach一共花了578毫秒
System.out.println("ps bach一共花了"+(end - start)+"毫秒");
}
//-----取出刚insert记录的自增id-----第一种方法...
public int getInsert_id1(){
DBHelper db = new DBHelper();
Connection conn = db.getConn();
PreparedStatement pstmt_insert = null;
PreparedStatement pstmt_select = null;
ResultSet rs = null;
int row = 0;
String insertSQL = "insert into pro_stu values(pro_stu_id.NEXTVAL,'tom','13912345678','重庆西永')";
//第二种方法...selectSQL = "select pro_stu_id.CURRVAL from dual";
String selectSQL = "select max(stu_id) from pro_stu";
try{
//执行插入语句...
pstmt_insert = conn.prepareStatement(insertSQL);
pstmt_insert.executeUpdate();
//执行查询语句...
pstmt_select = conn.prepareStatement(selectSQL);
rs = pstmt_select.executeQuery();
while(rs.next()){
row = rs.getInt(1);
}
}catch(SQLException e){
e.printStackTrace();
}
db.close(rs, pstmt_select, null);
db.close(null, pstmt_insert, conn);
return row;
}
//----------取出刚insert记录通用方法.............
public int getInsert_id2(){
DBHelper db = new DBHelper();
Connection conn = db.getConn();
PreparedStatement pstmt_insert = null;
//不曾见,,数据库封装对象;;知道..数据库版;
DatabaseMetaData dbmd = null;
ResultSet rs = null;
int row = 0;
/*首先你要知道,你的jdbc是不是 3.0是否支持功能
System.out.println("product name"+dmd.getDatabaseProductName());
System.out.println("product version"+dmd.getDatabaseProductVersion());
System.out.println("support generate keys?"+dmd.supportsGetGeneratedKeys());
*/
String sql = "insert into pro_stu values" +
"(pro_stu_id.NEXTVAL,'jack','13812345678','广东深圳')";
try{
dbmd = conn.getMetaData();
pstmt_insert = conn.prepareStatement(sql,new String[]{"stu_id"});
pstmt_insert.executeUpdate();
if(dbmd.supportsGetGeneratedKeys()){
rs = pstmt_insert.getGeneratedKeys();
if(rs.next()){
row = rs.getInt(1);
}
}
}catch(SQLException e){
e.printStackTrace();
}
db.close(rs, pstmt_insert, conn);
return row;
}
//事务-----------------
public void inTimeRun(){
DBHelper db = new DBHelper();
Connection conn = db.getConn();
PreparedStatement pstmt1 = null;
PreparedStatement pstmt2 = null;
try{
//取消自动提交更新设置为手动...
conn.setAutoCommit(false);
String sql1 = "update pro_stu set stu_name = 'jarry' where stu_id = 6";
String sql2 = "delete from pro_stu where stu_id = 10";
pstmt1 = conn.prepareStatement(sql1);
pstmt2 = conn.prepareStatement(sql2);
pstmt1.executeUpdate();
pstmt2.executeUpdate();
//System.out.println("正在更新...");
conn.commit();
}catch(SQLException e){
e.printStackTrace();
try{
System.out.println("更新失败...已回滚....");
//设置回自动提交更新...
conn.rollback();
conn.setAutoCommit(true);
}catch(SQLException e1){
e1.printStackTrace();
}
}
db.close(null, pstmt2, null);
db.close(null, pstmt1, conn);
}
public class SaveFile {
public void saveF(){
DBHelper db = new DBHelper();
Connection conn = db.getConn();
PreparedStatement pstmt = null;
try{
pstmt = conn.prepareStatement("insert into saveImg values(?,?)");
pstmt.setString(1,"e:/西湖醋鱼.jpg");
InputStream in = new FileInputStream("e:/西湖醋鱼.jpg");
pstmt.setBinaryStream(2,in,in.available());
pstmt.executeQuery();
System.out.println("图片保存成功...");
}catch(SQLException e){
e.printStackTrace();
}catch(FileNotFoundException e1){
e1.printStackTrace();
}catch(IOException e2){
e2.printStackTrace();
}
}
public void getF(){
DBHelper db = new DBHelper();
Connection conn = db.getConn();
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
pstmt = conn.prepareStatement("select * from saveImg where filename = ?");
pstmt.setString(1,"e:/西湖醋鱼.jpg");
rs = pstmt.executeQuery();
rs.next();
InputStream in = rs.getBinaryStream("filecontent");
FileOutputStream fos = new FileOutputStream("e:/index.jpg");
byte[] buff = new byte[1024];
int length = 0;
while((length = in.read(buff)) != -1){
fos.write(buff,0,length);
fos.flush();
}
fos.close();
in.close();
System.out.println("数据写入成功...");
}catch(SQLException e){
e.printStackTrace();
}catch(FileNotFoundException e1){
e1.printStackTrace();
}catch(IOException e2){
e2.printStackTrace();
}
}
public static void main(String[] args){
SaveFile save = new SaveFile();
save.getF();
}
}
1:在conf/context.xml中加入<resource>元素
<Resource name="OracleDataSource"
auth="Container"
type="javax.sql.DataSource"
maxActive= "10"
maxIdle= "2"
maxWait="5000"
username="scott"
password="tiger"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:myOracle"/>
2:
在web.xml中加入<resource-ref>元素
<resource-ref>元素表示在Web应用中引用JNDI资源
<resource-ref>
<description>DB Connection</description>
<res-ref-name>OracleDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3:
由于数据源由Servlet容器创建并维护,所以必须把JDBC驱动程序拷贝到Tomcat安装目录下的lib目录下,确保Servlet容器能够访问驱动程序
4:
获得对数据源的引用:
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/OracleDataSource");
获得数据库连接对象:
Connection con = ds.getConnection();
返回数据库连接到连接池:
con.close();