(代码小白自我总结,仅供参考,如有错漏,望大神指正)
关键词:持久化,持久化层,ORM,CRUD,静态代理
一,什么是持久化?
通俗来讲,就是把内存中不能长久保存的数据转化并存储到数据库中成为能够永久保存的数据。
二,什么是持久化层?
软件设计要求高内聚,低耦合;把数据库操作有关的代码和业务逻辑分离开来就形成了所谓的持久化层,存储需要持久化的数据,也就是负责实现数据的持久化;业务层通过访问持久化层提供的数据库访问接口来访问数据库的相关数据。
三,ORM
object relation mapper:对象关系映射(解决方案)
把对象模型和关系型数据库的关系模型映射起来;
该解决方案提供四个主要功能:
1,增删改查
2,对象或属性查询
3,规范映射元数据
4,事务控制,延迟加载
Mybatis(增删改查)静态代理方式:
1,加载配置文件
InputStream inputstream = Resources.getResourceAsStream("mybatis-config.xml");
2,解析配置文件,mybaits创建SqlSessionFactory连接池
SqlSessionFactory factory = new SqlSessionFactoryBuilder().builder(inputstream);
3,由SqlSessionFactory创建一个SqlSession对象,该对象中包含执行SQL的语句
SqlSession session = factory.openSession();
4,代理执行sql语句
LuxiemMapper mapper = session.getMapper(LuxiemMapper.class);
5,调用代理类完成sql的执行
Luxiem luxiem = mapper.selectStudent(5);
//此处以根据id查询数据为例
System.out.println(luxiem);
Mybatis(增删改查)执行思路:
CRUD:create(增) retrieve(查) update (改) deletd(删)
1,加载配置文件
InputStream inputstream = Resources.getResourceAsStream("mybatis-config.xml");
2,解析配置文件,mybaits通根据配置文件创建连接池SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().builder(inputstream);
3,由SqlSessionFactory创建一个SqlSession对象,该对象中包含执行SQL的语句
SqlSession session = factory.openSession();
插入数据:int insert(String statement,Object parameter)
删除数据:int delete(String statement,Object parameter)
修改数据:int update(String statement,Object parameter)
单行查询:<T>T selectOne(String statement,Object parameter)
多行查询:<E>List <E> selectList(String statement,Object parameter)
事务的提交语句:void commit();
4,指定sql包含的语句字符串
String statement = "org.example.LuxiemMapper.xml"+".addStudent";
//此处以插入数据为例,LuxiemMapper.xml为映射,addStudent为接口中添加的插入方法
Luxiem luxiem = new Luxiem(1,"vox","NIJISANJI EN Luxiem4");
session.update(statement,luxiem);
session.commit();//提交事务
session.close();
log4j的配置
#配置日志根目录
log4j.rootLogger=DEBUG,hcxy
#配置书写器
log4j.appender.hcxy=org.apache.log4j.ConsoleAppender
#配置输出格式
log4j.appender.hcxy.layout=org.apache.log4j.PatternLayout
log4j.appender.hcxy.layout.conversionPattern=[%t] %p %c - %m%n