反射封装JDBC——hibernate DDL 实现原理

  现在学习java的人实在是太多了,什么培训学校,什么高校,基本上是学习java的,美国空间,以至于现在java工资比较低。我记得上次我去面试的时候,香港服务器租用, 居然几个假冒的项目经理说struts底层不是用servlet,当时我觉得这项目经理未必也太….,也许我理解错误了吧,struts底层不是采用servlet,本来从事java已经2年了,但是只是入门阶段,所以写的东西有很多错误,希望大家可以指出来,我也好学习学习。

  做java的人肯定学过什么S*SH框架吧,但是很多人都只会使用罢了,很少的人会去看源码,其实这些框架真正的价值是在于整个架构,而不是在于使用罢了,如果你做为一个程序员,底层是怎么实现的都不知道,那又有什么作用呢,在此我通过反射写了一个类似于hibernate实现(DDL),同时我也添加了一些新的东西,可能是我的想法和hibernate作者有点出入吧,就是在更新方法的时候。大家仔细看看就知道了。

  首先看一下项目结构,下面有连接,我直接把源码上传上去,大家可以直接下载来看 (因为我没有实现hibernate的自动创建表,所以需要自己建立表,建立表参考UsersBean类)下载链接

  一、闲话少说了吧 ,虚拟主机,我相信看我写的博客都知道,我比较喜欢直接上源码来看,连接数据库最基本上的操作我封装到一个类里面,这个基本上没有什么讲的,【如果你采用java7的话不需要关闭数据库资源,JVM会自动关闭的,这是java7的新特性,如果不明白的请看我上一篇博文】下面请看此代码

package com.zh.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * @Copyright (C), 2010-2030 淘青春团队 * @FileName DB.java * @version 1.0 * @Description: 【用来操作数据库的类】 * @Author 张兵 * @Date: 2013-8-3:下午8:09:19 * @Modification User: 程序修改时由开发人员编写 * @Modification Date: 程序修改时间 * @mailto bolobeach@gmail.com DB {private String DBDrive = “com.mysql.jdbc.Driver”;private String DBUrl = “jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8”;private String DBUser = “root”;private String DBPassword = “XXXXXX”;private ResultSet _rs = null;private Connection _conn = null;private Statement _stmt = null;/*** 执行一则更新语句,返回主键值** @param sql* Connection getConn() {try {Class.forName(DBDrive);_conn = DriverManager.getConnection(DBUrl, DBUser, DBPassword);System.out.println(“数据库可以使用了!!!!”);} catch (Exception e) {System.out.println(“———出现异常,获取连接失败——–“);e.printStackTrace();}return _conn;}public int executeUpdate(String sql) {int result = -1;try {// 执行sql_stmt = getConn().createStatement();_stmt.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);// 获取主键_rs = _stmt.getGeneratedKeys();while (_rs.next()) {// 获取最后一个主键值result = _rs.getInt(1);}} catch (Exception e) {e.printStackTrace();} finally {this.colse();}return result;}public ResultSet executeQuery(String sql) {try {// 执行sql_stmt = getConn().createStatement();_rs = _stmt.executeQuery(sql);} catch (Exception e) {e.printStackTrace();}return _rs;}/*** 获取数据库连接** colse() {try {if (_rs != null) {_rs.close();}if (_stmt != null) {_stmt.close();}if (_conn != null) {_conn.close();}return true;} catch (SQLException e) {System.out.println(“关闭失败。。。。。”);e.printStackTrace();return false;}}}放下一种执着,收获一种自在。放下既是一种理性抉择,也是一种豁达美。

反射封装JDBC——hibernate DDL 实现原理

相关文章:

你感兴趣的文章:

标签云: