1、数据校验
Validation数据校验
(1)实现org.springframework.validation.Validator接口,在代码中调用这个类
(2)按照BeanValidation方式来校验,通过注解方式
(3)基于方法实现校验
(4)自定义校验
2、AOT提前编译
JIT(just in time)动态编译(实时),边运行边编译
AOT(ahead of time)运行前编译,提前编译
3、SpringMvc
4、MyBatis
面向接口编程
基于Java的持久层框架
核心配置中建议名称为mybatis-config.xml
<environments>中配置连接数据库的信息
<mappers>引入映射文件
创建mapper接口
Mybatis中的mapper接口相当于之前的dao,区别是mapper是接口不需要提供实现类
MyBatis映射文件
ORM(object relationship mapping) 对象关系映射
对象 Java的实体类对象
关系 关系型数据库
映射 二者之间的对应关系
MyBatis面向接口编程的两个一致性:
(1)映射文件中的namespace要和mapper接口中的全类名保持一致
(2)映射文件中的SQL语句的id要和mapper接口的方法名一致
映射文件
<mapper namespace="mapper接口的全类名">
<insert/query/delete/update id="接口的方法名">
SQL语句
</insert/query/delete/update>
</mapper>
表--实体类--mapper接口--映射文件
引入映射文件(核心配置中)
<mappers>
<mapper resource="映射文件路径"/>
</mapers>
5、测试类
加载核心配置文件
InputStream is=Resource.getResourceAsStream("核心配置文件")
获取SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sqlsessionFactory=sqlSessionFactoryBuilder.build(is)
获取sqlsession-->Java与sql之间的关系
SqlSession sqlsession=sqlSessionFactory.openSession();//后面要手动设置提交事务
SqlSession sqlsession=sqlSessionFactory.openSession(True);//后面会自动提交事务不需要手动设置
获取mapper接口对象,底层自动创建一个实现类并返回
UserMapper mapper=sqlSession.getMapper(UserMapper.class)
测试功能
int result=mapper.insertUser(); //方法名
提交事务
因为配置方法底层是JDBC因此要手动提交事务,或者在获取sqlsession一步设置自动提交事务
sqlSession.commit();
查询
映射文件中在设置sql语句时要设置resultType或resultMap
resultType:设置默认的映射关系,字段名与属性名一致
resultMap:设置自定义的映射关系
<select id="getUserId" resultType="com.atgui.mybatis.pojo.User">//resultType指明返回结果的解析类型
sql
</select>
查询单个
User getUserById();
查询多个
List<User> getAllUser();
6、核心配置文件设置
核心配置文件中数据库连接信息设置
(1)设置xxx.properties文件
(2)在核心配置文件中引入xxx.properties文件
<properties resource="xxx.prooerties">
(3)对应属性位置使用${key}去使用xxx.properties中的键值对信息
设置类型别名(resultType)不区分大小写
<typeAliases>MyBatis严格要求标签先后顺序
<typeAlias type="全类名",alias="别名"></typeAlias>
</typeAliases>
若不设置alias,默认类名为别名且不区分大小写,或者
<typeAliases>
<package name=包名/>
</typeAliases>
以包为单位,对包下所有的类型设置默认类型别名,且不区分大小写
以包为单位引入映射文件
<mappers>
<package name="com.atgui.myabtis.mapper"/>
</mappers>
要求:(1)mapper接口所在的包要和映射文件所在的包一致
(2)mapper接口要和映射文件的名字一致
注意:java中可以使用.作为分隔符来建包
resource使用/作为分隔符来建包(文件夹形式)