Java基础学习到进阶自我总结八
JDBC连接Oracle数据库等操作
2020-01-13
简单实现
JDBC简易连接Oracle数据库
PS在Java中连接Oracle数据库要用到ojdbc6.jar驱动包
/*
*定义数据库连接用到的变量
*/
private static String driver="oracle.jdbc.driver.OracleDriver";//数据库驱动
//数据库连接地址(oracle中thin指从本地连接,127.0.0.1指本地ip,此处也可以是localhosts,默认端口是1521,orcl指数据库名称)
private static String url="jdbc:oracle:thin:@127.0.0.1:1522:orcl";
private static String username="donald";//数据库用户名
private static String password="a123456";//数据库密码
/*
* 对数据库的操作:新增数据、删除数据(改变数据库的数据update),查询数据(获取数据query)
* jdbc:java database connection
*/
public static void main(String[] args) {//连接数据库的过程
try {
//加载驱动
Class.forName(driver);
//创建数据库的连接
Connection conn = DriverManager.getConnection(url,username,password);
//创建对数据库操作对象
Statement sm = conn.createStatement();
//exeQuery(sm);//调用查询方法
exeUpdate(sm);//调用更新方法
} catch (Exception e) {
e.printStackTrace();
}
}
操作查询语句
/**
* 操作查询数据库例子
*/
public static void exeQuery(Statement sm) {
String sql = "select *from t_school";
//执行sql语句
try {
ResultSet rs = sm.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("name"));//name是数据库列名
}
//先打开后关闭
rs.close();
if (sm!=null) {
sm.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
操作更新语句
/**
* 操作更新数据库例子
* @return
*/
public static void exeUpdate(Statement sm) {
String sql = "update t_school set name='垃圾学校' where id = 12";
try {
//执行sql(返回的值是成功更新的条数int)
int i = sm.executeUpdate(sql);
String string = "执行"+(i>0?"成功":"失败");
System.out.println(string);
//关闭
if (sm!=null) {
sm.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
配置文件加工具类实现
配置文件创建和配置
创建配置文件存储参数值在.properties文件中
操作:左侧Package Explorer空白处右键/New/Other/Ganeral/File/选择项目/Finish
db.properties文件配置:
jdbc_driver=oracle.jdbc.driver.OracleDriver
jdbc_url=jdbc:oracle:thin:@127.0.0.1:1522:orcl
jdbc_username=donald
jdbc_password=a123456
PS配置完后可以通过静态代码块直接读取配置文件数据
静态代码块获取配置文件数据操作
//静态代码块读取数据库配置:静态代码快不用调用,直接运行
static{
try {
//文件类对象,取出db.properties文件数据(这里用的绝对路径,相对路径可以直接写config/db.properties)
File file = new File("D:\\Donald\\workspace\\Jdbc\\config\\db.properties");
//文件输入流
FileInputStream fis= new FileInputStream(file);
Properties pro = new Properties();//属性类,键对应值
pro.load(fis);
//通过键值对取值,jdbc_driver就是db.properties文件里面的key
driver = pro.getProperty("jdbc_driver");
url = pro.getProperty("jdbc_url");
username = pro.getProperty("jdbc_username");
password = pro.getProperty("jdbc_password");
System.out.println("数据库配置读取成功!");
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
数据库连接方法
//创建连接
public static Connection getConn(){
try {
//加载驱动
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,username,password);
return conn;
} catch (Exception e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
return null;
}
查询方法
/**
* 查询方法
*/
public static ResultSet exeSelect(String sql){
ResultSet rs = null;
try {
Connection connection = getConn();
//创建数据库操作对象
Statement sm = connection.createStatement();
//执行查询
rs = sm.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
更新方法
/**
* 更新方法
*/
public static int exeUpdate(String sql){
ResultSet rs = null;
int i=0;
try {
Connection connection = getConn();
//创建数据库操作对象
Statement sm = connection.createStatement();
//执行查询
i = sm.executeUpdate(sql);
//关闭
sm.close();
} catch (Exception e) {
e.printStackTrace();
}
return i;
}
关闭数据库方法
//关闭数据库
public static void close(ResultSet rs){
try {
Connection conn = null;
Statement sm = null;
if (rs!=null) {
sm=rs.getStatement();
rs.close();
}
if (sm!=null) {
conn = sm.getConnection();
sm.close();
}
if (conn!=null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
```