package com.bbkj; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * Created by Administrator on 2016/12/7. */ public class DbUtils { public static void main(String [] args){
1.通过information_schema.COLUMNS表 查询该表可得到所需字段信息 SELECT * FROM information_schema.COLUMNS; 如下图所示: 2.示例 下面截图是示例: SQL语句如下 SELECT t.TABLE_SCHEMA AS 库名, t.TABLE_NAME AS 表名, t.COLUMN_NAME AS 字段名, t.COLUMN_TYPE AS 数据类型, CASE IFNULL(t.COLUMN_DEFAULT,'Null') WH
获取用户下所有索引脚本,用于数据迁移后重建索引: set pagesize 0set long 90000set feedback offset echo offspool get_index_ddl.sqlSELECT to_char(DBMS_METADATA.GET_DDL('INDEX',u.index_name))||' nologging '||' parallel 4;' FROM USER_INDEXES u; spool off 获取用户下所有表脚本: set pagesize
用Mysql存储过程来完成动态SQL语句,使用存储过程有很好的执行效率: 现在有要求如下:根据输入的年份.国家.节假日类型查询一个节假日,我们可以使用一般的SQL语句嵌入到Java代码中,但是执行效率方面,表现方面并不是很理想,因此我选择使用拼接SQL语句来完成这个查询(因为有可能数据为空,所以一开始我选择使用的方式拼接字符串) SQL语句如下: (这是在Navicat上编辑的,可以直接写SQL其他的由Navicat自动生成) BEGIN set @country = country;/**输入
方法比较简单,项目中只需要两个java类(一个实体类,如User,一个工具类),两个配置文件(hibernate必须的两个配置文件hibernate.cfg.xml,与User.hbm.xml),即可都是常规的书写和配置方法,这时数据库中是没有建表的,在工具测试类CreateDB中,添加代码也很简单,如下,就可以生成数据库表了: public void testCreateDB(){ Configuration cfg = new Configuration().configure(); Sch
MySQL ddl丢表: MySQL server层为了和innodb层保持数据一致性,在写binlog和redo log时,引入了两阶段提交,但不同的变更产生的日志并非都使用这种策略. 下面就来看看ddl语句产生的binlog日志写入交互过程,从源码的角度理解大家熟知的MySQL ddl丢表. 测试: create table mm(id int primary key, name varchar(100)); 注意:测试在MySQL的5.5.18版本.因为dll语句默认提交,所以环境变量