数据库连接
JDBC数据库连接原理:
数据库连接池
为了复用数据库连接,有了数据库连接池。当线程需要连接数据库时,去连接池租借数据库连接即可。【创建连接 ==> 租借连接】
MySQL服务端可以设置最大连接数,来限制太多连接。数据库连接池可以起到限流,对数据库后端保护的作用。
数据库连接池参数
mysql数据库会将超过8小时没有请求的空闲连接关闭,此时连接池是不知道的。为了保证连接池中的连接都是有效的,设置如下参数:【连接池可能会有连接失效】
Mybatis
和其它ORM框架不同,Hibernate是将对象和表建立对应关系。
而Mybatis是将对象的操作和SQL语句建立关系
使用步骤:
1、配置SqlSessionFactory配置文件
2、构造对象,创建接口【接口就是对对象的操作,和SQL语句建立映射】
例如:User(id:Integer, userName:String, corp:String)
interface GetUserInfo { getUser(id):User addUser(user) updateUser(user) deleteUser(user) }
3、编写mapper文件 【namespace对应的是接口的全限定名;】
4、将mapper文件注册到配置文件
5、代码如下【conf.xml在src/main/java/目录下,所以可以直接访问到】
6、可以通过注解的方式声明映射关系
7、增删改查
Mybatis进阶
复杂表之间的关系
对应的Java对象:
User(id, userName, corp, courses:List<Course>) user和course是多对多的关系
Course(courseId, courseName, teacher:Teacher) teacher和course是一对多的关系
mapper中需要ResultMap元素
mybatis连接池 【应对连接失效问题】