第一步:在src下面建一个包com.xsl.conf

第二步:在建好的包下面新建一个jdbc.properties

第三步:在jdbc.properties里写入内容如下:

  driver = oracle.jdbc.driver.OracleDriver

  url = jdbc:oracle:thin:@127.0.0.1:1521:orcl或jdbc:oracle:thin:@localhost:1521:orcl

  uname = scott

  upwd = tiger

第四步:建BaseDao

 package com.xsl.dao;

 import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties; import com.xsl.entity.Student; public class BaseDao { private static Properties ps = new Properties(); static{
InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("com/xsl/conf/jdbc.properties");
try {
ps.load(is);
System.out.println(ps);
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 获得数据库连接
*/
public static Connection getConnection(){
Connection conn = null;
try {
Class.forName(ps.getProperty("driver")); //"oracle.jdbc.driver.OracleDriver"
conn = DriverManager.getConnection(ps.getProperty("url"),ps.getProperty("uname"),ps.getProperty("upwd")); //"jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger"或//"jdbc:oracle:thin:@localhost:orcl","scott","tiger"
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} /**
* 添加
* @param obj:需要被保存的对象
* @return 受影响的行数
*/
public static int save(Object obj){
//insert into 表名(列名1,列名2...) values(?,?...)
int row = 0;
//获取需要被保存实体对象的Class类型的对象
Class c = obj.getClass();
//获取实体类中的属性对象
Field [] fs = c.getDeclaredFields();
//给属性对象解锁
Field.setAccessible(fs, true);
//拼SQL语句
StringBuffer sql = new StringBuffer();
sql.append(" insert into ");
sql.append(c.getSimpleName());//添加表名
sql.append(" ( ");
for(int i=1;i<fs.length;i++){//添加列名
sql.append(fs[i].getName());
if(i<fs.length-1){//判断没有到最后一个列
sql.append(" , ");
}
}
sql.append(" ) ");
sql.append(" values (");
for(int i=1;i<fs.length;i++){
sql.append(" ? ");
if(i<fs.length-1){
sql.append(" , ");
}
}
sql.append(" ) ");
System.out.println(sql);
Connection conn = getConnection();
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql.toString());
//给占位符赋值
for(int i=1;i<fs.length;i++){
//stu.getName();stu.getMoney();
//fs[i].get(obj)从obj这个对象中获取fs[i]这个属性对应的值
pstmt.setObject(i, fs[i].get(obj));
}
row = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, null);
}
return row;
} /**
* 查询
*/
public static List queryList(Class c){
List list = new ArrayList();
Field [] fs = c.getDeclaredFields();
Field.setAccessible(fs, true);
//select * from 表名
StringBuffer sql = new StringBuffer();
sql.append(" select * from ");
sql.append(c.getSimpleName());
Connection conn = getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
while(rs.next()){
//Student stu = new Student();
//stu.setName(rs.getString("name"));
//stu.setMoney(rs.getDouble("money"));
Object obj = c.newInstance();
for(int i=0;i<fs.length;i++){
//fs[i].get(obj);stu.getName();
//fs[i].getName()获取属性名
//rs.getObject(Objet obj)在结果集中按列名取值
//fs[i].set(obj,value);调用属性的赋值方法,给属性赋值
fs[i].set(obj, rs.getObject(fs[i].getName()));//stu.setName(rs.getString("name"));
}
list.add(obj);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, rs);
}
return list;
} /**
* 删除
*/
public static int delete(Object obj){
int row = 0;
//delete from 表名 where 主键=?
Class c = obj.getClass();
Field [] fs = c.getDeclaredFields();
Field.setAccessible(fs, true);
StringBuffer sql = new StringBuffer();
sql.append(" delete from ");
sql.append(c.getSimpleName());
sql.append(" where ");
sql.append(fs[0].getName());
sql.append(" = ?");
//System.out.println(sql);
Connection conn = getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql.toString());
pstmt.setObject(1, fs[0].get(obj));
row = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, rs);
}
return row;
} /**
* 关闭数据库连接
*/
public static void closeAll(Connection conn,Statement pstmt,ResultSet rs){
try{
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(conn!=null){
conn.close();
}
}catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
//System.out.println(getConnection());
//save(new Student("刘二狗",888,new Date(System.currentTimeMillis())));
/*List<Student> list = queryList(Student.class);
for(Student stu:list){
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getMoney()+"\t"+stu.getBrithday());
}*/
delete(new Student(16)); }
}

测试

 public class Test
{
public static void main(String[] args)
{
//1、获取hibernate中的配置信息(获取数据库的详细信息)
Configuration cofig = new Configuration().configure();
//2、创建session工厂
SessionFactory factory = config.buildSessionFactory();
//3、获取session对象(connection)
Session session = factory.openSession();
//4、开启事务
session.beginTransaction(); Student s = new Student();
s.setAge(11);
s.setName("xsl"); //5、保存
session.save(s);
//6、事务提交
session.getTransaction().commit();
//7、session关闭
session.close();
}
}

myeclipse连接数据库oracle(添加jdbc.properties)的更多相关文章

  1. myeclipse连接数据库oracle

    package xsl; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat ...

  2. Myeclipse连接数据库删除数据库(JDBC)

    package com.test.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr ...

  3. oracle的jdbc.properties文件配置

    ----------Oracle #do Oracle JDBC jdbc.driverClassName=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:o ...

  4. MyEclipse 连接Oracle数据库(初学者必看)

    前言:刚接触Oracle数据库,便有一个需求,编写控制台程序,实现主人登录.数据库为Oracle.下面详细介绍一下MyEclipse 连接Oracle数据库.   package DbHelp; im ...

  5. JDBC课程1-实现Driver接口连接mysql数据库、通用的数据库连接方法(使用文件jdbc.properties)

    package day_18; import jdk.internal.util.xml.impl.Input; import org.junit.Test; import java.io.Input ...

  6. maven项目无法导入Oracle的jdbc连接jar包【我】

    导入一个maven项目,启动一直报错 找不到Oracle的jdbc连接驱动Class, 用Eclipse导入 ojdbc14.jar 连接包,各种方法都无效,无法引入到部署后的lib目录中,可以直接放 ...

  7. 转:ORACLE的JDBC连接方式:OCI和THIN

    oracle的jdbc连接方式:oci和thin oci和thin是Oracle提供的两套Java访问Oracle数据库方式. thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracl ...

  8. 利用MyEclipse连接数据库并自动生成基于注解或者XML的实体类

    一.利用MyEclipse连接数据库 1. 打开MyEclipse的数据库连接视图 然后在Other中找到"MyEclipse Database"中的DB Browser 2. 在 ...

  9. Java添加JDBC

    添加JDBC 1.SQL Server SQL Server2005 下载 sqljdbc_4.0 https://www.microsoft.com/en-us/download/details.a ...

随机推荐

  1. Python中关于XML-RPC原理

    SimpleXMLRPCServer模块为XML-RPC服务端的写入提供了一个基本的框架.利用SimpleXMLRPCServer服务器既可以一直空闲,也可以利用CGIXMLRPCRequestHan ...

  2. LNMP安装与配置

    Nginx与apache.lighttp性能综合对比,如下图:                           注意:关闭rpm默认安装的apache和mysql 1.准备php函数的rpm包 y ...

  3. ERROR 1130: Host xxx is not allowed to connect to this MySQL server

    在使用MySQL-Front连接mysql的时候发生的这个错误 ERROR 1130: Host xxx is not allowed to connect to this MySQL server ...

  4. Mvc分页组件MvcSimplePager代码重构

    1 Mvc分页组件MvcSimplePager代码重构 1.1 Intro 1.2 MvcSimplePager 代码优化 1.3 MvcSimplePager 使用 1.4 End Mvc分页组件M ...

  5. git(安装)配置

    安装: git安装程序下载:https://git-scm.com/. 配置: $ git config --global user.name "Your Name" $ git ...

  6. 安装windows后grub的恢复

    问题: 原本是:双系统(linux和windows),后来换windows版本覆盖了grub2 解决方法: 进入windows后下载并安装EasyBCD并添加grub2的选项,重启看见了熟悉的启动项, ...

  7. Putty的注册表设置

    Putty是一款非常好用的远程管理Linux系统的工具,其主要具有以下几个优点:  完全免费;  在Windows 9x/NT/2000下运行的都非常好;  全面支持SSH1和SSH2:  绿色软件, ...

  8. C++ unordered_map 在key为string类型和char*类型时测试时间性能差异

    测试系统liunx centos6.5 代码如下 #include <string.h> #include <sstream> #include <list> #i ...

  9. dirty cow exp

    公司搞底层的改了一下,说做到了几个不死机 /* * (un)comment correct payload first (x86 or x64)! * * $ gcc cowroot.c -o cow ...

  10. SQL语句获取数据库中的表主键,自增列,所有列

    SQL语句获取数据库中的表主键,自增列,所有列   获取表主键 1:SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_U ...