1、全局配置文件内容
- 1.1、< transationManager/> type属性可取值
- 1.1.1、JDBC,事务管理使用JDBC原生事务管理方式
- 1.1.2、MANAGED把事务管理转交给其他容器,原生JDBC事务setAutoMapping(false);
- 1.2 < dataSouce/>type属性
- 1.2.1、POOLED 使用数据库连接池
- 1.2.2、UNPOOLED 不适用数据库连接池,和直接使用JDBC一样
- 1.2.3、JNDI:Java命名目录接口技术
【注】数据库连接池:
1、在内存中开辟一块空间,存放多个数据库连接对象。
2、JDBC Tomcat Pool直接由tomcat产生数据库连接池。
3、图示
- 3.1、active状态:当前连接对象被应用程序使用中。
- 3.2、idle空闲状态:等待应用程序使用
4、使用数据库连接池的目的
- 4.1、在高频率访问数据库时,使用数据库连接池也可以降低服务器系统压力,提升程序运行效率。
- 4.1.1、小型项目不适用数据库连接池
5、实现JDBC tomcat Pool的步骤:
- 5.1、在web项目的META-INF中存放context.xml,在context.xml编写数据库连接池相关属性
内容为:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/flower"
username="root"
password="root"
maxActive="50"
maxIdle="20"
name="test"
auth="Container"
maxWait="10000"
type="javax.sql.DataSource"
/>
</Context>
- 5.2、把项目发布到tomcat中,数据库连接池产生了
6、可以在Java中使用jndi获取数据库连接池中对象
- 6.1、Context:上下文接口,context.xml文件对象类型
- 6.2、代码:
Context cxt = new InitialContext();
DataSource ds = (DataSource) cxt.lookup("url");
Connection conn = ds.getConnection();
- 6.3、当关闭连接对象时,把连接对象归还给数据库连接池,把状态改变成idle
2、三种查询方式
-
2.1、selectList()返回值为List<resultType 属性控制>
-
2.1.1 适用于查询结果需要遍历的需求
List<User> list = session.selectList("方法id"); for (Userr user : list) { System.out.println(user.toString()); }
-
-
2.2、selectOne()返回值object
-
2.2.1、适用于返回结果只是变量活一行数据时
int count = session.selectOne("a.b.selById"); System.out.println(count);
-
-
2.3、selectMap()返回值Map
-
2.3.1、适用于需要在查询结果中通过某列的值取到这行数据的需求
-
2.3.2、Map<key,resultType控制>
Map<Object, Object> map = session.selectMap("a.b.c", "name"); System.out.println(map);
-