第一步:在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. LNMP安装与配置

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

  2. MapXtrem + Asp.net 地图随窗体改变大小

    在B/S框架下,MapXtreme都是基于图片的,也就是说在客户端显示的地图实际上都是一张图片. 地图控件 <cc1:MapControl ID="/> 在调试模式下,编译后的地 ...

  3. JDBC连接数据库(MySQL)

    package com.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSe ...

  4. 关于default的位置问题:default放在前面

    在linux内核的文件系统中,有这样的一段代码: 473 if (this.name[0] == '.') switch (this.len) { 474 default: 475 break; 47 ...

  5. [置顶] Oracle学习经验谈

    经常遇到朋友问oracle学习难不难,怎么才能成为高手等等,我想结合我的个人经验简单说几点: 1.打好基础,由浅入深 学习Oracle不能急于求成,寄希望于一天成为一个大侠.学习有个过程,应该由浅入深 ...

  6. 《jQuery权威指南》学习笔记之第2章 jQuery选择器

    2.1 jQuery选择器概述 2.1.1 什么使选择器 2.1.2 选择器的优势: 代码更简单,完善的检测机制  1.代码更简单   示例2-1     使用javascript实现隔行变色 < ...

  7. schemamvcSpringMVC+Spring3+Hibernate4开发环境搭建

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下schemamvc <?xml version="1.0" encoding=" ...

  8. C#的FTP上传下载的实验

    前段时间做了一个FTP操作服务器文件的实验,现在把一些经验写下来,免得忘记. 1.上传的处理:目标文件夹A上传到服务器指定目录.先检索服务器目录中有无同名文件夹,若有,则先改名,上传成功后再删除,上传 ...

  9. CI Weekly #11 | 微服务场景下的自动化测试与持续部署

    又一周过去了,最近我们的工程师正在搞一个"大事情" --「[flow.ci](http://flow.ci/?utm_source=bokeyuan&utm_medium= ...

  10. .NET中的类库

    1.object类  所有类都继承于object类,是顶级父类,他有以下成员,都是虚方法:  a)   ToString() 默认输出对象所属类的全名称(命名空间.类名) b)   Equals (O ...