zoukankan      html  css  js  c++  java
  • 服务器和java程序的桥梁--jdbc/hibernate

    现实的应用程序都是用户通过可视化界面发出指令从而修改数据库。本篇文章以Oracle为例,模拟怎么通过java代码实现数据库的增删改查。

    新建一个Java项目,要建好桥梁,首先要拷入驱动Jar包放在项目名根目录,右键Jar包,选择Build Path》build to path。但是要想Jar包随项目走的话,需要新建lib目录,将jar包放入lib目录下。以下代码意思流程我都会在工程中解释。

    JDBC连接数据库:

    public static void main(String[] args) {
    //在这里我不一一举例写方法执行增删改查了
    //数据库连接
    Connection conn = null;
    Statement st =null;
    ResultSet rs = null;
    try {
    //加载驱动引擎
    Class.forName("oracle.jdbc.driver.OracleDriver");//驱动jar包名称
    //建立与数据库的链接
    conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "system", "svse");
    //建立执行sql语句平台
    st = conn.createStatement();
    //业务逻辑代码(数据库代码)

    //st.execute("Insert Into tableName values(one,'two','three')");//增加
    //st.execute("Delete From tableName Where id = ?");//删 除了查询返回结果集之外,其他的都是一样的
    rs=st.executeQuery("Select * From tableName");
    while(rs.next()){
    System.out.println("rs.,,,,,,,,,");
    }
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    //关闭资源
    if(conn!=null){
    try {
    conn.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    if(st!=null){
    try {
    st.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    if(rs!=null){
    try {
    rs.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    }

    }

    Hinernate连接数据库

    首先要导入Hibernate框架。

    1.添加数据源

    windows > show view > other > myEclipse Database 在新出来的窗口点击New


    之后点击Test通过之后就一直点击next就行了。

    2.加载框架

    (myeclipse2014)右键工程名称》myeclipse》Projects facts》insert Hibernate




    选择数据源后自动生成


    这个和我们的jdbc代码是不是很像,它就是连接配置文件,

    在hibernate.cfg.xml里

    <session-factory>
            <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
            <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
            <property name="connection.username">jacxuan</property>
            <property name="connection.password">965752</property>
            <property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
            <property name="myeclipse.connection.profile">dept</property>
        
        </session-factory>

    之后要实现增删改查,还需要将表生成映射关系


    找到你用户名下的table 》 hibernate reverse engin



    最下面两个勾如果你的表存在外键表的话就会自动生成,如果你只需要单表测试,建议不要勾选。

    业务逻辑代码

    //加载配置文件
    //如果你的配置文件路径或者文件名改变,则需再配置过程中加入文件名和路径
    //Configuration cfg = new Configuration().configure("src/hibernateTest.cfg.xml");
    Configuration cfg = new Configuration().configure();
    //创建session工厂
    SessionFactory sf = cfg.buildSessionFactory();
    //打开会话
    Session session = sf.openSession();
    //开始事务
    Transaction tran = session.beginTransaction();

    //业务逻辑代码(数据库操作)
    //增
    // Dept dept  = new Dept();
    // dept.setDeptname("anyName");
    // dept.setDeptpwd("anyPWD");
    // session.save(dept);

    //删
    // Dept dept = (Dept) session.get(Dept.class, 1);
    // session.delete(dept);

    //改
    Dept dept = (Dept) session.get(Dept.class, 1);
    dept.setDeptname("anyName");
    dept.setDeptpwd("anyPWD");

    //查
    //注意表名一定要大写!!!
    Query query = session.createQuery("From Dept");
    List<Dept> list = query.list();
    for (Dept dept2 : list) {
    System.out.println(dept2.getDeptname()+" "+dept2.getDeptpwd());
    }
    //提交事务
    tran.commit();
    //关闭回话
    session.close();
    //关闭session工程
    sf.close();

    OracleJar包下载地址:http://download.csdn.net/detail/jacxuan/9713188

  • 相关阅读:
    TestNG入门教程-6-enabled和priority属性
    TestNG入门教程-5-timeOut属性
    TestNG入门教程-4-Testng中注释简介
    Unicode、UTF-8 和 ISO8859-1到底有什么区别
    java数目
    sql必知必会-总结篇
    mysql监控、性能调优及三范式理解
    loadrunner常用函数总结
    loadrunner监控度量项及中文解释
    linux下crontab的使用实现
  • 原文地址:https://www.cnblogs.com/qwop/p/6637328.html
Copyright © 2011-2022 走看看