精华内容
下载资源
问答
  • Oracle 9i数据库会话间通信的设计与实现.pdf
  • 上篇文章中介绍了我们使用mybatis前的准备工作,并在程序中通过jdbc与mysql数据库成功建立连接,接下来介绍如何使用mybatis与数据库建立会话。我们需要以下几个步骤: 1.在build path中引入mybatis的jar包。2.新建...

    上篇文章中介绍了我们使用mybatis前的准备工作,并在程序中通过jdbc与mysql数据库成功建立连接,接下来介绍如何使用mybatis与数据库建立会话。我们需要以下几个步骤:
    1.在build path中引入mybatis的jar包。

    2.新建mybatis数据库配置文件SqlMapConfig.xml,它是一个xml文件,可以是任意名称,内容如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <environments default="development">
            <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF8"/>
                <property name="username" value="root"/>
                <property name="password" value=""/>
            </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="User.xml"/>
        </mappers>
    </configuration>

    3.新建sql语句配置文件User.xml,我们所有的sql语句均写在该文件中,内容如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="User">
        <select id="queryUserInfoByName" parameterType="string"  
                resultType="com.mybatis.domain.User">
            select * from User where username = #{username}
        </select>
    </mapper>

    这里我们通过select标签添加一条select语句,并通过mapper标签的namespace属性为这些sql增加一个命名空间。
    4.新建持久化映射类com.mybatis.domain.User,内容如下:

    package com.mybatis.domain;
    
    public class User {
    
        private String username;
        private String password;
        private String phone;
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }
        //为方便输出信息,我们重写toString方法
        @Override
        public String toString() {
            return  "username:" + username + ",password:" + password + ",phone" + phone;
        }
    
    }
    

    User类有三个属性,分别和数据库中的字段对应,我们需要为每个属性增加setter和getter方法,除此之外,为了方便我们打印对象的属性信息,笔者重写了User类的toString方法。

    5.新建测试类com.mybatis.exam2.MyBatisConn,代码如下:

    package com.mybatis.exam2;
    
    import java.io.Reader;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    import com.mybatis.domain.User;
    
    public class MyBatisConn{
        @Test
        public void testMybatisConn()
        {   
            SqlSession session = null;
            try {
                Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
                SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
                //创建一个数据库会话
                session = sessionFactory.openSession();
                User user = (User)session.selectOne("User.queryUserInfoByName","小王");
                //此处会调用user的toString方法
                System.out.println(user);
    
            } catch (Exception e) {
                // TODO Auto-generated catch block
                if(null != session)
                {
                    session.close();
                }
                e.printStackTrace();
            }
            //关闭会话
            if(null != session)
            {
                session.close();
            }
        }
    }
    

    要建立数据库会话,我们首先需要一个SqlSessionFactory对象,可以通过SqlSessionFactoryBuilder对象的build方法获取,它需要一个和数据库配置文件相关的输入流作为参数。
    我们通过 Resources.getResourceAsReader("SqlMapConfig.xml")获取一个输入流对象。
    有了SqlSessionFactory对象,我们通过SqlSessionFactory类的openSession方法就可以建立一个数据库会话,它返回一个DefaultSqlSession对象。

    通过DefaultSqlSession对象,我们可以对数据库进行各种操作,这里调用selectOne方法进行查询,第一个参数指定sql配置文件中配置的sql语句,形式为命名空间 + sql语句的ID。第二个参数会被传递到sql中:

    select * from User where username = #{username}

    我们通过#{username}这种形式定义个一个占位符,在本例中最终生成的sql语句为:

    select * from User where username = '小王'

    最后当数据库会话不再使用时,一定不要忘了关闭。

    6.在Outline视图MyBatisConn的testMybatisConn方法上点击右键,Debug As->Junit Test。
    控制台中输出:

    username:小王,password:123456a,phone13535999538

    整个项目的文件结构如下图所示:
    这里写图片描述

    在接下来的文章中,我们会接触到更多关于mybatis的配置和使用方法。

    项目源码:https://github.com/rongbo-j/mybatis-blog

    展开全文
  • 会话配置更改的变化如何定义数据库会话。大多数时候你只需要设置Session.handler。模型在您的配置以及选择数据库默认值: Configure::write('Session', array( 'defaults' => 'database', 'handler' => array( '...
    会话配置更改的变化如何定义数据库会话。大多数时候你只需要设置Session.handler。模型在您的配置以及选择数据库默认值:
    
    Configure::write('Session', array(
        'defaults' => 'database',
        'handler' => array(
            'model' => 'CustomSession'
        )
    ));

    上面会告诉CakeSession使用内置数据库的默认值,并指定一个模型称为CustomSession将委托会话信息保存到数据库中。


    如果你不需要一个完全自定义的会话处理程序,但仍需要数据库支持会话存储,可以简化上面的代码:
    Configure::write('Session', array(
        'defaults' => 'database'
    ));
    这个配置需要一个数据库表添加至少这些字段:
    CREATE TABLE `cake_sessions` (
      `id` varchar(255) NOT NULL DEFAULT '',
      `data` text,
      `expires` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    );

    您还可以使用shell的模式来创建这个表使用模式文件中提供默认应用程序框架:
    $ Console/cake schema create sessions


    展开全文
  • 这是一个Rails库,为应用程序提供数据库支持的用户会话。 这样可以确保可以从服务器使用户会话无效,并且可以轻松跟踪用户活动。 在会话中简单地设置用户ID的“传统”方式是不安全且不明智的。 如果仅执行以下示例...
  • 查询会话的一些信息,可用于杀掉会话查询sess_id SELECT A.SESS_ID AS 会话id, A.SQL_TEXT AS SQL语句, A.STATE AS 会话状态, A.N_USED_STMT AS 当前会话使用句柄数量, A.CURR_SCH AS 当前模式, A.USER_NAME AS ...

    查询会话的一些信息,可用于杀掉会话查询sess_id
    SELECT A.SESS_ID AS 会话id,
    A.SQL_TEXT AS SQL语句,
    A.STATE AS 会话状态,
    A.N_USED_STMT AS 当前会话使用句柄数量,
    A.CURR_SCH AS 当前模式,
    A.USER_NAME AS 用户名,
    A.TRX_ID AS 事务ID,
    A.CREATE_TIME AS 会话创建时间,
    A.CLNT_TYPE AS 客户端类型,
    A.TIME_ZONE AS 时区,
    A.OSNAME AS 操作系统名称,
    A.CONN_TYPE AS 连接类型,
    B.PROTOCOL_TYPE AS 协议类型,
    B.IP_ADDR AS 访问ip地址
    FROM SYS.V S E S S I O N S A , S Y S . V SESSIONS A,SYS.V SESSIONSA,SYS.VCONNECT B where A.Sess_id= B.SADDR ORDER BY SF_GET_EP_SEQNO(A.rowid),A.Sess_id;
    STATE 会话状态:
    CREATE:创建、STARTUP:启动、IDLE:空闲、ACTIVE:活动、WAIT:等

    会话使用率
    SELECT (SELECT COUNT(*) FROM V S E S S I O N S ) / P A R A V A L U E ∗ 100 ∣ ∣ ′ SESSIONS)/PARA_VALUE * 100||'%' FROM V SESSIONS)/PARAVALUE100DM_INI WHERE PARA_NAME=‘MAX_SESSIONS’;

    要杀掉会话,则需使用系统过程sp_close_session
    用法: sp_close_session(sess_id)
    可先使用以上查询语句查询出会话id,或者是

    Select * from v$session where state=’ACTIVE’;

    展开全文
  • 嗨,有人可以告诉我如何对数据库连接会话超时进行故障排除。
  • PLSQL连接oracle数据库会话超时处理

    千次阅读 2020-06-30 21:59:38
    1.指定开启资源限制。该改变对密码资源无效,密码资源... alter system set resource_limit=true; (默认不打开) 2.创建PROFILE create profile test ...注:必须要有create profile 权限,才能创建profile。...alter pro

    1.指定开启资源限制。

    先查看:show parameter resource_limit;

    alter system set resource_limit=true;
    (默认不打开)

    2.先确认连接用户的profile

    select username,profile from dba_users where username = 'TEST';

    3\查询资源文件,找到 IDLE_TIME 所属的prfile

    select resource_name,profile from dba_profiles where resource_name = 'IDLE_TIME'; 

    4\用alter命令修改profile中的值;
    根据用户的profile名称(这里是DEFAULT)修改对应的 idle_time 值。可以设置成无限制,也可以设置一个具体时间值,如1000分钟。

     alter profile DEFAULT limit idle_time  unlimited;

    5\查看缺省 profile 中 idle_time 的值

    select resource_name,limit from dba_profiles where profile='DEFAULT' and resource_name = 'IDLE_TIME';

    ==================================================================================== 

    2.创建PROFILE

    create profile test
    limit
    idle_time 30
    connect_time 480;
    注:必须要有create profile 权限,才能创建profile。

    3.指定用户PROFILE

    alter user test profile test;

    4.修改PROFILE

    alter profile test limit idle_time 60;

    5.删除PROFILE

    drop profile test
    drop profile test cascade;

    展开全文
  • 查询数据库当前会话的连接数

    千次阅读 2018-09-12 16:56:50
    //当前会话数 select count(*) from v$process //设置最大会话数 select value from v$parameter where name = 'processes'; //用户、机器、会话数 SELECT USERNAME, MACHINE, COUNT(*) FROM V$SESSION GROUP BY ...
  • 常见的数据库设计,初学者适用....权限设计、会话设计
  • select USERNAME,STATUS,OSUSER,MACHINE,PROGRAM,MODULE,EVENT from v$session where...要终止某会话,可先自行下面的查询, select ''''||sid||','||serial#||'''' ,USERNAME,STATUS,OSUSER,MACHINE,PROGRAM,MODUL...
  •  通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息.    ...
  • 数据库笔记系列之SQL会话

    千次阅读 2017-11-09 14:55:22
    数据库笔记系列之SQL会话2.1 CONNECT:命令CONNECT用于建立与数据库得到的链接,它可以申请链接,也可以修改链接,当用户链接到数据库时,SQL会话就被初始化。CONNECT User@database在尝试链接数据库时,用户会收到...
  • 在ORACLE数据库杀掉会话进程有三种方式: 1:ALTER SYSTEM KILL SESSION 关于KILL SESSION Clause ,官方文档描述alter system kill session实际上不是真正的杀死会话,它只是将会话标记为终止。等待PMON进程来清除...
  • 1.数据库会话 在连接数据库与断开连接之间的时间被称为一个数据会话。 2.与数据库建立连接 使用CONNECT关键字,例子 CONNECT TO USER user_id 为数据库连接命名,语句 CONNECT AS connection_identifier ...
  • Oracle 9i数据库会话间通信的设计与实现C++源代码程序小实例visual studio.net
  • 文档为公司培训资料,包含DB2数据库的日常操作,DB2常用命令,适合职场新手
  • 首先再次明确下,数据库因为要同时保证数据的并发性和一致性,所以操作有锁等待是正常的。  只有那些长时间没有提交或回滚的事物,阻塞了其他业务正常操作,才是需要去定位处理的。  1. 单实例环境  实验环境...
  • 当我们修改数据库配置时,我们要知道,通过不通过的方式,修改数据库配置,生命周期是不同的。有时候仅仅在一次会话中有效,有时候全局生效,就算断开连接,重启服务,依然生效。 全局变量 定义: 写在配置文件中的...
  • 一个数据库连接 可以开启多个会话 一个会话开启多个事务。对于JDBC操作而言,一次数据库连接就是一次会话会话中开启事务(一个或多个)。事务,也就是数据库事务,指的是作为单个逻辑工作单元执行的一系列操作。一...
  • 查看oracle数据库job及会话信息

    千次阅读 2019-03-13 19:39:10
    查看所有jobselect from dba_jobs;查看正在运行的jobselect from dba_jobs_running; select job,log_user,priv_user,schema_user,BROKEN from ...查看数据库建立的回话情况select sid,serial#,username,program,mach...
  • 由于SpringMVC框架对于数据库会话处理方面,实现了会话池的功能,以提高数据库的工作效率。因为在数据库申请一个新的会话session确实是比较耗资源。 问题: 但是,这样子,session被公用就带来一个新的问题:...
  • 1、获取访问数据库IP的触发器 create or replace trigger on_logon_trigger after logon on database begin  dbms_application_info.set_client_info(sys_context('userenv', 'ip_address')); end; / 2、查看...
  • 一、数据库搭建 1、yum 指定目录安装 https://blog.csdn.net/llwy1428/article/details/105143053 2、yum 直接安装 https://blog.csdn.net/llwy1428/article/details/102486414 3、编译安装 ...4、PostgreSql 基本操作 ...
  • 这里写自定义目录标题) 数据库MySQL最大连接数、最大活跃连接数、最大并发数、...建立一个数据库会话一般会占用多个连接。 (连接数与并发会话在实际用户场景中会基本上有个比例,大概连接数与会话数是5:1的关系) ...
  • Oracle数据库会话、连接、进程3者之间的关系
  • 修改数据库时区和会话时区

    千次阅读 2014-10-31 09:24:51
    在Oracle中,时区可以分为两类:数据库时区和session时区。和时区相关的日期时间类型有两种:TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE。 1 如何查看修改数据库和session时区  数据库时区和...
  • 由于java.sql.Connection只是接口,具体实现要看每个数据库厂商的驱动程序,所以想搞明白来由还得查一下Oracle JDBC的API文档。 果然,在oracle.jdbc.OracleConnection中可以发现一个常量定义: static final ...
  • select ses.sid "SID会话号" ,proc.pid "PID_oracle进程号",proc.spid "SPID操作系统进程号", ses.schemaname ,  ses.osuser ,ses.process ,ses.machine ,ses.program ,proc.username,proc.pga_used_mem,  proc.
  • 在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源,有时候你会发现锁定的资源很长时间也不会释放,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 306,857
精华内容 122,742
关键字:

数据库会话