hibernate01ORM的引入

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();
    }

}
时间: 2024-10-22 12:20:12

hibernate01ORM的引入的相关文章

转--- IntelliJ IDEA (idea)引入eclipse web项目

老规矩,引入,看图片 点击进去,如图 OK以后,如图 然后就不停的NEXT,就行了. 完成后,如图.点击红框内的按钮 点击进入后,开始对项目进行设置. 设置modules,刚进入modules的基本上不用设置,不过你可以根据自己的需要设置,点击sources,test就是源码和测试的包,excluded是个排除包,我基本上就用来设置那些IDE的配置文件. 重要的一步是点击红框中的Dependcies 点击Dependcies后,快捷键ALT+INSERT或者找到绿色的一个"+"号, 选

android 引入第三方jar包 找不到类

============问题描述============ 我的android项目,引入第三方jar包的方法是将引入的六个json包放到项目的lib文件夹里,通过添加到userlib中,在项目中引用userlib,项目这样部署,编译阶段没有报错一切正常 ,但是在运行的时候,就会报javanotfound的错误,找不到json包中的一个JSONObject这个类!  上网查过了,还是试过其他的方法,直接通过Add ExternalJARS...方法引入,但是更不行,直接报错[2012-02-29 1

重构改善既有代码设计--重构手法05:Introduce Explaining Variable (引入解释性变量)

  发现:你有一个复杂的表达式. 解决:将该复杂的表达式(或其中的部分)的结果放进一个临时变量,并以此变量名称来解释表达式用途. //重构前 if((platform.toUpperCase().indexOf("MAC") > -1) && (browser.toUpperCase().indexOf("IE") > -1) && wasInitialized() && resize > 0) {

maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0

问题:引入依赖之后会报错. 1.首先我们要去下载一个oracle的驱动jar包,ojdbc6.jar(我这里本机安装了oracle,所以在oracle安装目录 F:\app\zyh\product\11.1.0\db_1\jdbc\lib 目录下会有驱动的jar包,如果你没有安装oracle,那么可以从官网上下载jar包,反正就是必须要先有一个ojdbc6.jar,只要搞到就行了). 2.以我本机为例子,打开命令提示符(cmd),进入ojdbc6.jar所在目录,在我这里就进入F:\app\zy

张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )

所谓 UWP 样式的汉堡菜单,我曾在"张高兴的 UWP 开发笔记:汉堡菜单进阶"里说过,也就是使用 Segoe MDL2 Assets 字体作为左侧 Icon,并且左侧使用填充颜色的矩形用来表示 ListView 的选中.如下图 但怎样通过 Xamarin.Forms ,将这一样式的汉堡菜单带入到 Android 与 iOS 中呢? 一.大纲-细节模式简介 讲代码前首先来说说这种导航模式,官方称"大纲-细节模式"(MasterDetail).左侧的汉堡菜单称为&qu

Web框架的引入

为什么会有web框架 有了上一篇内容,静态.动态web服务器的实现,已经掌握了客户端请求到服务器处理的机制.在动态资源处理中,根据请求 .py 导入模块应用,然后调用应用入口程序实现动态处理.但是在真实的项目中,肯定有很多应用(.py文件),按照这种处理机制(每个应用中都要写一个入口,设置状态码.headers)不符合架构设计原则,这一部分肯定是可以复用的,所用应用应该公用一个入口,这就引入一个概念web框架. 设计思路 把每个应用中入口 application(env,start_respon

php如何引入百度Ueditor富文本编辑器

文本编辑器插件内容丰富,比起传统的textarea标签输入要好用很多,看看如何在页面实现引入吧 1.下载适合的资源包(可以去官网下载适合的版本),我是php引入 2.下载后解压放到一个位置.(我用的是TP框架,所以我放在了我的指定公共文件夹Pbulic下) 3.在页面中引入 首先在head标签里写引入资源包的路径,路径要写自己存放资源包的路径 <script type="text/javascript" src="__PUBLIC__/ueditor/ueditor.c

MyEclipse如何安装egi插件及如何将github项目引入MyEclipse中

一.如何查看MyEclipse版本及Eclipse版本号 查看MyEclipse版本号:MyEclipse主界面的菜单栏的最左边"help"->选择"About MyEclipse Enterprise Workbench"选项,如下图所示: 查看Eclipse版本号:在MyEclipse的安装目录下,打开.eclipseproduct文件,如下图所示: 表明Eclipse的版本号为3.8 二. MyEclipse安装egit插件 接下来,我们需要在MyEcl

Multimodal —— 看图说话(Image Caption)任务的论文笔记(三)引入视觉哨兵的自适应attention机制

在此前的两篇博客中所介绍的两个论文,分别介绍了encoder-decoder框架以及引入attention之后在Image Caption任务上的应用. 这篇博客所介绍的文章所考虑的是生成caption时的与视觉信息无关的词的问题,如"the"."of"这些词其实和图片内容是没什么关系的:而且,有些貌似需要视觉特征来生成的词,其实也可以直接通过语言模型来预测出来,例如"taking on a cell"后生成"phone".