SSM的简单笔记

Mybatis的步骤:
1、创建实体类;
2、创建mybatis-config.xml
3、创建MybatisUtil工具类。(调用SqlSessionFactory会话工厂,包装成私有的方法,通过类名.属性名调用静态方法)
4、测试
//1、创建SqlSessionFactory对象,也是单例模式的
//2、创建SqlSession对象
//3、调用session的方法  如果是增删改,那么则需要使用session.commit()提交事务。
//4、打印测试
//5、关闭资源




3、事务
数据库中的增删改都对应一个事务,一致性,原子性。
1、增删改需要事务的提交,查询不需要。
2、指定返回结果的类型,如果是集合,那就是泛型。如果是增删改,不需要配置。
resultType:限定返回类型或者泛型约束。
parameterType:限定参数的类型


4、日志

做了什么事情,然后记录下来。

5、SqlSessionFactory
sql会话工厂
一个SQL会话工厂可以创造很多的sql会话,我们可以使用SQL会话操作数据库。

单例模式:(饿汉模式,懒汉模式)
在程序执行期间,只有一个实例。
多例模式、原型模式
在程序执行期间,有多个实例。

static{

}
静态代码块,辅助类完成对静态的属性初始化赋值。
static修饰的变量和方法,以及静态代码块,会随着类一块加载,只加载一次。
静态方法,可以直接使用类名调用。
格式:类名.方法名();


饿汉模式:类加载时就完成了初始化,所以类加载比较慢,但获取对象速度快。

懒汉模式:类加载时不初始化。

饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全。饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。懒汉模式的特点是加载类时比较快,但是在运行时获取对象的速度比较慢,线程不安全, 懒汉式如果在创建实例对象时不加上synchronized则会导致对象的访问不是线程安全的。所以在此推荐大家使用饿汉模式。

6、单元测试
对程序的功能模块进行测试,针对是无参的
1、可以导入eclisp的junit.
2、可以导入junit的jar包

1、创建sqlSessionFactory对象,也是单例模式的
2、创建SqlSession对象,执行数据库的操作的对象,必须依赖工厂。
3、通过session对象调用对应的方法来自执行sql语句。








7、模糊查询 使用concat()拼接字符串
select * from t_user where name like CONCAT('%','深','%')


1、选择map集合 
2、使用包装类来包装数据 1、因为查询语句定义在xml文件中针对敏感字符,容易识别不到,建议使用<![CDATA[查询语句]]>字节段,防止特殊符号被解析 


8、当实体类的属性名和列名不一致时 
1、在sql语句中使用as给列起别名,别名和属性名一致 
2、配置resultMap,type还是返回的类型,id唯一标志 


#<result>配置非主键列,column中表中的列名,property找实体类的属性名 <id>配置主键列 

<resultMap type="com.zhiyou100.entity.User" id="rm1">
<result column="sal" property="salary" />
</resultMap>

<select id="select1" resultMap="rm1">
select * from t_user
</select>


9、

增删改都需要数据的提交!


AFTER是表示在插入之前
查询新增的id语句为select LAST_INSERT_ID





10、在数据库中的一对一,或者一对多的关系上是
设置model时:
其中的一对多设置集合
多对一设置对象

一对多的时候,可以使用resultMap


搭建集合collection关系时,类型选择的是泛型,所以选择ifTyoe属性







11、为什么要用缓存?
如果缓存中有数据就不用从数据库中获取,大大提高系统性能。



注意:
1、增删改,事务提交,也会清除二级缓存
2、一般下执行完commit操作都需要刷新缓存,flushCache=true表示刷新缓存,这样可以避免数据库脏读。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值