第一步:在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. node.js系列笔记之fs模块《二》

    一:感触 最近工作比较忙,感觉也比较多,因为工作上的不顺利,再加上加班比较多,所以最近心情不是很好,再加上英语能力差到不行,所以最近半个月学习进度也比较慢, 但还是告诉自己每天都坚持学一点,即使今天心 ...

  2. 实用的android颜色配置表(亮瞎尼的双眼)

    android开发中,常常会用到color.xml颜色配置,好的颜色配置可以让尼的应用让人看起来赏心悦目! 不罗嗦,上图先 该工程已经罗列了常用的颜色配置 附上工程链接:http://download ...

  3. 精通CSS+DIV基础总结(三)

    Div+CSS可是实现简单的网页设计,对于需要添加动作,更方便的交互,Javascript给我们提供了方便:数据的存储可以利用XML使其更加方便:而对于减少页面与服务器的交互,可以利用Ajax技术,与 ...

  4. hdu 1698 Just a Hook(线段树基础)

    成段更新的线段树,加入了延时标记............ 线段树这种东西细节上的理解因人而异,还是要自己深入理解......慢慢来 #include <iostream> #include ...

  5. spring mvc页面显示图片失败

    在配置文件中需要映射静态资源 <!-- 当在web.xml 中 DispatcherServlet使用 <url-pattern>/</url-pattern> 映射时, ...

  6. 关于在freemarker模板中遍历数据模型List<JavaBean>的经验

    本文采用简单的servlet作为后台处理数据的工具,前台使用freemarker的ftl模板作为输出工具,简单说明怎样将封装有实体类对象的List集合注入到ftl模板中并且成功的在遍历显示出来,之前在 ...

  7. windows下使用命令查看端口占用情况

    使用下面的命令查看端口占用情况: 比如查看3000端口的占用情况 netstat -ano|findstr 3000 运行后,结果如下: 可以看到进程号为9692的占用了该端口,使用下面的命令查看是哪 ...

  8. WebView使用input file控件打开相册上传图片

    使用 WebView 直接用 控件选择相册图片 package com.moguzhuan.android.zhuan; import android.annotation.TargetApi; im ...

  9. vue使用resource发送ajax请求

    <script type="text/javascript"> new Vue({ el:'#app', created:function(){ var url=&qu ...

  10. hdu1045

    #include<iostream> using namespace std; int count = 0, n = 0; //判断该ch[x][y]是否可以放置 bool isOk(ch ...