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. PS纯手式打造不规则颜色的规则方块—学习教程

  2. wariging for you oh~

  3. Shell test命令

    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 数值测试 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt 大于则为真 -ge 大于等于 ...

  4. SQL Server 2008连接字符串写法大全(摘自网络)

    一..NET Framework Data Provider for SQL Server 类型:.NET Framework类库使用:System.Data.SqlClient.SqlConnect ...

  5. Bootstrap_排版_标题

    Bootstrap和普通的HTML页面一样,定义标题都是使用标签<h1>到<h6>,只不过Bootstrap覆盖了其默认的样式,使用其在所有浏览器下显示的效果一样,具体定义的规 ...

  6. 【行为型】Observer模式

    观察者模式意图解决一对多的依赖关系情形中,当被依赖对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新的问题.举个很简单的例子说,假如一个游戏中的角色的某个属性状态发生了变化,此处不妨假设为 ...

  7. 文成小盆友python-num7 -常用模块补充 ,python 牛逼的面相对象

    本篇内容: 常用模块的补充 python面相对象 一.常用模块补充 1.configparser模块 configparser 用于处理特定格式的文件,起内部是调用open()来实现的,他的使用场景是 ...

  8. 直接插入排序(Straight Insertion Sort)的C语言实现

    原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia   直接插入排序(Straight Insertion Sort)的基本思想是将新记录插入到 ...

  9. 防止SQL注入攻击,数据库操作类

    如果不规避,在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击 如:输入Code值 p001' union select * from Info where '1'='1 //这样可以查询到所有数据 ...

  10. Java获取ip地址的几种方法

    以下内容介绍下java获取ip地址的几种思路. 1.直接利用java.net.InetAddress类获取,不过这种方法只在windows环境下有效,在linux环境下只能获取localhost地址( ...