关系型数据库

来源:互联网 发布:矢量图网上制作软件 编辑:程序博客网 时间:2024/06/05 05:05

查看oracle字符集:

Select userenv('language') from dual;PL/SQL错误提示 database character set(AL32UTF8) and Client character set(ZHS16GBK) are different打开注册表,修改NLS_LANG为:SIMPLIFIED CHINESE_CHINA.AL32UTF8     SIMPLIFIED CHINESE_CHINA.ZHS16GBK

Oracle 数据类型

oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。int类型只能存储整数;number可以存储浮点数,也可以存储整数;存储总长度为38;number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全;number(8)存储总长度为8的整数;int相当于number(22),存储总长度为22的整数。varchar 存放定长字符数据,最长2000个字符。varchar2 存放变长字符数据,最长4000个字符。varchar2oracle提供的独特的数据类型,oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,这是因为varchar是标准sql提供的数据类型,有可能随着sql标准的变化而改变。varchar在Oracle中不建议使用。nvarchar2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。varchar2(10)则只能存进5个汉字,英文则可以存10个。

oracle连接数

show parameter processesshow parameter sessionsalter system set processes=300 scope=spfile;alter system set sessions=335 scope=spfile;sessions=(1.1*process+5)查询数据库当前进程的连接数:select count(*) from v$process;查看数据库当前会话的连接数:select count(*) from v$session;查看数据库的并发连接数:    select count(*) from v$session where status='ACTIVE';查看当前数据库建立的会话情况:select sid,serial#,username,program,machine,status from v$session;查询数据库允许的最大连接数:select value from v$parameter where name = 'processes';一个session对应一个process,但是一个process未必对应一个session

字符串类型转时间类型

mysql:DATE_FORMAT(#{startTime}, '%Y-%m-%d')oracle:to_date(#{startTime}, 'yyyy-mm-dd')

mybatis防止sql注入

venue_name like '%${venueName}%'VENUE_NAME LIKE '%'||#{venueName}||'%'在编写mybatis的映射语句时,尽量采用“#{xxx}”这样的格式。若不得不使用“${xxx}”这样的参数,要手工地做好过滤工作,来防止sql注入攻击。

MyBatis映射文件返回值resultMap,resultType
在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。

mybatis 分页插件 mysql oracle mssql

1.所需jar包
MySQL驱动包、Oracle驱动包、MMSQL驱动包、SqlParser(MMSQL需要)
2.在mybatis-config.xml定义一个通用分页拦截器

<plugins>    <plugin interceptor="com.cpit.db.PageHelper">        <property name="dialect" value="mssql"/>//参数    </plugin></plugins>

3.PageHelper核心代码

**//获取总数sql**private String getCountSql(String sql) {     StringBuilder pageSql = new StringBuilder(200);                      if("mysql".equals(dialect)||"mssql".equals(dialect)){   pageSql.append("select count(0) from (" + sql + ") as tmp_count");}else if("oracle".equals(dialect)){    pageSql.append("select count(0) from (" + sql + ")");        }        return pageSql.toString();    }**//获取分页sql**    private String getPageSql(String sql, Page page) {           StringBuilder pageSql = new StringBuilder(200);        if("mysql".equals(dialect)){            pageSql.append(sql);            pageSql.append(" limit "+page.getStartRow()+","+page.getPageSize());        }else if("oracle".equals(dialect)){            pageSql.append("select * from ( select temp.*, rownum row_id from ( ");            pageSql.append(sql);            pageSql.append(" ) temp where rownum <= ").append(page.getEndRow());            pageSql.append(") where row_id > ").append(page.getStartRow());        }else if("mssql".equals(dialect)){            pageSql.append(new SqlServer().convertToPageSql(sql, page.getStartRow(), page.getPageSize(),page.getOrderBy()));        }        return pageSql.toString();    }

4.方法调用

Oracle/MysqlPageHelper.startPage(pageNumber, 3);Page<CityInfo> infoList = (Page<CityInfo>) testService.getList();PageHelper.endPage();MMSQLPageHelper.startPage(pageNumber, 3,"id");Page<User> infoList = (Page<User>) testService.getAllUserformssql();PageHelper.endPage();

mysql主从复制:

change master to master_host='182.92.243.12',master_user='root',master_password='mysql',master_log_file='mysql-bin.000004',master_log_pos=0;
0 0
原创粉丝点击