JDBC简介
JDBC中文含义:Java数据库连接,英文全称:Java Database Connectivity。
它是Java语言中用来规范访问数据库的接口,提供了放多接口方法,例如查询 、更新、插入、删除等方法。
另外一点要注意的是:JDBC是面向关系型数据库的。
db.properties文件内容
driver=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:XE
username=scott
passwd=123456
封装类的内容
package com.bjsxt.entity;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtil {
//声明jdbc全局参数
public static String driver;
public static String url;
public static String username;
public static String passwd;
//使用静态代码块,在类加载到文件时读取
static{
//动态获取对象流
InputStream in = DBUtil.class.getResourceAsStream("/properties");
//创建properties对象
Properties p = new Properties();
//加载
try {
p.load(in);
//将读取的jdbc参数赋值给全局变量
driver=p.getProperty("driver");
url=p.getProperty("url");
username=p.getProperty("username");
passwd=p.getProperty("passwd");
//加载驱动
Class.forName(driver);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//会将属性配置文件中的内容放到properties对象中
}
public static Connection getConnection(){
Connection conn = null;
try {
conn = DriverManager.getConnection(url, username, passwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
}
核心代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.bjsxt.entity.DBUtil;
public class TestTrainsaltion {
public static void main(String[] args) {
//事物的练习
/**
* 1、创建jdbc参数
* 2、创建jdbc变量
* 3、加载驱动
* 4、创建连接
* 5、创建SQL命令对象
* 6、创建SQL命令
* 7、执行SQL命令
* 8、处理结果
* 9、关闭资源
*/
1、创建jdbc参数
//String driver = "oracle.jdbc.OracleDriver";
//String url="jdbc:oracle:thin:@localhost:1521:XE";
//String username="scott";
//String passwd="123456";
//
创建jdbc变量
Connection conn = null;
PreparedStatement ps = null;
//3、加载驱动
try {
//Class.forName(driver);
4、创建连接
//conn = conn = DriverManager.getConnection(url, username, passwd);
conn=DBUtil.getConnection();
//5、开启事物
conn.setAutoCommit(false);
//6、创建SQL命令对象
String sql="update t_account set money=money+? where aname=?";
//7、创建命令对象
ps = conn.prepareStatement(sql);
//8、给占位符赋值
int i=0;
//转账
ps.setDouble(1, 500);
ps.setString(2, "李四");
int executeUpdate4 = ps.executeUpdate();
int executeUpdate3 = executeUpdate4;
int executeUpdate2 = executeUpdate3;
int executeUpdate = executeUpdate2;
i = executeUpdate;
ps.setDouble(1, -500);
ps.setString(2, "张三");
i+=ps.executeUpdate();
//处理结果
if(i>=2){
System.out.println("转账成功");
}else{
System.out.println("转账失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}