mybatis数据源

来源:互联网 发布:php bool false true 编辑:程序博客网 时间:2024/06/06 01:52
一:JNDI:(Java Naming and Directory)
1,由一个初始的命名上下文(context)及其下的任意数目的子上下文组成
2,JNDI名称空间是分层次的,与很多文件系统的目录/文件结构类似
3,初始上下文与文件系统的根类似,子上下文与子目录类似
4,JNDI层次的根是初始化上下文
5,在初始化上下文下有很多子上下文,其中之一就是jdbc
6,jdbc是子上下文保留给JDBC数据源使用,逻辑数据源的名字可以在子上下文jdbc中,也可以在jdbc下的子上下文中
7,层次中最后一级元素是注册的对象,与文件类似
8,即数据源的逻辑名 jdbc/DefaultDS 环境命名上下文(Environment Naming Context) 
9,java:comp/env ,引入它是为了解决JNDI命名冲突的问题.
10,web容器可以把资源放到jndi中
eg:java:comp/env/jdbc/DefaultDS


comp: company
env : Environment
二:web容器中创建jndi资源
1,导入对应驱动jar包
2,context.xml中添加 <Resource>标签.
3,mybatis
   3.1:配置文件中数据源配置改为JNDI
<dataSource type="JNDI">
     <property name="data_source" value="java:comp/env/jdbc/DefaultDS"/>
</dataSource>
4,jdbc
   4.1 : javax.naming.Context context = new InitialContext();
   4.2 : String jdni = "java:comp/env/jdbc/DefaultDS";
   4.3 : DataSource ds = (DataSource) context.lookup(jdni);
   4.4 : Connection conn = ds.getConnection();

     eg:oracle
      <Resource
name="jdbc/DefaultDS"
type="javax.sql.DataSource"
username="briup"
password="briup"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:XE"/>
     eg:mysql
     <Resource
name="jdbc/DefaultDS"
type="javax.sql.DataSource"
username="briup"
password="briup"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/briupDB"/>
分割线-----------------------------------------------------------------
     <Resource>详细:
      <Resource
name 指定资源相对于java:comp/env上下文的JNDI名
auth 指定资源的管理者, Application 和 Container
type 指定资源所属的java类的完整限定名
maxActive 指定在连接池中数据库连接的最大数目. 取值0表示没有限制
maxIdle   指定在连接池中保留的空间的数据库连接最大数目,取值-1,表示没有限制
maxWait   指定等待一个数据库连接的最大时间,毫秒为单位,-1,永久等待
username  指定连接数据库的用户名
password  指定连接数据库的密码
driverClassName 指定jdbc驱动程序类名
url    指定连接数据库的URL
factory   指定随去管理:默认是tomcat去管理,spring也可以去管理eg: factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"/>


mySql:
   <Resource
name="jdbc/DefaultDS"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
maxActive="100"
maxIdle="30"
maxWait="1000"
username="briup"
password="briup"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/briup?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8"/>
Oracle:
   <Resource
name="jdbc/DefaultDB"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="1000"
username="briup"
password="briup"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521XE"/>
原创粉丝点击