package cn.bdqn.bean;

public class Dept {

    private  Integer deptno;
private String dname;
private String loc;
public Dept(Integer deptNo, String dname, String loc) {
super();
this.deptno = deptNo;
this.dname = dname;
this.loc = loc;
}
public Dept() {
super();
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptNo) {
this.deptno = deptNo;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
@Override
public String toString() {
return "Dept [deptNo=" + deptno + ", dname=" + dname + ", loc=" + loc
+ "]";
} }
package cn.bdqn.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import cn.bdqn.bean.Dept; public class JDBCTest { public static void main(String[] args) { /**
* 获取数据库连接的4要素
* 01.url
* 02.driverClass
* 03.userName
* 04.password
*/
String driver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String userName="t10";
String password="t10";
/**
* 创建jdbc需要的API
*/
Connection connection=null;
PreparedStatement ps=null;
ResultSet rs=null; try {
Class.forName(driver); //加载驱动
connection= DriverManager.getConnection(url, userName, password);//获取连接
String sql="select * from dept where deptno=?"; //书写sql语句
ps=connection.prepareStatement(sql); //实例化ps对象
ps.setInt(1, 30);//给参数赋值
rs=ps.executeQuery(); //获取查询的结果集 while(rs.next()){
int deptno=rs.getInt("deptno");
String dName=rs.getString("dname");
String loc=rs.getString("loc");
Dept dept=new Dept(deptno, dName, loc);
System.out.println(dept);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
//释放资源
rs.close();
ps.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
} } } }

package cn.bdqn.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException; import cn.bdqn.bean.Dept; public class ORMTest { /**
* 元数据:
* Student
* age
* name
* address
* 这些属性都是用来描述Student对象特征的! 描述数据的数据就是元数据!
*
*/ public static void main(String[] args) throws Exception, IllegalAccessException, ClassNotFoundException { //我们所写的实体类
String className="cn.bdqn.bean.Dept";
//通过反射获取这个类的实例
Object object=Class.forName(className).newInstance(); String driver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String userName="t10";
String password="t10";
/**
* 创建jdbc需要的API
*/
Connection connection=null;
PreparedStatement ps=null;
ResultSet rs=null; try {
Class.forName(driver); //加载驱动
connection= DriverManager.getConnection(url, userName, password);//获取连接
String sql="select * from dept where deptno=?"; //书写sql语句
ps=connection.prepareStatement(sql); //实例化ps对象
ps.setInt(1, 20);//给参数赋值
rs=ps.executeQuery(); //获取查询的结果集
while(rs.next()){
//01.获取元数据的结果集
ResultSetMetaData data = rs.getMetaData();
//02.获取数据库中有多少字段
int count = data.getColumnCount();
//03.循环获取字段的名称和类型
for (int i = 1; i <=count; i++) {
String name= data.getColumnName(i); //字段名称
String type= data.getColumnTypeName(i); //字段类型 System.out.println(name+"====》"+type);
//给我一个字段名称 ,我给你返回一个set字段名 给类中的属性 赋值
String method=getMethod(name);
//04.判断 数据库中的字段类型 要和java中的数据类型相互匹配
if (type.equals("NUMBER")) {
object.getClass().getMethod(method, Integer.class)
.invoke(object, rs.getInt(name));
}else if(type.equals("VARCHAR2")){
object.getClass().getMethod(method, String.class)
.invoke(object, rs.getString(name));
}
}
Dept dept=(Dept) object;
System.out.println(dept); }
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
//释放资源
rs.close();
ps.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
} } } /**
*给我一个字段名称 ,我给你返回一个set字段名 给类中的属性 赋值
* @param name 字段名称
* @return setName()
*/
private static String getMethod(String name) {
return "set"+name.substring(0, 1).toUpperCase()+name.substring(1).toLowerCase();
} }

hibernate01ORM的引入的更多相关文章

  1. 谈谈DOMContentLoaded:Javascript中的domReady引入机制

    一.扯淡部分 回想当年,在摆脱写页面时js全靠从各种DEMO中copy出来然后东拼西凑的幽暗岁月之后,毅然决然地打算放弃这种处处“拿来主义”的不正之风,然后开启通往高大上的“前端攻城狮”的飞升之旅.想 ...

  2. NGINX引入线程池 性能提升9倍

    1. 引言 正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求.为 ...

  3. Electron中Jquery的引入方式

    原文链接http://huisky.com/blog/16122220522957 Electron默认启用了Node.js的require模块,而jQuery等新版本框架为了支持commondJS标 ...

  4. iOS引入JavaScriptCore引擎框架(二)

    为何放弃第一种方案 UIWebView的JSContext获取     上篇中,我们通过简单的kvc获取UIWebVIew的JSContext,但是实际上,apple并未给开发者提供访问UIWebVi ...

  5. iOS引入JavaScriptCore引擎框架(一)

    JavaScriptCore引擎     我们都知道WebKit是个渲染引擎,简单来说负责页面的布局,绘制以及层的合成,但是WebKit工程中不仅仅有关于渲染相关的逻辑,也集成了默认的javascri ...

  6. C++01.类的引入

    1.假设我们要输出张三,李四两个人的基本信息,包括姓名,年龄,可以用以下的C程序实现: eg: #include <stdio.h> int main(int argc,char **ar ...

  7. Highchart插件简介和引入方式

    一.Highchart简介: Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表. Highchart ...

  8. 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

    当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式.比如 select * from T_Employee where FNumber not in ( select top 5*  ...

  9. JavaScript模板引擎artTemplate.js——引入子模板

    之前的例子都是单一结构的对象,如果遇到复杂对象结构,我们可以通过引入子模板来实现html的渲染. 依旧以之前的数据作为例子: <div id="content">< ...

随机推荐

  1. [LeetCode OJ] Reorder List—Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…

    For example,Given {1,2,3,4}, reorder it to {1,4,2,3}. /** * Definition for singly-linked list. * str ...

  2. Google Calendar(日历)设置农历生日提醒

    Generate birthday dates base on lunar birthdays for google calendar import Can be used for notifying ...

  3. PHP删除Solr文档

    <?php $options = array ( 'hostname' => 'localhost', 'port' => '8080', 'path'=>'solr/help ...

  4. 临时设置 selinux

    setenforce 0             ##设置SELinux 成为permissive模式 ##setenforce 1 设置SELinux 成为enforcing模式

  5. 关闭iOS的自动更新

    Safari打开网址https://oldcat.me/web/NOOTA9.mobileconfig,安装描述文件,就不会自动下载和提示更新最新的iOS了

  6. C语言字符串操作函数整理

    整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...

  7. Sample RWD Setup for Client-Side Development

    RWD and RESS concepts fluid images, responsive grids, and media queries. Twitter's Bootstrap based o ...

  8. ClipDrawable 资源

    ClipDrawable 代表从其他位图上截取的一个“图片片段”. 示例: main.xml <?xml version="1.0" encoding="utf-8 ...

  9. ListView OnScrollListener详解(滑屏分页显示数据)

    package com.action; import java.util.ArrayList; import java.util.List; import android.app.Activity; ...

  10. POJ1008 1013 1207 2105 2499(全部水题)

    做了一天水题,挑几个还算凑合的发上来. POJ1008 Maya Calendar 分析: #include <iostream> #include <cstdio> #inc ...