1.连接池
连接池的连接按照顺序编号,当需要当需要使用时,从连接池中取出一个,
其他的连接按顺序从新编号;当使用的连接释放后,放回连接池,获得一个新的编号;
2.mybatis中的连接池
三种配置方式:
unpooled中没有池的思想,每次用都获取一些给新的连接
PooledDataSource和UnPooledDataSource两个类,是连接池类型的实现类
(红色表示一个线程开始请求资源连接)连接池是一个ArrayList集合
3.mybatis中的事物
4.动态sql语句
<if>可用来对选择查询条件加以判断,<where>内标签可以嵌套<if>,从而避免了where 1=1的写法
例如:
<foreach>标签,进行范围查询
item的值和标签内的值要保持一致
5.mybatis中的多表查询
建表语句 CREATE TABLE t_account1( id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, uid INT(11) NOT NULL, money DOUBLE NOT NULL, FOREIGN KEY(uid) REFERENCES t_user(id) )ENGINE=INNODB DEFAULT CHARSET=utf8
1)一对一
2)一对多
在User类中添加账户的属性集合List<Account> accounts;
sql语句:SELECT * FROM t_user u LEFT OUTER JOIN t_account a ON u.id = a.uid
表的做外连接,左表的数据将全部显示,同时显示出右表中含有信息的数据
配置接口类的xml文件:
3)多对多的关系
角色实体类中:
从用户到角色:
user类中
6.JNDI
创建一个新的maven项目 webapp、 勾选架构、完善maven项目结构
部分sql语句: CREATE TABLE t_account1( id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, uid INT(11) NOT NULL, money DOUBLE NOT NULL, FOREIGN KEY(uid) REFERENCES t_user(id) )ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO t_account VALUES(NULL,21,500); SELECT a.*,u.username ,u.sex,u.address FROM t_user u,t_account a WHERE u.id = a.uid; SELECT u.*,a.id AS aid,a.uid,a.money FROM t_account a,t_user u WHERE u.id = a.uid; SELECT * FROM t_user u LEFT OUTER JOIN t_account a ON u.id = a.uid CREATE TABLE t_role( rid INT NOT NULL, rname VARCHAR(30) DEFAULT NULL COMMENT '角色名称', rdesc VARCHAR(60) DEFAULT NULL COMMENT '角色描述', PRIMARY KEY(rid) )ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO t_role(rid,rname,rdesc) VALUES(1,'老师','授业解惑'),(2,'老师2','授业解惑2') DROP TABLE IF EXISTS t_userrole CREATE TABLE t_userrole( uidd INT(11) NOT NULL COMMENT '用户编号', ridd INT(11) NOT NULL COMMENT '角色编号', PRIMARY KEY(uidd,ridd), CONSTRAINT FOREIGN KEY(ridd) REFERENCES t_role(rid), CONSTRAINT FOREIGN KEY(uidd) REFERENCES t_user(id) )ENGINE=INNODB DEFAULT CHARSET=utf8; INSERT INTO t_userrole(uidd,ridd) VALUES(7,1),(21,1),(7,2) SELECT u.*,r.rid,r.rname,r.rdesc FROM t_role r LEFT OUTER JOIN t_userrole ur ON r.rid = ur.ridd LEFT OUTER JOIN t_user u ON u.id = ur.uidd SELECT u.*,r.rid,r.rname,r.rdesc FROM t_user u LEFT OUTER JOIN t_userrole ur ON u.id = ur.uidd LEFT OUTER JOIN t_role r ON r.rid = ur.ridd
